本文来自http://panweizeng.com/archives/133
在代码层次上看,SinaCMS是使用C++编码的,模板取数据的时候则使用了perl脚本。SinaCMS里面频道、项目和模板是结合在一起的,他们三者的关系是:
1.一个频道就是一个项目,在数据库里面体现就是一个数据库,比如说新闻中心,对应一个名为news的数据库;
2.一个频道会有若干个模板,例如首页,新闻页,这些在数据库中体现为相关的表;
3.模板需要定义模板域,模板域有表单类型模板域(Form)和应用类型模板域(Application)两种类型,前者面向编辑的提供数据界面接口功能,后者面向技术支持人员提供高级的二次开发功能。模板域在数据库中就是模板表中相对应的数据扩展字段,例如Form::TextField对应的就是 text字段,数据由编辑录入,Application::SQLResult
也是text字段,存储的则是执行Perl脚本执行后的结果。模板的内容存储在另外的字段中。
不难看出,SinaCMS具有极其强大的灵活性。因为它的数据库结构是项目建立以后构建模板的时候才确定的。各个频道,例如资讯频道、财经频道和汽车频道,可以拥有完全不同的数据库结构,不同频道的特殊需求也可以完全定制。另外可以看出SinaCMS里面的模板是最主要的模型,承担了确定数据表结构、文章发布和管理以及配置频道参数等等功能。
我们来看CMS系统中常见的新闻页,频道首页和列表页在SinaCMS中是怎么实现的。
编辑上文章时,先找到该频道的新闻页,然后在下面录入文章,录入完毕后点击发布,系统会根据模板的内容去获取相关的字段内容,根据模板的属性最后发布成相应的静态文件,其间如果和其他模板有相关关系(在新闻页模板域中定义Application::PostInPage),则会去触发相应的模板(例如首页和列表页)更新。
在首页模板的区块中,可以分为动态和静态两种。对于需要经常更新的静态区块,可以独立出来做成一个模板,静态区块就相当于该模板下的一篇(有且仅有一篇)文章,当然也可以在首页中新建一个Form::TextField的模板域。动态区块例如动态新闻列表,则可以在首页中新建一个 Application::SQLResult的模板域,通过执行perl脚本获取内容填充,然后在首页模板内容引用该模板域,当然同样也可以新建一个只包含一个Application::SQLResult域的模板。
对于列表页,首先列表页的分页值可以存储在列表页的模板域中,也可以保存在某个模板中。分页在处理时,会通过perl脚本来执行分页算法。最终所有列表页都是列表页模板下的一个文档集。
在一个项目中,为了提高发布效率,还会存在若干的临时存储表和归档表(其实就是一些模板啦)。例如在首页的动态新闻列表,就有可能建一个临时存储数据的模板,这时如果频繁更新首页或者含有动态新闻列表的模板时,无疑将减轻数据库的压力。新闻单页的模板在处理时可以就保存最近一个月内的文章,尤其在文章数据增长较快的频道,这时就很有必要。那么以前的文章就需要转储到一个归档表中,作为查询和偶尔更新某篇文章使用。
SinaCMS中的频道路径path(例如资讯>大陆>正文)是通过模板处理的,在模板的模板域中会用perl来处理相关的逻辑。子频道和专题也是通过模板来实现的,它会通过新增一个模板来建立子频道和专题之间的关系。
至此,我们可以了解到SinaCMS中使用了非常多的冗余字段来存储本来需要多表联合查询的数据,这无疑提高了文章的发布效率。
在其他的CMS中,模板只是独立概念中的一个,而在SinaCMS中,万事万物皆模板。
其实我理解也不是很透,所以以后有时间我会再对本文做一些更新。
分享到:
相关推荐
包括CSDN、凤凰网、新浪科技、网易科技纷纷报道, 专注性能, 开放卓越, 力求做到网友所赠的: 建网站,选逐浪。 易上手,功能棒。 质量好,服务善。 高性能,最划算。 点此立即下载:...
多种系统模型满足更多站长需要 支持文章、组图、视频、下载等模型,可以用来构建不同类型的站点。 第三方用户整合登录功能 除系统自带的会员外,还支持QQ、支付宝、新浪微博等第三方账户登录。
这涉及到数据库模型设计,如User、Weibo、Comment等表之间的关系。你需要知道如何通过HTTP请求获取和更新这些信息,以及如何在前端展示。Flask的模板引擎如Jinja2可以帮助我们生成动态HTML页面。 对于CMS(内容管理...
3、系统会自动读取文章模型带图且为推荐的广告 4、注意:本广告设定读取节点为1的内容,如果您要调用其它节点请修改第15、23行的NodeID参数 5、本标签支持所有版本逐浪CMS并兼容IE6以上所有浏览器 6、本广告前台...
FengCms不含会员系统,评论系统(用新浪微博评论墙和腾讯微博评论墙代替),没有商城系统等等。FengCms是一款纯粹为展示内容而生的cms系统。FengCms含有灵活多变的模块系统,你可以自定义出来任意你想要的模型(有点...
这些模型控件你还能开发,并且安装到eBSite中来,传统CMS模型非常死板,而eBSite在这方面有所超越,这些模型控件的可开发特性,意味着你可以制作更多加复杂的模型。 ebsite3.0修复了原有2.x版本下bug的同时...
FengCms不含会员系统,评论系统(用新浪微博评论墙和腾讯微博评论墙代替),没有商城系统等等。 FengCms是一款纯粹为展示内容而生的cms系统。 FengCms含有灵活多变的模块系统,你可以自定义出来任意你想要的模型...
KesionCMS打破CMS系统瓶颈,系统自带功能强大的BBS,不再为了整合第三方论坛平台而烦恼,一站式用户登录,系统还集成腾讯QQ,新浪微博及支付宝快捷登录,只需绑定下帐户,以后可以直接用QQ号或支付宝帐户登录。...
KesionCMS打破CMS系统瓶颈,系统自带功能强大的BBS,不再为了整合第三方论坛平台而烦恼,一站式用户登录,系统还集成腾讯QQ,新浪微博及支付宝快捷登录,只需绑定下帐户,以后可以直接用QQ号或支付宝帐户登录。...
SDCMS门户版主要包含:文章、组图、视频、下载、单页、外链等模块,系统内置会员模型:会员组,VIP会员,积分购买,会员投稿,投票,评论,留言,心情,搜索,标签,头像组件,在线充值,支持QQ、新浪微博、支付宝等...
KesionCMS打破CMS系统瓶颈,系统自带功能强大的BBS,不再为了整合第三方论坛平台而烦恼,一站式用户登录,系统还集成腾讯QQ,新浪微博及支付宝快捷登录,只需绑定下帐户,以后可以直接用QQ号或支付宝帐户登录。...
KesionCMS打破CMS系统瓶颈,系统自带功能强大的BBS,不再为了整合第三方论坛平台而烦恼,一站式用户登录,系统还集成腾讯QQ,新浪微博及支付宝快捷登录,只需绑定下帐户,以后可以直接用QQ号或支付宝帐户登录。...
##简介yiifcms是基于yii framework 1.1.14个人开发的cms目前已开发到1.5版本 官方网址[1.4.1_release]: ://www.yiifcms.com/ 官方论坛[Discuz X3.1]: : 演示案例[1.5_beta]: ://demo.yiifcms.com/ ##功能目前...
系统采用模块化开发方式,除了自带的文章、图片、下载系统外还可以在文章、图片、下载三个系统模型的基础上自定义出功能模型比如房产系统,酒店系统,图片系统,软件下载等;自定义表单助您轻松打造在线报名,举报...
3. **事件驱动编程**:为了实现第一时间的响应,软件可能采用了事件驱动的编程模型,一旦检测到新的博客更新,就会触发相应的处理逻辑。 4. **网络请求与并发处理**:由于需要同时监控大量博客源,软件可能运用了多...
内 置腾讯QQ、新浪微博、百度、网易、Google、搜狐等OAuth一键登录功能,发布文章、评论自动发微博分享,还集成手机短信接口API通过手机短信 验证更安全,同时会员支持与Ucenter完美整合,会员空间支持域名绑定,用...
KesionCMS打破CMS系统瓶颈,系统自带功能强大的BBS,不再为了整合第三方论坛平台而烦恼,一站式用户登录,系统还集成腾讯QQ,新浪微博及支付宝快捷登录,只需绑定下帐户,以后可以直接用QQ号或支付宝帐户登录。...
KesionCMS打破CMS系统瓶颈,系统自带功能强大的BBS,不再为了整合第三方论坛平台而烦恼,一站式用户登录,系统还集成腾讯QQ,新浪微博及支付宝快捷登录,只需绑定下帐户,以后可以直接用QQ号或支付宝帐户登录。...
内 置腾讯QQ、新浪微博、百度、网易、Google、搜狐等OAuth一键登录功能,发布文章、评论自动发微博分享,还集成手机短信接口API通过手机短信 验证更安全,同时会员支持与Ucenter完美整合,会员空间支持域名绑定,用...
自动获取文章主题关键词的功能对于提高内容管理系统(CMS)的效率、优化搜索引擎结果排名以及提高信息检索的准确性和效率具有重要意义。它可以减少人工标注关键词的工作量,同时使系统更加智能化和自动化。 2. ...