泽元网站内容管理系统(ZCMS 3.0)功能白皮书

发布时间:2023-4-02 | 杂志分类:其他
免费制作
更多内容

泽元网站内容管理系统(ZCMS 3.0)功能白皮书

泽元网站内容管理系统(ZCMS 3.0)功能白皮书- 50 -10.2 会员的角色和机构ZCMS支持建立会员角色,会员角色相当于会员类型,一个会员可以有多个会员角色。网站管理人员可以根据会员的角色提供不同的内容和服务,也可以根据会员角色的不同赋予不同的前台功能权限。会员角色有利于网站用户的自我组织和自我管理,有利于提高用户的活跃度和网站的黏性。ZCMS也可以建立会员机构树,一个会员只能属于一个会员机构。会员机构功能主要是为了根据会员机构的不同限定不同的数据范围,以便于大型组织的内部网站中的数据权限划分。10.3 会员的等级和积分网站提供了很多互动服务,会员通过这些互动服务进行操作时(例如邀请他人注册、投稿、发表评论等),ZCMS会给予一定的积分,以鼓励会员的互动行为。具体哪些操作会给予积分由各个互动功能通过扩展服务注册,系统管理人员可以通过后台的积分配置菜单配置各个操作每次完成后能够获得的积分数值。积分数值可以配置为负数,表示进行该操作需要扣掉的积分值。系统管理员也可以手动为会员更改积分,但ZCMS会记录每次修改积分的操作日志。为了更好地鼓励会员进行更多的互动,会员的积分累积到一定值以... [收起]
[展开]
泽元网站内容管理系统(ZCMS 3.0)功能白皮书
粉丝: {{bookData.followerCount}}
文本内容
第51页

泽元网站内容管理系统(ZCMS 3.0)功能白皮书

- 50 -

10.2 会员的角色和机构

ZCMS支持建立会员角色,会员角色相当于会员类型,一个会员可以有多个会员角

色。网站管理人员可以根据会员的角色提供不同的内容和服务,也可以根据会员角色的

不同赋予不同的前台功能权限。会员角色有利于网站用户的自我组织和自我管理,有利

于提高用户的活跃度和网站的黏性。

ZCMS也可以建立会员机构树,一个会员只能属于一个会员机构。会员机构功能主

要是为了根据会员机构的不同限定不同的数据范围,以便于大型组织的内部网站中的数

据权限划分。

10.3 会员的等级和积分

网站提供了很多互动服务,会员通过这些互动服务进行操作时(例如邀请他人注册、

投稿、发表评论等),ZCMS会给予一定的积分,以鼓励会员的互动行为。具体哪些操

作会给予积分由各个互动功能通过扩展服务注册,系统管理人员可以通过后台的积分配

置菜单配置各个操作每次完成后能够获得的积分数值。积分数值可以配置为负数,表示

进行该操作需要扣掉的积分值。系统管理员也可以手动为会员更改积分,但ZCMS会记

录每次修改积分的操作日志。

为了更好地鼓励会员进行更多的互动,会员的积分累积到一定值以后,ZCMS会自

动提升会员的等级,并提供给会员更多的内容和服务,赋予会员更多的权限。例如会员

投稿可以设置成会员达到一定级别后才可以进行投稿。ZCMS提供了设置会员等级对应

的积分范围的功能,会员的互动操作产生的积分累计值达到了某个等级的积分范围时,

系统就会提升会员的等级并发送通知给会员。

第52页

泽元网站内容管理系统(ZCMS 3.0)功能白皮书

- 51 -

图:会员等级

10.4 可扩展的会员功能

会员登录进入会员中心后,默认只有个人资料、会员投稿和找回密码三个菜单。但

ZCMS将会员菜单设计成了扩展服务,各个插件可以注册自己的菜单到此扩展服务,以

便于实现个性化的会员功能。

11 可视化支持

11.1 基于Dreamweaver可视化模板制作

Dreamweaver是网站前端制作人员最常使用的编辑工具之一,能够完成非常复杂

的页面制作。ZCMS为Dreamweaver开发了模板制作插件,使前端制作人员可以在可视

化的对话框交互环境下使用模板标签,无需记忆模板标签和翻阅模板手册即可完成模板

的制作工作。

ZCMS的Dreamweaver模板制作插件通过简单的配置就可以与服务器上部署的

ZCMS交互,能够自动获取网站的栏目列表、广告列表、调查列表等数据,以便于在对

话框中直接选取相应的数据插入到模板中,极大地提高了模板制作人员的工作效率。

第53页

泽元网站内容管理系统(ZCMS 3.0)功能白皮书

- 52 -

图片:在Dreamweaver中插入字段到模板中

11.2 基于WEB的可视化模板制作

ZCMS提供了多种基于WEB的模板制作方式,包括在线语法加亮和模板标签加亮的

源代码编辑模式,以及基于标签树的属性表单编辑模式,还有所见即所得的可视化编辑

模式。可视化模板编辑时,ZCMS能够自动识别各个模板标签并以所见即所得的方式显

示,用户可以直接点击相应的标签区域,即可在弹出的窗口中修改标签相关的属性。

基于WEB的在线编辑主要用于对模板进行简单修改,复杂模板的修改建议使用

Dreamweaver模板制作插件完成。

图片:可视化模板编辑

第54页

泽元网站内容管理系统(ZCMS 3.0)功能白皮书

- 53 -

11.3 可视化专题

除了网站的日常内容更新外,还需要为新闻事件、节假日等内容较为集中的题材制

作专题页面,以便于浏览者能够在一个单独的页面中看到该题材相关的所有内容。专题

要求支持快速制作,能够进行灵活的布局,能够选择边框风格,能够灵活自主地组织各

个边框内的内容。针对这种需求,ZCMS提供了功能强大、使用灵活、易于扩展的专题

功能,能够使不懂HTML的编辑人员在30分钟之内建立一个形式多样、内容丰富的专题

页面。

ZCMS将一个专题从上到下分成了多个布局块,每个布局块从左到右可以有多列,

每列可以设置自己的宽度并可以容纳多个内容边框,每个内容边框里又可以从上到下放

置多个内容块。ZCMS通过这种灵活的布局方式将页面分成了多个小区域,每个小区域

都可以设置自己的样式包括颜色、边框、高度、宽度和内容,从而制作出丰富多样、错

落有致的专题页面。布局块、内容边框和内容块相关的操作都是基于拖拽或者基于对话

框的,制作人员不需要掌握任何HTML和CSS技能。

ZCMS内置了十几种布局块,覆盖了常用的页面布局;内置了近四十个各种颜色的

内容边框,基本上可以实现大部分网站中的边框效果;并内置十几种内容块,常见页面

组成部分例如图片、视频、文章列表、图片播放器、广告、通用头部和尾部、调查、微

博等都已经直接支持。用户可以将这些布局块、边框和内容块自由组合,搭建丰富多彩

的内容页面。同时ZCMS将布局块、内容边框、内容块都设计成了扩展服务,用户可以

通过插件机制注册新的布局块、边框和内容块到ZCMS中,从而为专题扩展新的功能。

第55页

泽元网站内容管理系统(ZCMS 3.0)功能白皮书

- 54 -

图:内置的布局块、内容边框和内容块

图:可视化专题

第56页

泽元网站内容管理系统(ZCMS 3.0)功能白皮书

- 55 -

11.4 所见即所得的预览

基于高效的模板机制,ZCMS提供了全站所见即所得预览,用户在预览站点、栏目、

内容时,ZCMS根据最新的数据和模板设置即时调用模板引擎并输出执行结果,使用户

始终能预览到最新的页面效果。用户进入任何一个预览页面后,在该页面的所有链接都

会变成相应的预览URL,以便于用户始终在预览模式下浏览全站,达到预览效果和最终

发布效果完全相同的目的。ZCMS是目前唯一实现了全站即时预览的内容管理产品。

12 网站群与集群部署

12.1 网站群概述

网站群是由统一规划建设的若干个能够相互共享信息、按照一定的隶属关系组织在

一起,既可以统一管理,也可以独立管理的网站集合。网站群非常适合企业集团、地方

政府、大型事业单位等有分支机构的组织,可以为本组织及下属分支机构建立统一的门

户网站体系。

ZCMS提供了灵活、富有扩展性的网站群功能,站点之间既可以由编辑人员手工复

制和引用信息,又可以基于网站群采集和网站群分发机制实现自动的信息下达和上传;

既可以支持一套ZCMS多个站点,站点之间构成网站群,又支持多套ZCMS多台服务器

之间构成网站群;既支持主站/子站模式的网站群,又支持基于密钥的松散型网站联盟;

既可以同步文章信息,又可以同步栏目结构。

通过ZCMS建设的网站之间可以构成一个整体,不再相互孤立,来访者既可以方便

地通过主站获得统一的信息服务,又可以通过子站获得相关领域内分门别类的信息。同

时,在内部管理上,可以实现多站点统一管理、权限统一分配、信息统一导航、内容统

一检索等,消除信息孤岛,共享集群的软硬件资源,有效降低项目投入。

第57页

泽元网站内容管理系统(ZCMS 3.0)功能白皮书

- 56 -

12.2 内容上报和下发

ZCMS支持多种应用场景下的内容上报和下发:

a. 主站自动下发信息到子站,子站不经审核直接发布

主站通过内部自动传输机制,将主站上某些栏目下的文章发布到指定子站的指定栏

目,发布时不需要子站管理人员审核。

b. 主站下发信息到子站,子站自主选择是否采用

主站通过内部自动传输机制,将主站上某些栏目下的文章传输到指定子站的指定栏

目,传输完毕后文章状态为“初稿”,需等待子站管理人员审核通过后才能发布。

c. 子站报送信息到主站,主站不经审核直接采用

子站通过内部自动传输机制,将子站上某些栏目下的文章传输到主站指定栏目并直

接发布,不需等待主站管理人员审核。

d. 子站报送信息到子站,主站经审核后采用

子站通过内部自动传输机制,将子站上某些栏目下的文章传输到主站指定栏目,传

输完毕后文章状态为“初稿”,需等待主站管理人员审核通过后才能发布。

e. 主站不仅要同步文章信息,还需要同步栏目信息

主站管理人员拥有非常高的权限,主站管理人员在主站某个栏目下新建了栏目,则

子站也要对应地自动新建栏目。

第58页

泽元网站内容管理系统(ZCMS 3.0)功能白皮书

- 57 -

f. 站点之间对等相互引用

各站点管理人员基于业务需要自主决定是否提供信息给其他站点以及是否采用其

他站点信息,站点之间没有主次之分。

g.各站间通过密钥相互引用

站点管理人员指定本站点下某些栏目可以被其他站点使用,并可以为每个栏目设定

密钥。其他站点只有在知道密钥的情况下才可以使用该站点的数据。

图:网站群分发任务

12.3 集群与可用性

ZCMS实施后的网站可以分四个部分:ZCMS管理后台(AdminApp)、数据库(DB)、

静态Web文件(WEB)、前端应用(FrontApp)。

第59页

泽元网站内容管理系统(ZCMS 3.0)功能白皮书

- 58 -

其中静态Web文件是ZCMS模板引擎根据模板文件生成的html文件及相关的图片、

样式文件、脚本文件等。静态Web文件由ZCMS管理后台生成,通过分发功能同步到专

用的Web服务器。除静态Web文件外,网站一般还需要向浏览者提供一些动态的数据服

务,包括调查、访问统计、留言板、评论、向其他业务系统提供的数据接口等。这组服

务对应的动态页面文件以及相应的支撑程序称之为前端应用。前端应用需要和ZCMS管

理后台交换数据。

这四个部分可以处于同一台服务器,也可以分别处于不同的服务器,每个部分本身

还可以部署在多台服务器上构成集群,从而构成多种多样的部署方案。以下是典型的几

种部署方案:

方案一:单服务器部署

服务器台数 1台

部署方式 AdminApp+FrontApp+WEB+DB共用一台服务器

特点

成本最低

一旦宕机则网站彻底不能使用

可用性 低

方案二:数据库单独部署

服务器台数 2台

部署方式

AdminApp+FrontApp+WEB共用一台服务器

DB单独用一台服务器

特点 成本较低,只需要添置一台服务器

第60页

泽元网站内容管理系统(ZCMS 3.0)功能白皮书

- 59 -

ZCMS所在服务器宕机则网站彻底不能使用

DB所在服务器宕机后用户只能浏览静态页面

可用性 较低

方案三:前端应用集群部署

服务器台数 3台

部署方式

服务器1:AdminApp+FrontApp+WEB

服务器2:FrontApp+WEB

服务器3:DB

服务器1和服务器2上的FrontApp+Web构成集群

特点

成本一般,只需要添置硬件

服务器1宕机后用户还能正常浏览网站

服务器2宕机后用户还能正常浏览网站并通过后台管理网站

DB所在服务器宕机后用户只能浏览静态页面

可用性 较高

方案四:完全集群部署

服务器台数 4台以上

部署方式

服务器1:AdminApp+FrontApp+WEB

服务器2:AdminApp +FrontApp+WEB

服务器3:DB

服务器4:DB

服务器1和服务器2构成应用集群

第61页

泽元网站内容管理系统(ZCMS 3.0)功能白皮书

- 60 -

服务器3和服务器4构成数据库集群

特点

成本高,需要添置多台服务器,并需额外购买ZCMS授权,

数据库服务器软件的集群组件也需要另行购买

服务器1宕机后用户网站完全正常使用

服务器2宕机后用户网站完全正常使用

服务器3宕机后用户网站完全正常使用

服务器4宕机后用户网站完全正常使用

可用性 高

其他说明 应用集群和数据库集群都可以随时添加2台以上的服务器

以上四个方案中的FrontApp和Web都可以随时迁移到其他服务器。

12.4 资源分离部署

为了避免太多连接导致服务器拥塞、响应速度变慢,根据RFC 2616的建议,目前

的主流浏览器如IE和Firefox同一域名下只允许不超过2个的并发连接,其他浏览器也都

有并发连接数限制(一般不超过6个)。某些情况下服务器的并发处理性能和带宽都有

富余,但因为浏览器的这一限制,一个页面内的多个资源(包括HTML页面、JS文件、

CSS文件、图片、FLASH文件等)会依次加载而不是同时并行加载,从而导致页面的整

体加载速度受到影响。

第62页

泽元网站内容管理系统(ZCMS 3.0)功能白皮书

- 61 -

为了解决这一问题,大型门户网站如新浪、腾讯会将HTML文件和其他资源文件分

开部署,例如新浪会将图片等资源分布在多个不同域名(例如sinaimg.cn)的服务器,

从而避开浏览器的并发连接数限制,使得多个资源能够同时下载,加快页面的整体加载

速度。

ZCMS将这种把资源分布到多个域名下的做法称之为资源分离部署,将每个资源服

务器的域名称之为一个发布点。ZCMS支持建立多个发布点,并支持将不同栏目下的资

源文件发布不同的发布点。不管是发布成静态页面,还是在动态功能中使用,只要栏目

下的内容被模板标签调用,内容里面的资源路径就会自动以设定的目标发布点的域名为

前缀,从而实现资源的分离部署。

图:发布点设置

第63页

泽元网站内容管理系统(ZCMS 3.0)功能白皮书

- 62 -

13 细粒度、可扩展的权限体系

ZCMS提供了非常丰富的内容管理和动态功能,并且允许二次开发人员扩展更多的

功能。为了使这么多的功能能够被不同的部门、岗位和人员合理使用,做到各司其职、

互不影响,ZCMS实现了非常灵活的细粒度的、可扩展的权限控制体系。

13.1 权限项和权限拥有者

ZCMS将系统中需要授权才能执行的一个或者一类行为称之为权限项,例如保存栏

目、删除文章等。权限项有两种,一种是不区分操作的数据对象的,称之为简单权限项,

例如“系统配置”菜单下的“保存”权限项,只要授予了这个权限项,就可以保存所有的系

统配置数据。另一种是区分操作的数据对象的,称之为数据权限项,例如“栏目管理”菜单下的“删除”权限项,需要逐个栏目授予,只有授权了当前栏目的“删除”权限项,界

面中的“删除”按钮才会处于可用状态。通过简单权限项和数据权限项的结合,ZCMS实

现了最细粒度的权限控制,界面的任何按钮或者UI控件,都可以通过权限控制体系加以

限制,做到只有拥有相关权限项的用户才能够使用相应的按钮和UI控件。

可以被授予权限项的目标实体在ZCMS中称之为权限拥有者,主要有三种,分别是:

1、 机构:代表着一个分支机构或者业务部门,可以根据机构的地域或者职

能的不同授予不同的权限项;

2、 角色:代表着一个岗位,是为了便于给工作职责相同的用户统一设置权

限而设置的。角色必须属于某一个机构;

3、 用户:代表着用户个体,一个用户可以拥有多个角色,但只能属于一个

机构。用户的权限是用户拥有的所有角色的权限的合集,再加上单独为

此用户授予的权限的集合。

第64页

泽元网站内容管理系统(ZCMS 3.0)功能白皮书

- 63 -

ZCMS支持按权限拥有者授权,即选定一个权限拥有者,为该权限拥有者逐个授予

权限项;也支持按权限项授权,即选中一个权限项,逐个为该权限项设定拥有它的权限

拥有者。

图:为角色授权

13.2 分级授权

ZCMS中的机构可以有多级子机构,能够实现按机构分级授权。一般情况下,父机

构被授予的权限项的集合是其子机构权限的超集,父机构下的子机构的权限不能超出父

机构的权限范围。另一方面,机构下的角色的权限不能超出机构自身的权限范围,机构

下的用户一般情况下也不能超出机构自身的权限范围。综上,子机构下的所有权限拥有

者的权限都不能超过其父机构的权限范围。系统管理人员创建子机构、角色、用户授权

时,不在父机构的权限范围内的权限不可选。

第65页

泽元网站内容管理系统(ZCMS 3.0)功能白皮书

- 64 -

在ZCMS中,如果一个用户被授予了机构管理、角色管理或用户管理的菜单权限,

则此用户可以管理本机构下的权限拥有者,为本机构下的权限拥有者授权,但不能管理

父级机构以及同级机构的权限拥有者,也不能修改这些机构下的权限拥有者的权限。通

过这种方式,ZCMS在实现严谨的分级授权机制的基础上,让各个机构能够自主添加本

机构下的子机构、角色和用户,提供了最大的灵活性。

除了严格的逐级授权外,父级机构的管理人员还可以通过为子机构下的某个用户赋

予父机构下的角色的方式,为子机构下的用户单独提升权限。也可以通过为子机构下的

某个用户赋予其他子机构下的角色的方式,实现跨机构授权,以便于更好地适应兼任职

务等情况。

图:为子机构设置权限范围

第66页

泽元网站内容管理系统(ZCMS 3.0)功能白皮书

- 65 -

13.3 可扩展的权限体系

ZCMS的权限控制体系被设计成可扩展的,二次开发人员可以通过以下三方面扩展

ZCMS的权限体系:

1、 权限项:ZCMS中的权限项被设计成可扩展,可以通过注册扩展项到相应的

扩展服务的方式添加新的权限项。如果是简单权限项,则一般注册到菜单权

限扩展服务下;如果是数据权限项,则需要注册到站点权限扩展服务、栏目

权限扩展服务等相关的数据类型对应的扩展服务中去。

2、 权限授予界面:各个插件注册了权限项之后,还需要通过

com.zving.platform.PrivUI扩展点注册自己的权限授予界面,在机构、角色、

用户的权限设置界面中显示一个选项卡。通过此选项卡可以让管理人员以各

种形式(表格、树形结构等)的界面为权限拥有者授予权限项,并通过统一

的权限保存API将各插件注册的权限项保存到对应的数据库记录中。

3、 权限检查行为:各个插件实现了自己的权限授予界面之后,还需要注册权限

检查行为到com.zving.framework.PrivCheck扩展点,以实现各插件自己注

册的权限项的检查逻辑。

14 全面的安全机制

14.1 SQL注入检查

ZCMS提供了全面的应用层安全机制,对主要的威胁网站安全的问题进行了系统的

处理。ZCMS基于ZCF底层框架构建,在ZCF中大部分数据库操作都是基于ORM的,不

进行SQL注入的可能。少部分非ORM的SQL语句也全部是基于QueryBuilder机制的,

QueryBuilder要求所有的SQL条件都是基于参数的,不允许直接将字符串拼接到SQL语

第67页

泽元网站内容管理系统(ZCMS 3.0)功能白皮书

- 66 -

句中,例如:

QueryBuilder qb = new QueryBuilder(\"select * from ZCLog where Type=? and ID=?\", ArticleContentType.TypeID, articleID);

if (StringUtil.isNotEmpty(userName)) {

qb.append(\" and AddUser like ?\", \"%\"+userName+\"%\");

}

if (StringUtil.isNotEmpty(startDate)) {

qb.append(\" and AddTime>=?\", startDate);

}

if (StringUtil.isNotEmpty(endDate)) {

qb.append(\" and AddTime<?\", DateUtil.addDay(DateUtil.parse(endDate), 1));

}

qb.append(\" order by addtime desc\");

DataTable dt = qb.executeDataTable();

QueryBuilder是对参数化的Statement的封装,它将传入的参数作为字符串传入

Statement,防止传入的参数侵入到SQL逻辑中并获得执行,从而达到防止SQL注入的

目的。

14.2 跨站脚本检查

XSS(跨站脚本攻击Cross Site Scripting) 攻击者提交恶意HTML代码到服务器端,

如果服务器端未经检查即输出到HTML页面,则其他用户浏览该页之时,嵌入其中Web

里面的html代码会被执行,从而达到攻击者的特殊目的。XSS是常见的网站安全问题。

第68页

泽元网站内容管理系统(ZCMS 3.0)功能白皮书

- 67 -

ZCMS通过严格的参数检查机制,对XSS进行了周密的防范。任何传递给服务器的

HTTP请求(无论是get还是post请求),请求中的参数默认只允许字母、数字、下划线

等无危害字符,不允许有单引号和双引号等特殊字符,如果参数中有特殊字符,则ZCMS

自动拦截请求并重定向到错误页面。如果页面确实需要接受含有特殊字符的参数,则相

应的后台方法需要使用 @Verify 注解作特别声明,并在方法中检查参数是否合法或进

行HTML转义存储。

14.3 防止非法文件上传

ZCMS使用了基于Flash的上传控件,在文件上传前检查了文件的扩展名,只允许

扩展名在指定的扩展名列表中的文件上传到服务器。同时在服务器后台在文件保存到磁

盘之前也再次检查了文件扩展名,只有扩展名被允许的文件才会写入到磁盘。

ZCMS中所有上传的文件保存之前还会检查文件路径,只允许保存在指定的目录

下,该目录一般由WEB服务器负责解析,只支持静态的.html和.shtml文件,不支持

PHP/JSP等动态页面执行。

另外,ZCMS被设计成可以在低级别操作系统权限下运行,ZCMS只需要对应用目

录和发布文件所有目录(通常是wwwroot)拥有读写权限即可正常运行。ZCMS建议运

行在非root用户下。

通过以上措施,ZCMS很好地防止非法上传程序到服务器,防止服务器被安装

WebShell或被挂马。

14.4 防止越权访问

除了防止未登录用户通过SQL注入、XSS、非法上传文件等方式破坏系统外,ZCMS

第69页

泽元网站内容管理系统(ZCMS 3.0)功能白皮书

- 68 -

还对合法登录用户的行为进行了严格的权限检查,以防止低权限用户非法越权进行高权

限操作。

ZCMS对所有的页面都加入了权限声明,例如:

<z:priv priv=\"Platform.Branch\" />

此语句限制了当前页面只有拥有 Platorm.Branch 权限项(即机构管理权限项)的

己登录用户才能访问,如果未登录或者未拥有 Platform.Branch 权限项,则直接重定

向权限不足页面,后续页面逻辑将不会执行。

ZCMS不仅支持页面级别的权限检查,还支持对页面中的按钮、控件、显示区域进

行细粒度的权限检查,可以方便、灵活地为不同的按钮赋予不同的权限项,只有当前用

户的权限项满足按钮要求的权限项时,该按钮才对用户可见或可用。

ZCMS还对所有的后台方法进行了权限检查,后台方法被调用时,ZCF框架会检查

该方法的 @Priv 注解,如果当前用户不满足 @Priv 注解中要求的权限,则该方法中的

程序逻辑不会被执行,并会提示用户权限不足。

15 可扩展性与二次开发

15.1 基于插件的松耦合体系

在软件行业中普遍存在一种现象:软件企业特别是产品型的软件企业往往倾向于劝

说客户去适应产品的现有功能,而比较抗拒对产品中的功能做客户化修改。这种现象的

出现并不全部是修改本身的工作量的原因(大部分情况下修改的工作量实际上非常小),

而在于这种修改要求软件企业为每一客户保有一个产品的版本库分支,将来对此客户的

任何响应都要基于此一分支,此一分支也不便于和主版本同步演进,这就会带来比较大

第70页

泽元网站内容管理系统(ZCMS 3.0)功能白皮书

- 69 -

的管理成本。特别是熟悉此一分支的骨干人员离职之后,对于客户的服务水平将会急剧

下降。

针对此一问题,泽元软件构建了一套插件体系,并为此体系提供了基于Eclipse的

ZDeveloper开发工具,使得客户的个性化需求通过可插拔的插件来实现。特别地,

ZDeveloper允许通过在插件中声明扩展点和扩展项来覆盖和扩展ZCMS中原有的功能,

但又不影响产品本身的升级。通过这种方式,每个项目只需要维护该项目特有的一个或

几个插件的代码即可,项目版本库中的代码量急剧减少,代码的可读性、可维护性大增,

又因为没有修改产品的核心代码,因此只需要着重测试项目相关的插件即可,测试的工

作量也随之大减,从而较好地兼顾了个性化实施和管理成本两个方面。

ZCMS中的插件非常类似于Eclipse中的插件,它是由一个.plugin文件所描述的旨在

扩展其他插件的功能、并可向其他插件提供扩展点和扩展服务的一组遵循规范的业务逻

辑及其页面,能够独立部署、启用和停用。一个插件由以下内容组成:

其中菜单、扩展服务、扩展点、扩展项、扩展行为由插件的.plugin配置文件描述,

JAVA代码、JSP页面、国际化文件则是实际存在的磁盘文件,由.plugin文件记录其存

放位置。

第71页

泽元网站内容管理系统(ZCMS 3.0)功能白皮书

- 70 -

15.2 二次开发工具

ZCMS通过基于Eclipse的ZDeveloper(泽元开发平台)提供二次开发支持。通过

ZDeveloper,ZCMS 允许专业JAVA开发人员为ZCMS创建插件,通过插件扩展ZCMS

的UI界面、视图、菜单、定时任务、内容类型、互动功能、模板类型和模板标签,并允

许通过扩展点和扩展项干预系统包括权限、工作流、全文检索在内的各种行为。

ZDeveloper还提供了数据库模型设计、数据库模型自动入库、数据库逆向建模、SQL

语句生成、CURD文件创建和全面的国际化功能,从而实现了业内最高规格的内容管理

二次开发支持。

ZDeveloper的详细介绍见《ZCMS二次开发白皮书》。

15.3 菜单的扩展

在ZCMS中,所有的功能菜单都由插件提供,系统启动时Framework会读取所有

的.plugin文件,将其中的菜单注册到菜单管理器。如果部署并启用了某个插件,则此插

件相关的菜单显示,否则菜单消失。

ZCMS的二次开发工程师可以通过在插件编辑器的Menus选项卡中添加菜单的方

式为ZCMS添加新的功能菜单。

第72页

泽元网站内容管理系统(ZCMS 3.0)功能白皮书

- 71 -

图:为ZCMS添加菜单

15.4 扩展服务和扩展项

某一插件实现的功能需要依赖于本插件定义的某一接口的子类的集合时,需要定义

扩展服务。扩展服务是一个插件配置项,用于声明本插件的一个扩展项注册入口;扩展

项也是一个插件配置项,用于声明向哪个扩展服务注册扩展项。扩展项指定的类必须实

现扩展服务指定的接口。

例如:内容核心插件需要管理所有的模板标签,但内容核心插件不知道其他插件都

实现了什么标签,所以需要提供一个模板标签扩展服务。其他插件则可以将自己实现的

模板标签扩展项注册到此服务,从而通知内容核心在模板编译、执行、标签展示等环节

使用此标签。

扩展服务的配置界面:

第73页

泽元网站内容管理系统(ZCMS 3.0)功能白皮书

- 72 -

扩展项的配置界面:

常用的扩展服务列表请参见附录一。

15.5 扩展点和扩展行为

为了让一个插件的JAVA类或JSP页面运行到指定行数时,可以执行其他插件中的指

定的程序逻辑(通常是额外的数据校验和处理逻辑),需要定义扩展点。

扩展点是一个插件配置项,用于声明本插件的一个扩展行为注册入口。程序执行到

扩展点所在的行时会查找所有注册到该扩展点的扩展行为,并执行所有的扩展行为指定

的类。扩展项也是一个插件配置项,用于声明向哪个扩展点注册扩展行为,并指定该扩

第74页

泽元网站内容管理系统(ZCMS 3.0)功能白皮书

- 73 -

展点被调用时执行的类。

扩展点类型于SWING中的事件(Event),扩展行为则类似于监听器(Listener)。

例如:文章编辑插件在文章保存的JAVA方法中增加了一个扩展点,其他插件可以

通过注册扩展方法到这个扩展点,实现文章信息保存之前的预先检查是否有不文明词汇

等。

扩展点配置界面:

扩展行为配置界面:

16 完善的国际化支持

16.1 前台国际化

ZCMS支持为一个单位创建多个不同语言的站点。用户能够通过录入多种语言的内

容,并为每种语言指定相应的模板,从而生成多语言网站群。ZCMS不仅支持内容的多

第75页

泽元网站内容管理系统(ZCMS 3.0)功能白皮书

- 74 -

语言录入,而且还实现了前台功能的国际化,例如分页条、调查、统计、留言板、评论

等功能,在不同语言的站点下使用这些功能,会自动显示该语言对应的按钮、文字和提

示信息。ZCMS将这些功能中的字符串抽取成了国际化语言文件,用户可以参照这些语

言文件新增其他语言文件,以达到添加新的网站前台语种的目的。

16.2 后台国际化

ZCMS是国内唯一实现了前后台完全国际化的内容管理产品,不仅可以发布内容和

功能完全国际化的网站,而且可以让不同语言的用户在自己的母语环境下创建内容和管

理网站。

ZCMS实现了所有后台界面中的对话框、按钮、文本、提示信息的国际化,并且对

部分图片和重要数据(例如组织机构、代码、角色等)实现了国际化,系统会根据当前

用户选择的语种,自动显示相应语言的各种文本和图片。

16.3 增加新的语言

ZCMS 将 界 面 中 的 文 本 按 插 件 和 语 言 保 存 成 了 文 本 文 件 , 位 于 应 用 的

WEB-INF/plugins/classes/lang目录下,也可以位于WEB-INF/plugins/lib目录下的各

个.plugin.jar文件中。用户可以手工编辑这些文本文件,也可以按语言逐个插件新增文

本 文 件 , 统 一 放 置 到 WEB-INF/plugins/classes/lang 目 录 下 , 然 后 编 辑

WEB-INF/plugins/classes/lang/lang.i18n文件,增加新语言的配置项,系统即可识别

新的语言。

ZCMS的二次开发工具ZDeveloper还提供了可视化的国际化管理工具,可以通过界

面可视化地新增语言,并可以多语种对照添加新语言的国际化文本。

第76页

泽元网站内容管理系统(ZCMS 3.0)功能白皮书

- 75 -

图:通过开发工具管理语言文件

17 一流的技术规格

ZCMS3.0拥有一流的技术规格,并兼容业界几乎全部的浏览器、操作系统、数据

库和中间件,具体如下表所示:

项目 规格

单服务器最大同时在线

后台用户数

2000人(可用内存需大于2G)

最大站点数 1000

最大栏目数 1000000

最大文章数 无限制(实测超过2000万篇)

文章发布性能 大于每分钟5000篇(Xeon 2.4G 双CPU)

第77页

泽元网站内容管理系统(ZCMS 3.0)功能白皮书

- 76 -

内容采集性能 大于100页/秒(带宽允许的情况)

兼容浏览器 Internet Explorer、Firefox、Chrome、Safari等

兼容操作系统 Windows XP/2003/Vista/7、Redhat Linux、Suse Linux、AIX、

Solaris、HP-Unix

兼容数据库 Oralce、DB2、Sybase、SqlServer、Mysql、DM、OpenBASE、

OSCAR、KingbaseES、iBASE

兼容中间件 所有支持J2EE 1.3和1.4标准的中间件

附录:ZCMS3.0系列文档

文档名 用途

《ZCMS3.x0功能白皮书》 ZCMS3.0的基础概念和功能特性的说明。

《ZCMS3.0编辑手册》 ZCMS3.0中编辑相关功能的使用手册。

《ZCMS3.0管理手册》 ZCMS3.0中站点管理和维护相关功能的使用手册。

《ZCMS3.0二次开发白皮书》 ZCMS3.0的二次开发中的基础概念、运行机制、扩展机制,

并附有2个简单的插件实例。

《ZCF白皮书》 ZCF基础技术框架中的概念和机制的说明。

《ZCFJava使用手册》 ZCF中JAVA类的使用方法。

《ZCF JS使用手册》 ZCF中JS工具的使用方法。

《ZCF控件手册》 ZCF中的UI控件的使用方法。

《ZDeveloper使用手册》 ZDeveloper的操作手册。

百万用户使用云展网进行电子书制作,只要您有文档,即可一键上传,自动生成链接和二维码(独立电子书),支持分享到微信和网站!
收藏
转发
下载
免费制作
其他案例
更多案例
免费制作
x
{{item.desc}}
下载
{{item.title}}
{{toast}}