CMS的功能简单来说可以表述如下: 一个内容管理系统是把一个网站的内容(文字,图片,等等)与网站的组件分离开来,可以将各个页面连接到一起,可以控制页面的显示。通过这个系统,可以方便的管理、发布、维护网站的内容,而不再需要硬性的写HTML代码或手工建立每一个页面。 因此要实现后台系统对前台网站进行管理,首先应该分析一下前台网站的结构。前台网站结构可以用下图来表示: 总的来说,网站的页面可以分为三类:首页类、栏目类、内容页类。首页类是由多个栏目信息(多种信息源)的集成。栏目类是对某一类型信息的一个集成,而页面显示样式可能是列表,也可能是列表集合,或者单条信息集合(即将多个单条信息分布于页面的不同位置)。内容页是单条信息的详细内容。 针对任何一个页面来讲,它都是由HTML结构及数据组成的。HTML结构代表了页面的版式、色调样式等等外观性展示,这在CMS里面可以用模板来表示。页面中的数据内容就可以分为多种内容来源,反映在数据库上是多个表结构,在面向对象技术里表示为多个对象。常见的一些内容来源有:新闻(文章)、图片、下载、一般性信息、产品、评论、投票、链接、订单、短消息、留言、企业黄页等等多种数据格式。这些都是CMS需要管理的对象,CMS可以为每一类数据建立一个数据库表,另外还需要提供扩展方式以供用户定制使用。 其次,将各个页面链接起来和网站信息构建中网站内容分类时,需要建立一个导航体系或者说是内容体系,它是一种层次性分类结构。这可以用CMS里面的栏目来进行管理。
这里的模型是指数据模型,比如新闻、短消息之类的数据模型。一般的CMS都有一些内建的数据模型,可以对这类模型进行管理,同时CMS基本上都支持自定义数据模型。对已有数据模型,后台提供了相应的管理模块,主要功能有模型分类管理、添加和修改数据。而对于自定义数据模型,CMS应当提供多种管理方式。对每种模型,都有一种列表、栏目、内容页的模板命名规则,同时也会对它其他的一些信息进行管理。模型管理涉及到数据库的DDL,需要创建、修改数据表结构。一般的CMS支持导入数据模型,导入方式不同的CMS不一样。 一般情况下,模型对应了相应的模块。模块在CMS里相当于一种内容组件,许多CMS将一个模块放在一个文件夹下进行管理的。模块都有自己的访问地址、访问权限等。
CMS一般都使用了显示模板,而模板的核心就是显示样式和标签。显示样式可以用HTML代码制定,而标签一般都是CMS自定义的一种数据访问规则。一个标签绑定了一个数据源。这里的数据源是指数据的来源,可以是变量或者数据库访问。首先标签有特定的命名规则、调用规则,必然按某种规则使命名和调用它,这可以构成一套语法。其次标签也有不同的类型,如栏目标签或者内容标签、列表标签等等。CMS对某一个特定标签都会去定义它的数据调用方式,调用变量参数或者执行数据库sql。 对模版中的标签进行解析是CMS里的一个核心内容。一般有两种方式,一是标记类模板,即将数据生成后,替换模板中的相应标记的内容,形成HTML,这种方式较简单。第二种是有相关语法的模板,即直接读取模板后,对其进行解析,当调用某种标签时,会调用相关的函数去完成标签的数据读取动作,最后生成相应的HTML文件。
一般CMS都具有将记录转变为HTML,即页面静态化的功能。作为后台管理系统的CMS,需要制定静态化后页面的命名规则、静态化管理、静态化与动态结合的相关问题。静态化方案也是多种多样的,不同的CMS可能采取的方式不一样。