SupeSite标签数据源的处理及页面标签的定义技巧

简介: 开发的CMS系统中模板引擎和标签的开发算是告一段落,而在Discuz的CMS系统SupeSite中借鉴到了很多东西,略作小记,好记性永远不如烂键盘。当需要将页面解析成静态页面时,当然需要借助模板引擎去对标签作解析。
开发的CMS系统中模板引擎和标签的开发算是告一段落,而在Discuz的CMS系统SupeSite中借鉴到了很多东西,略作小记,好记性永远不如烂键盘。
当需要将页面解析成静态页面时,当然需要借助模板引擎去对标签作解析。而标签数据源的定义颇值得研究。
在先前的标签设计中,由于数据存储使用动态模型,所以并没有涉及到多张表的逐个定义标签解析。而在后期的开发中,脱离动态模型的表越来越多,而每一个表的数据解析,就需要去定义一个标签数据源,再对每一个数据源赋值,最后模板引擎作解析。而就在前段时间,下载了个SupeSite搭建系统做研究,发现其设计很精妙。
在其系统设计中有个叫“模块管理”的东西,将各个数据源统一管理,使得读取数据最大化自定义且可以复用。
下面假设:想从资讯频道中读取某一子频道的内容,并且这些内容要满足一些查询条件,作为标签数据源,模板引擎解析后在页面显示。

▼SupeSite已经做成了向导模式,选择“资讯”

 

▼生成block代码如下,注意其中的cachename,即数据源名称,很显然,SupeSite对其做了cache,可以在cache设置中配置更新时间间隔。而name为唯一标识。

 

 ▼页面中的调用

 

我们又发现SupeSite标签定义 细致的一个地方:将标签放置与<!-- -->之间,这样做的好处显而易见,当模板引擎出错、预览模板时,由于是放置于html注释之间,所以不会破坏页面结构,很好的设计。
SupeSite这样的设计完全将用户需求又转交给了用户,让用户去自定义数据源,以满足各类需求,且维护数据源极其方便。
而SupeSite这样的设计又有 一个缺点:当修改了block内容后,所有引用到此block的页面都需要修改,既然已经有了唯一的block name,那么在页面中数据源只需填写name,具体的数据读取参数使用数据库作一一对应,那么当修改了name对应的数据读取参数后,页面中的name不需要变化,那么模板完全不需要作任何调整,不知SupeSite设计时是如何考虑这一点的。
在我目前开发的系统中,我已将此设计思路用于当前的数据源管理中,且修正了SupeSite的一个设计缺点,可以很完美的应对各类特殊查询需求,一劳永逸。

不断地思考,不断地学习借鉴,进步方能神速! 


作者:Parry
出处:http://www.cnblogs.com/parry/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

相关文章
|
机器学习/深度学习 数据采集 人工智能
英伟达推出”生成式AI专业认证“,帮你成为大模型开发专家!
【2月更文挑战第18天】英伟达推出”生成式AI专业认证“,帮你成为大模型开发专家!
782 2
英伟达推出”生成式AI专业认证“,帮你成为大模型开发专家!
|
Java 数据库连接 Spring
SSM-Spring-22:Spring+Mybatis+JavaWeb的整合
  ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥-------------     众所周知,框架Spring来整合别的框架,但是Mybatis出现的晚,Spring就没有给他提供支持,那怎么办呢?Mybatis说,我吃点亏,我给你提供整合的jar,所以那个整合的jar包就叫mabatis-spring。
1381 0
|
2天前
|
存储 关系型数据库 分布式数据库
PostgreSQL 18 发布,快来 PolarDB 尝鲜!
PostgreSQL 18 发布,PolarDB for PostgreSQL 全面兼容。新版本支持异步I/O、UUIDv7、虚拟生成列、逻辑复制增强及OAuth认证,显著提升性能与安全。PolarDB-PG 18 支持存算分离架构,融合海量弹性存储与极致计算性能,搭配丰富插件生态,为企业提供高效、稳定、灵活的云数据库解决方案,助力企业数字化转型如虎添翼!
|
13天前
|
弹性计算 关系型数据库 微服务
基于 Docker 与 Kubernetes(K3s)的微服务:阿里云生产环境扩容实践
在微服务架构中,如何实现“稳定扩容”与“成本可控”是企业面临的核心挑战。本文结合 Python FastAPI 微服务实战,详解如何基于阿里云基础设施,利用 Docker 封装服务、K3s 实现容器编排,构建生产级微服务架构。内容涵盖容器构建、集群部署、自动扩缩容、可观测性等关键环节,适配阿里云资源特性与服务生态,助力企业打造低成本、高可靠、易扩展的微服务解决方案。
1281 5
|
12天前
|
机器学习/深度学习 人工智能 前端开发
通义DeepResearch全面开源!同步分享可落地的高阶Agent构建方法论
通义研究团队开源发布通义 DeepResearch —— 首个在性能上可与 OpenAI DeepResearch 相媲美、并在多项权威基准测试中取得领先表现的全开源 Web Agent。
1308 87
|
1天前
|
弹性计算 安全 数据安全/隐私保护
2025年阿里云域名备案流程(新手图文详细流程)
本文图文详解阿里云账号注册、服务器租赁、域名购买及备案全流程,涵盖企业实名认证、信息模板创建、域名备案提交与管局审核等关键步骤,助您快速完成网站上线前的准备工作。
171 82
2025年阿里云域名备案流程(新手图文详细流程)