第一章 简介...... 4

1.1 目的... 4

1.2 范围... 4

1.3 定义、首字母缩写词和缩略语... 4

1.4 参考资料... 4

1.5 文档概述... 4

第二章 快速入门...... 5

2.1 名词解释... 5

2.2 快速入门... 5

2.3 内容的生命周期管理... 7

2.4 产品特色... 7

2.5 设计模块... 8

第三章 产品功能...... 9

3.1 约定... 9

3.2 产品简介... 9

3.2.1 概述... 9

3.2.2 内容管理... 9

3.2.3 辅助管理... 12

3.2.4 栏目管理... 18

3.2.5 设计中心... 23

3.2.6 系统管理... 35

3.2.7 权限控制... 45

3.3 附属功能... 47

3.3.1 帮助... 47

3.3.2 换肤... 47

3.3.3 打印... 48

3.3.4 刷新... 48

3.3.5 最大化... 48

3.3.6 站点切换... 48

3.3.7 修改密码... 48

3.3.8 退出... 48

第四章 建站流程...... 49

第五章 标签使用方法... 50

5.1 内容组件及内容展示模板... 50

5.1.1 固定数据项调用方法:... 50

5.2 列表组件&分类聚合组件&聚合组件&栏目展示模板... 50

5.2.1 固定数据项调用方法... 50

5.2.2 列表组件中定义数据项调用方法:... 51

5.2.3 在栏目展示模板中调用栏目公用资源数据项的方法:... 51

5.2.4 分页... 51

5.2.5 时间格式化... 51

5.2.6 截取字符串... 51

5.2.7 判断是否为最新消息... 52

5.3 留言板组件... 52

5.4 调查组件... 55

5.5 广告组件... 56

5.5.1 广告组件标签说明... 56

5.5.2 横幅广告代码... 56

5.5.3 弹出广告代码... 56

5.5.4 漂浮广告代码... 56

5.5.5 悬挂广告代码参考:... 57

5.6 搜索组件... 58

5.6.1 搜索组件参数说明... 58

5.6.2 搜索结果标签... 60

5.6.3 搜索组件代码... 60

5.7 相关内容组件... 63

5.8 分页组件... 63

5.9 页面分页显示组件... 67

5.10 评论代码... 68

5.11 打分代码... 69

5.12 访问次数... 71

 

第一章简介

1.1目的

编写此文档的目的是为本产品系统管理员提供使用参考。

1.2范围

文档适用于内容管理系统(CMS 5.5)系统实施,使用阶段。

1.3定义、首字母缩写词和缩略语

CMSContent Management System

1.4参考资料

《中信网络科技内容管理系统设计说明V1.1

1.5文档概述

本文档分为四个章节:第一章为简介、第二章为快速入门、第三章为产品功能、第四章为建站流程、第五章为标签使用方法。

 

第二章快速入门

2.1名词解释

l  内容管理系统:这是一个比较宽泛的概念,传统意义上说,内容管理系统应用于创建、编辑、管理、检索以及发布各种数字媒体(如音频、视频)和电子文本的计算机软件。

l  发布类模板:用来定义内容组织的数据元素,例如一条典型的新闻由新闻标题,新闻发布时间,新闻作者,新闻内容等数据元素构成。发布类模板的作用就是灵活定义内容数据元素构成。在本系统中有两种类型的发布类模板:内容发布模板及栏目资源模板。

l  展示类模板:用来定义内容的展示样式,通过标签与发布类模板关联,将发布类模板中定义的内容按照指定的样式展示。包括栏目展示模板和内容展示模板。

l  栏目:内容存储及展示的基本单元。包括有页面栏目以及区域栏目,区域栏目下不存放内容信息,只是一个逻辑的节点。

l  标签语言:在展示类模板以及列表组件模板中使用的标记语言,是发布类模板与展示类模板之间的桥梁。

l  系统公用组件:公用组件是发布类模板与展示类模板之间的另一座桥梁,包括有union聚合组件,分页组件,广告组件,聚合组件,列表组件,调查组件,HTML组件,栏目管理组件,留言板组件,内容组件,页面分页显示组件,繁简转换组件,统计组件,分类聚合组件,相关内容组件,搜索组件。

l  列表组件模板:服务于系统公用组件中的列表组件,将多个列表组件的公用部分抽取出来,增强列表组件的可变更性。

l  索引:全文检索所依赖的文件系统库。

2.2快速入门

   具体操作请参考《cms5.5快速入门demo.swf

   设计架构:

建站流程:

2.3内容的生命周期管理

2.4产品特色

2.5设计模块

 

第三章产品功能

3.1约定

l  “”:表示系统的一个功能或模块

l  %提醒:此图标提醒您,如果要正确操作本系统,就要注意以下操作。

l  【】:表示按钮,例增加

l  “删除”“完全删除”的区别,“删除”是一种未完全删除状态,是可以恢复的;而“完全删除”则是将要删除的内容完全物理删除,不可恢复,请慎用此功能。

3.2产品简介

3.2.1概述

系统分为五大功能模块,包括有:内容管理,栏目管理,设计中心,辅助管理以及系统管理。

内容管理供内容发布使用,栏目管理提供对栏目节点的管理,设计中心提供对模板,组件的管理,辅助管理提供对交互性内容的管理(留言板、广告管理以及调查功能),系统管理提供安全,统计,工作流,站点等的管理。

3.2.2内容管理

3.2.2.1概述

本功能模块提供对信息内容的管理。

3.2.2.2操作说明

点击“内容管理”页面左侧是栏目的树形结构。

工作列表,进入工作列表后会显示出当前用户需要审核/已审核的内容信息,用户可以选中需审核内容,进行审核操作。

进入右侧“内容管理”操作主界面,有以下两种情况的显示页面:

1、栏目未启用工作流

2、栏目启用工作流

按钮功能介绍:

【统计】

   用来统计当前栏目的内容发布统计和访问统计,统计结果可生成EXCEL报表。

【添加】

  在当前栏目下发布一条新的内容。

【编辑】

  对已经发布的新闻进行编辑。(选中要编辑的新闻,使该条新闻处于草稿状态方可编辑)

【删除】

  对新闻添加一个删除标记,以表示该条新闻处于删除状态。(是一种未完全删除状态,可恢复),只有草稿状态的新闻才具备此功能。

【草稿】

可以将新闻改为草稿状态。处于当前状态下可以对新闻进行编辑、发布。(新添加的新闻如果不直接发布则处于草稿状态)

【完全删除】

  是将要删除的内容完全物理删除,不可恢复,请慎用此功能。只有草稿状态的新闻才具备此功能。

【内容转移】

  可以将现有页面的新闻转移或复制到同一站点下的其它栏目中,可在当前页面选中一条或多条内容进行转移操作。

【删除评论】

  删除该条新闻下的评论内容。

【查看版本】

  当前新闻若进行修改,系统会自动存储修改的记录,修改过的新闻以最新的版本显示,该功能可对当前新闻进行修改记录的查询,并可以恢复到以前的版本。

【发布】

  可对新闻进行发布操作,在前台显示新闻。可对新添加和编辑过的新闻进行发布。

【置顶】

  规定一条新闻在当前栏目下以“第一条”身份显示。并添加一个置顶标记(选择置顶时,置顶顺序数字越小,越靠前,即按正序排序。)

【取消置顶】

  取消新闻“第一条”显示的身份。取消置顶功能回归到新闻以前的位置。

【↑】

  把单条新闻的顺序,向上一位排序。

【↓】

  把单条新闻的顺序,向下一位排序。

【排序】

  可以对新闻进行位置的更改,以调整新闻的显示顺序。栏目新闻显示是以从上至下顺显示在前台。

【预览】

在内容管理系统中可以查看当前新闻的展示样式。

提交审核

由发布人员将新闻提交给下一流程阶段的审核人进行审核。

查看审核】

查看审核记录和审核历史记录。

【取消审核】

取消新闻审核状态,退回到草稿状态。

【本栏目待审

只有具有该栏目审核权限的人才能看到本栏目待审的新闻。可直接在此处进行新闻审核、预览的操作。

%提醒:新建完栏目后,请启用该栏目,否则无法在前台显示

3.2.2.3常见问题处理方法

1、   为什么新闻不能编辑?

答:检查新闻状态是否为草稿状态。

2、   为什么新闻在前台页面不能显示?

答:检查新闻的“权限设定”,read权限是否已进行设置,一般匿名访问需设置为guest权限。

3、   为什么附件不能上传?

答:检查附件格式(扩展名)是否在“系统管理”模块的“上传格式管理”中有设置,并且保证附件大小小于预设值。

4、   找不到图片上传的文件夹?

答:检查是否有访问该文件夹的权限。

5、   为什么点击添加新闻时会弹出提示窗口请选择内容展示模板?

答:因为当前栏目没有添加内容展示模板,在栏目管理里选择该栏目,然后点内容模板,添加上相对应的内容展示模板,与内容资源模板。

3.2.3辅助管理

3.2.3.1概述

本功能模块提供对调查组件、留言板组件和广告组件的内容管理。

3.2.3.2调查组件操作说明

1、    在“栏目管理”建立“调查”栏目,栏目名称任意。

2、    在“设计中心”下的“系统公用组件”,点击“添加”,选择组件类型为“调查组件”。按下图所示填入组件中各项,代码可参考本手册5.4

3、    点击“辅助功能”。

4、    点击步骤1设置的调查栏目。

右侧主操作区即可进行问卷添加。

5、    详细步骤:

(1)       点击【添加】:增加一个问卷;

问卷名称:必填,作为此问卷的名称,保存并启用该问卷;

(2)       双击该问卷名或单击【问卷问题】进入,如下图:

(3)       点击【添加】,增加一个问题。

问题名称:必填,作为此问题的名称,保存并启用该问卷;

类型:可选该问题的回答方式是“单选或多选”。

(4)       双击问题名称或单击【问题选项】,添加问题选项。

元素名称:必填,问题选项的说明性文字。

将上面建立的调查组件可以放入到需要的栏目展示模板中,即可预览调查问卷的展示样式。

%提醒:调查栏目下可以有多个调查问卷,每个调查问卷下可以有多个问题,每个问题下可以有多个问题选项供选择,选择分单选和多选两种类型。

3.2.3.3留言板组件操作说明

1、    在“栏目管理”建立“留言板”栏目,栏目名称任意。

2、    在“设计中心”下的“系统公用组件”,点击“添加”,选择组件类型为“留言板组件”。按下图所示填入组件中各项,代码可参考本手册5.3章节

3、    点击“辅助功能”。

4、    点击步骤1设置的留言板栏目。

右侧主操作区中在所有辅助功能下拉框中选择“留言板组件”即可进行留言板管理。

5、    详细操作:

前台提交留言页面:

点击【留言】,添加联系方式和留言信息。

后台管理留言页面:

 

查询:通过输入“开始日期、结束日期和按留言内容查询”在下拉框下选择“已答复问题或未答复问题”来查看留言的状况。

回复:管理员回复前台提交的留言。

修改:管理员修改自己回复的留言。

删除:管理员删除前台提交的留言或自己回复的留言。

3.2.3.4广告组件操作说明

1、    点击“辅助功能”选择相对应栏目结构。

2、    然后如下图所示在“所有辅助功能”里,选择广告组件。

3、    点击【添加】,如下图填写广告名称并选择广告类型。

4、   双击广告名称进入广告列表,点【添加】,填写各项,其中带红色*号的为必填项。

广告图片:广告显示的图片,可以点击右侧文件夹选择已上传的图片。

宽度:广告显示宽度。

高度:广告显示高度。

广告链接:广告对应的链接地址。

5、    最后在“设计中心”下的“系统公用组件”,点击“添加”,选择组件类型为“广告组件”。按下图所示填入选择路径,浏览你在“辅助管理”里面添加的广告类型。代码可参考本手册5.5章节

3.2.4栏目管理

3.2.4.1概述

本功能模块提供对站点组织结构的管理。

3.2.4.2操作说明

点击栏目管理进入,如下

栏目管理管理站点栏目的层次结构,点击进入站点语言首页后,选择【添加】进入栏目添加页,填写栏目名称、栏目类型、是否继承父级属性、栏目展示模板、栏目资源模板、内容展示模板、内容发布模板、工作流启用状况、是否启用静态发布、栏目权限分配以及栏目下内容默认权限分配,如果是多站点结构,可选择需要管理的站点,如下:

             

下面分别描述各功能点的详细操作步骤。

(1)      添加:增加一个栏目。

[栏目名称]必填,作为此栏目的名称,可为任意字符;

[栏目类型]如果选择页面栏目,那么此栏目就是以一个单独的页面来显示;如果选择区域栏目,那么此栏目就是以一个页面上的区域来显示的。

[栏目展示模板]此栏目显示的形式,可供选择的模板为栏目展示模板

[栏目资源模板]此栏目中显示的内容,此内容可在“栏目公用资源”中修改。

[内容展示模板]此栏目中新闻内容的显示形式,可供选择的模板为内容展示模板。

[内容发布模板]此栏目中新闻内容显示的数据项。

[是否继承]选择不继承父级则不继承父级任何属性;选择完全继承父级则继承除栏目名称外的所有父级属性,包括栏目映射,工作流程和权限部分。

[启用静态发布]发布新闻的时候自动生成一个静态页面,条目预览的即为静态页面,大大提高了系统访问效率。

 [启用工作流]如果选择“是”,则选择指定的工作流;如果选“否”,则此栏目中没有工作流。

[栏目权限]为栏目配置权限。该权限是分配栏目的管理权限,有三个权限级别:查看、修改、删除。

[内容默认权限]分配此栏目下内容的权限。

其中查看权限是设置在后台内容的查看权限,修改权限是设置后台内容的编辑权限,只读权限是设置在前台内容的查看权限,删除权限是设置后台内容的删除权限。

(2)      统计:统计包括发布统计和访问统计,可统计当前的栏目或当前栏目及其子栏目。统计结果可使用EXCEL表或PDF来输出,还可以生成统计图。

(3)      排序:在排序的文本框中修改栏目的序号,然后点【排序】按钮,可以更新栏目的排序。此排序指的是后台栏目的排列次序。

(4)      权限向下扩散:如果一个栏目和其下属子栏目的权限完全相同,即可只设定最顶层栏目的权限,然后点击【权限向下扩散】,其下属子栏目就会完全继承父级栏目的权限。

(5)      流程向下扩散:如果一个栏目和其下属子栏目的流程完全相同,即可只设定最顶层栏目的流程,然后点击【流程向下扩散】,其下属子栏目就会完全继承父级栏目的流程。

(6)      内容模板:此模板决定的是此栏目下的内容显示样式和显示内容,样式由内容展示模板决定,内容由内容发布模板决定;可以添加多个内容发布模板和内容展示模板的组合来形成一个栏目的内容显示模板。

点击【内容模板】,如下图:

添加:模板名称为必填项目,可以是任意的中英文字符,然后选择相应的内容展示模板以及内容发布模板来决定这个栏目下内容的显示样式和显示内容。

编辑】:可对已经添加的内容模板进行编辑修改。

【删除】删除已经建立的内容模板。

(7)      编辑公用资源:此功能是为了在公用同一个栏目发布模板的时候,可以让栏目有不同的内容,点击【编辑公用资源】可以添加每个栏目不同的资源。

(8)      重置公用资源:此功能在栏目资源模板中设定的构件发生变化时(例如增加一个构件或删除一个构件),需要点击【重置公用资源】来重置当前公用资源。

(9)      栏目转移:可以把当前栏目下的所有新闻,转移到当前站点的任意栏目下。

(10)  编辑:可对已经添加的栏目进行编辑修改。

(11)  删除:删除已建立的栏目,只做删除标记,可点击【启用】重新启用该栏目。

(12)  完全删除:是将要删除的内容完全物理删除,不可恢复,请慎用此功能。

(13)  启用启用该栏目。

(14)  停用:停用该栏目。

(15)  预览:预览栏目的展示样式。

(16)  RSS是一种描述和同步网站内容的格式,是目前使用最广泛的资源共享应用。可以被称为资源共享模式的延伸。

%提醒栏目管理支持无限级别的栏目管理,各级别可通过左侧的栏目树进行操作,如下:

%提醒:建立完毕栏目后,请启用该栏目,否则无法在栏目设计中调用该栏目。

3.2.4.3常见问题处理方法

1、为什么栏目在前台不能浏览?

答:检查栏目的“权限设定”,read权限是否已进行设置,一般匿名访问需设置为guest权限。

2、为什么选中栏目点击编辑公用资源时,会弹出模板对应关系发生错误的提示?

答:因为更新了栏目展示模板的对应关系,所以产生了变化,需要点击重置公用资源,然后提交修改即可。

3.2.5设计中心

3.2.5.1概述

站点设计包括站点的内容发布模板、栏目资源模板、内容展示模板、栏目展示模板、系统公共组件、列表组件模板。

3.2.5.2操作说明

1、 内容发布模板用于定义站点栏目所需的内容录入数据项。

       进入内容发布模板管理页后,选择【添加】,填写信息后选择保存,如下:

保存后返回到内容发布模板管理首页,选中刚添加的内容发布模板,选择【构件管理】,进入该内容发布模板的构件管理页(每个内容发布模板都是由不同的构件构成,构件类型包括有:富文本编辑器、文本框、图片组件、word编辑器、文本区域、上传组件、富文本与word组合编辑器、调用组件、隐含组件),如下:

隐含组件:input type="hidden",是隐藏表单,主要用来传值用。

选择【插入新构件】即可为该内容发布模板增加构件,新增加的构件可以按照排序码排定顺序。对于新增加的构件,可以编辑其属性(属性参数、属性名称、属性摘要、属性高度、属性宽度以及属性默认值),属性参数是构件最后形成数据录入项的标识,用于区分不同的数据录入项(构件);属性名称是录入项的参数标识,同一内容发布模板里的构件属性名称不能重名;属性高度,属性宽度用于定义数据录入项(构件)的展示形式,例如我们可以定义富文本编辑器的高度是300PX,宽是200PX;属性默认值是录入项的默认值。

%提醒:建立完毕内容发布模板后,请启用该模板,否则无法在栏目设计中调用该模板。

 

2、 栏目资源模板,在使用相同的栏目展示模板时有不同的内容时需要用此模板去表示。

       进入栏目资源模板管理页后,选择【添加】,填写信息后选择保存,如下:

保存后返回到栏目资源模板管理首页,选中刚添加的栏目资源模板,选择【构件管理】,进入该栏目资源模板的构件管理页(每个栏目资源模板都是由不同的构件构成,构件类型包括有:富文本编辑器、文本框、图片组件、word编辑器、文本区域、上传组件、富文本与word组合编辑器、调用组件、隐含组件),如下:

选择【插入新构件】即可为该栏目资源模板增加构件,新增加的构件可以按照排序码排定顺序。对于新增加的构件,可以编辑其属性(属性参数、属性名称、属性摘要、属性高度、属性宽度以及属性默认值),属性参数是构件最后形成数据录入项的标识,用于区分不同的数据录入项(构件);属性名称是录入项的参数标识,同一内容发布模板里的构件属性名称不能重名;属性高度,属性宽度用于定义数据录入项(构件)的展示形式,例如我们可以定义富文本编辑器的高度是300PX,宽是200PX;属性默认值是录入项的默认值。

%提醒:建立完毕栏目资源模板后,请启用该模板,否则无法在栏目设计中调用该模板。

3、 系统公共组件提供对站点基础构件的管理,通过内容组件建立对站点内容的调用

组件类型:

下面分别详细介绍组件功能:

(1)   Union聚合组件:可自由组合多个栏目的数据,并且可以填写不同栏目在页面的展现条目,然后按照时间排序来把这些内容聚合到一起列出来。如下:

(2)   分页组件:分页组件是展现分页样式的一个组件,用户可以用此组件来定义分页的样式。代码可参考本手册5.8

(3)   搜索组件:搜索组件定义了搜索框的样式和搜索结果的样式,用户可对指定栏目搜索。代码可参考本手册5.6章节

(4)   相关内容组件:读取与某一条新闻内容关键字相同或相近的一组内容的列表组件,代码可参考本手册5.7章节

接收内容关键字:表示根据不同新闻内容自定义的关键字,按某种算法匹配相关联的新闻。

自定义关键字:选择此项需在下边的关键字文本框中输入一个关键字,以此关键字来匹配相关的新闻。

5HTML组件:可以输入文本块或者 HTML 内容。

6)内容组件:是用于读取一条指定的内容,有两种类型:接收参数及不接收参数。如果选择不接收参数,则需要选择对应的参数路径,如下:

7)列表组件:以列表形式读取指定栏目下的内容,代码可参考本手册5.2章节

8)广告组件,可以在页面上做出如横幅、弹出、漂浮及悬挂的效果,具体操作详见3.2.3.4章节

9聚合组件:将几个栏目中的内容展现在一个列表页里,可选择一共显示多少条内容。代码可参考本手册5.2章节

10留言板组件:具体操作详见3.2.3.3章节。代码可参考本手册5.3章节

11)调查组件:可以制定调查内容,管理统计结果具体操作详见3.2.3.2章节。代码可参考本手册5.4章节

12页面分页显示组件:可以把很长的内容分成多页展示出来。属性名称必须和当前内容发布模板富文本编辑器名称相同。代码可参考本手册5.9章节

13)简繁体转换:在页面添加这个组件后,可轻松实现内容简繁体的转换功能。

%提醒:建立完毕内容组件后,请启用该内容组件,否则无法在展示模板中调用该组件。

4、   列表组件模板将列表组件公用的项提出来写成一个列表组件模板,供列表组件调用,可重复调用。

自动接收参数:选择是,则无需配置栏目路径,自动接收相应参数,只适用于栏目的公共展示列表页面;选择否,则需要配置每个组件对应的栏目路径。

是否取出内容主体:对于模板中有自定义的数据项就需要将此选项设置为“是”。

设定截取字符:可以设定标题的显示长度。

5、   内容展示模板决定内容最后表现的形式,同时建立表现形式与内容数据的关联。

下面介绍设计创建一个模板的步骤:

首先点击【添加】进入添加页面,填写名称,然后开始‘设计’该模板:可以添加静态HTML代码控制表现形式;也可以点击富文本编辑器右上角的选择内容组件按钮,选择已建立的内容组件;还可以使用标签来调用内容发布模板中的各个数据项目,如下:

%提醒:建立完毕内容展示模板后,请启用该模板,否则无法在栏目模板中使用该模板。

6、   栏目展示模板决定栏目的表现形式,同时建立表现形式与栏目公共资源的关联。

下面介绍设计创建一个模板的步骤:

首先点击【添加】进入添加页面,填写名称,然后开始‘设计’该模板:可以添加静态HTML代码控制表现形式;也可以点击富文本编辑器右上角的选择内容组件按钮,选择已建立的内容组件;还可以使用标签来调用栏目资源模板中的各个数据项目,如下:

%提醒:建立完毕栏目展示模板后,请启用该模板,否则无法在栏目模板中使用该模板。

3.2.6系统管理

3.2.6.1概述

系统管理功能模块如上图。

3.2.6.2操作说明

1、   全文检索与搜索相关的功能。

  重建索引:对整个文件系统重建索引。

 搜索排行:按照搜索的频率来排列搜索的关键词。

 搜索风向标:对搜索过的关键字以日期的形式来排序。

全局搜索:提供全局搜索功能、搜索排行和搜索风向标。

2、   综合统计管理提供报表和统计功能。

(1)       设置管理:

l  报表设置:设置报表的输出样式。

l  月报设置:设置统计月报的属性值。

             部门:与下边栏目相对应,表示统计此部门下的哪个栏目。

             栏目:选择统计栏目(统计结果包括该栏目及其子栏目)。

             通知人:月报通知人。

             通知人邮箱:月报通知人的邮箱。

l  新增页面统计URL:把生产的统计代码添加到任一页面即可统计该页面的访问量,访问结果可在“访问—页面访问统计”中查看。

l  查询页面统计URL:查询系统设置的所以页面统计的URL

(2)       其他统计结果查看:

l  发布:带有“发布”字样的,对发布的内容进行统计。

平均每天发布量:查看新闻发布的基本信息。

栏目发布排名:通过输入开始和结束日期来查看某个栏目发布新闻数量的排名状况。

内容发布查询:可以选择查询哪个站点,通过开始日期和结束日期查询发布的所有新闻。

l  访问:带有“访问”字样的,对信息访问进行统计。

平均每天访问量:查看新闻访问的基本信息。

内容访问排名:通过输入开始和结束日期来查看发布新闻访问次数排名状况。

内容访问统计:统计内容访问次数。

栏目访问排名:通过输入开始和结束日期来查看用户访问新闻所属栏目的排名。

栏目访问排名(按级别):按栏目级别查看用户访问新闻所属栏目的排名。

栏目访问统计:统计新闻所属栏目的访问次数。

页面访问统计:对于加入了页面统计代码的页面进行访问统计。

最热新闻排名:查看最热新闻排名。

l  月报:月报结果查看。

访问/发帖统计:访问/发帖统计查看。

信息发布统计(按发布人):按发布人进行信息发布的统计。

内容访问统计:单条内容的访问量。

3、   日志管理可以对用户的访问进行各种形式的统计。

 日志统计规则:自定义日志统计规则,可添加新的规则。

        日志信息:显示CMS的活动日志,可以生成报表。

4、   文件库管理系统管理员可以通过图片管理对图片进行管理和水印的设置。

 图片库管理:用户可以自定义文件夹上传图片,可以设置文件夹的权限。

        文件库管理:用户可以自定义建立各站点需要的放图片的文件夹。

5、   角色管理提供灵活安全控制框架,支持用户组,角色,用户定义,支持授权管理,支持许可管理。

对系统默认的角色描述:

Administrator:系统管理员角色,可管理系统管理、栏目管理、设计中心、内容管理、辅助管理。

Manager:管理员角色,可管理系统管理(不包含角色管理、站点管理、群集配置)、内容管理、辅助管理。

Designer:设计管理员角色,可管理栏目管理、设计中心、内容管理、辅助管理。

进入角色管理界面,

(1)       增加一个角色,点击“增加”按钮键入角色名称,然后保存即可。

(2)       成员管理,是对某个角色内的成员进行管理增加一个成员 ,由于系统与PORTAL集成,所以用户使用的是PORTAL中的用户,对用户或用户组进行搜索然后确认将哪个用户添加入某角色

%提醒:如果用户信息管理采用LDAP方式的话则没有“用户管理”和“群组管理”模块。

6、   用户管理系统用户管理。可添加用户名称、中文名称和用户密码(620个字节)。

对于已存在的用户还可以进行密码修改和将用户加入到某个角色或群组中。

7、   群组管理系统群组管理。添加群组及子群组。

对于已存在的群组可以添加属于该群组的用户。

8、   流程管理用于创建灵活的工作流程,下面简述建立一个工作流程的过程:

第一步,点击页面右上角的【添加】按钮,如下:

进入工作流程添加页面,填写如下:

审核代码:英文字符串;

审核名称:任意字符串;

处理类:文档流程处理。

然后【保存】该流程。

第二步,添加流程条目。

返回工作流首页,选择刚才建立的工作流程,点击【编辑】,进入工作流程流程条目管理页,添加流程条目,填写条目名称,条目序号(必须唯一,代表流程条目执行的先后顺序),是否有决策权(如果选择“否”则流程继续向下走,如果选择“是”则流程在该处结束),如下:

然后选择该流程条目的参与者,如下:

然后保存即可,这样就形成了一个流程条目,您还可以继续添加其他的流程条目,形成一个工作流程,此处定制的工作流程可用于随后的网站内容审核。

%提醒:建立完毕工作流程后,请启用该流程,否则无法在内容审核过程中调用该流程。

9、   站点管理是内容管理过程中的第一步,即建立站点,建立站点下的语言版本。

进入站点管理页

点击【添加】,进入站点添加页,如下:

保存,然后返回站点管理首页,【启用】刚才添加的站点,然后选择【编辑】,进入站点语言管理页,选择【添加】语言,选择站点语言,如下:

同时点击页面权限标签,为站点语言指定相应的管理权限,如下:

保存该站点语言。

%提醒:建立完毕站点语言后,请启用该站点语言,否则无法在站点设计中管理该站点语言下的栏目信息。

10、              群集配置 配置多台服务器的名称与地址。如图:

11、              URL映射 是给每个栏目设定一个简易的url,便于查看。如图:

添加URL路径可为任意英文字母,选择栏目路径,点击【保存】。

12、              字典管理管理系统中某些项的值,一般无需修改。

13、              上传格式管理 用户可以自定义内容管理中上传附件的格式和每种格式附件的大小。

14、              连接管理 设置系统数据库连接的参数,详见《系统安装配置手册》。

15、              配置管理 设置系统配置文件参数,详见《系统安装配置手册》。

16、              导入管理 数据导入。

17、              导出管理 数据导出。

18、              打分设置管理 设置打分的属性,可供在内容发布时候选择分值,其中类型代码为分值,必须为数字或字母。如图:

19、              缓存关系对应升级补丁 对于5.5之前的版本进行缓存模块的升级。

20、              皮肤管理 修改系统预置皮肤的属性。

也可以自定义添加皮肤。

3.2.7权限控制

本系统涉及权限的模块有两个:一是站点管理;二是栏目管理。

3.2.7.1站点管理权限

站点管理权限的设定在系统管理——站点管理下。

站点管理权限,主要是指对站点的权限设定,只对站点起作用,不控制站点下的栏目的权限。

其中添加站点时的站点权限是指访问整站的权限设定。

而站点语言的权限是设定该语言下的站点访问权限。

(其他站点管理请参考3.2.6.2的站点管理

3.2.7.2栏目管理权限

栏目管理权限的设定在栏目管理——编辑栏目选择栏目权限或者内容默认权限。

栏目权限,分配当前栏目的管理员以及管理员的权限级别,有查看、修改、删除三种权限设定。(详情请参考3.2.4.2中的栏目权限

内容默认权限,设定该栏目下内容默认的查看、编辑、删除权限。(详情请参考3.2.4.2中的内容默认权限

3.3附属功能

3.3.1帮助

登录CMS5.5内容管理系统后右侧主操作界面如下:

点击“简单介绍”进入CMS5.5的功能介绍页面,点击“使用指南”进入CMS5.5的帮助中心,帮助中心中包含新功能介绍、使用手册(含信息员使用手册和管理员使用手册)、学习视频(含信息员学习和快速入门建站)三部分。

3.3.2换肤

点击系统右上角换肤按钮,选择当前用户所需皮肤,点击保存

3.3.3打印

点击系统右上角打印按钮,进行当前页面的打印操作。

3.3.4刷新

点击系统左上角按钮,可以刷新左侧栏目树。

3.3.5最大化

点击系统按钮,实现窗口最大化。

3.3.6站点切换

点击系统右上角所有站点的下拉列表,可以选择切换到某一站点来进行这一站点的管理操作。

3.3.7修改密码

点击系统右上角按钮,可以修改当前管理员的密码。

3.3.8退出

点击系统右上角按钮,退出内容管理系统到登录界面。

 

第四章建站流程

1、    在“系统管理”下点击添加站点。

2、    添加站点语言(以上两步详情参考3.2.6.2)。

3、    在“栏目管理”添加栏目。(如果需要读取动态信息则执行45。如果只有静态信息则跨过456开始执行)

4、    在“设计中心”添加组件模板(详情参考3.2.5.2)。

5、    在“设计中心”添加组件(详情参考3.2.5.2)。

6、    在“设计中心”添加栏目模板(详情参考3.2.5.2)。

7、    在“设计中心”添加内容模板(详情参考3.2.5.2)。

8、    在“栏目管理”增加模板与栏目的关系(详情参考3.2.4.2)。

9、    在“内容管理”发布内容(详情参考3.2.2.2)。

第五章标签使用方法

5.1内容组件及内容展示模板

注:在模板标签中如 $content.contentId 如果当内容为空时你不想让其显示

那么可以用 $!content.contentId $!{content.contentId}  如果 $content.contentId 那么

如果该数据项为空时 则会显示源代码

5.1.1固定数据项调用方法: 

l  $content.contentId      调用内容ID

l  $content.contentTitle   调用内容标题

l  $content.contentAuthor  调用所有者名称

l  $content.contentWriteDate  调用内容日期

l  $content.contentSource  调用内容来源

l  $content.contentKeywords  调用内容关键字

l  $content.contentSummary  调用内容备注

l  $!init.getSystemVersion()  调用cms系统的版本号

l  <iframe src="/icms/visitStatistics.do?method=user.event.getVistStatisticsForConentId&contentId=$content.contentId" frameborder="0" scrolling="no" width="10" height="10"></iframe> 调用阅读次数

数据模板中定义数据项调用方法:

$content.propertys.XXX.value  其中XXX代表数据模板中每个构件的属性名称。

5.2列表组件&分类聚合组件&聚合组件&栏目展示模板

5.2.1固定数据项调用方法

l  $item.contentId   调用内容ID

l  $item.contentTitle   调用内容标题

l  $item.contentAuthor   调用所有者名称

l  $item.contentWriteDate   调用内容日期

l  $item.contentSource  调用信息来源

l  $item.contentKeywords  调用内容关键字

l  $item.contentSummary  调用内容备注

5.2.2列表组件中定义数据项调用方法:

   $item.propertys.XXX.value  其中XXX代表数据模板中每个构件的属性名称。 

打开内容详细信息显示页

  <a href="$wcm.createURL($item.contentId,$item.staticUrl)" target="_blank">$item.contentTitle </a>

5.2.3在栏目展示模板中调用栏目公用资源数据项的方法:

$channel.propertys.XXX.value  其中XXX代表数据模板中每个构件的属性名称。

5.2.4分页

l  #pager()

5.2.5时间格式化

$!{date.format('yyyy-MM-dd',$timer)} //
$!{date.format('HH',$timer)}  
小时
$!{date.format('mm',$timer)}  

取得当天时间:$date.get('yyyy-MM-dd')

对于当天的记录特殊处理,如下

#if($date.get('yyyy-MM-dd')==$!{date.format('yyyy-MM-dd',$item.contentWriteDate)})

  加粗

#else

  正常

#end

5.2.6截取字符串

l  $wcm. reserveString(String source, int length, String repair)

参数说明:source 源字符串,length是保留多少位 repair是补位

$wcm. reserveString(“0123456789”,6,”…”)

返回为 0123456…

5.2.7判断是否为最新消息

l  #if($!{wcmUtilTool.whetherNewDate($!{date.format('yyyy-MM-dd',$item.creationDate)},day)})

<img src="" border=0/>

#end

判断内容是否为最新内容,如是则显示指定的图片或其他信息,其中day参数为判断内容在多少天内为最新内容,如为0则为系统默认天数(3天),如需自定义则填入相应的天数即可。

5.3留言板组件

   一个典型的例子代码:

搜索窗口---

 

<fieldset><legend>查询条件--留言查询</legend>

                            <table>

                                    

                                           <tr>

                                           <td nowrap>

                                           开始日期:<input name="startDate" style="width:80px">

                                             <img align="absmiddle" src="$request.getContextPath()/resource/js/cal.gif" onClick="calendar.select(forms_getForm(this)['startDate'],'yyyy-MM-dd',event); return false;" style="cursor:hand;"/>

                                           </td>

                                          <td nowrap>

                                            结束日期:<input name="endDate" style="width:80px">

                                                                                   <img align="absmiddle" src="$request.getContextPath()/resource/js/cal.gif" onClick="calendar.select(forms_getForm(this)['endDate'],'yyyy-MM-dd',event); return false;" style="cursor:hand;"/></td>

                                           

                                           </td>

                                           <td nowrap>

                                             按留言内容查询:<input type="text" name="keywords" value="$!{keywords}" size="15">

                                            </td>

                                          <td nowrap>

                                           $!{searchButton}                                          </td>

                                         

                                      <td nowrap>

                                          $!{questionButton}

                                           </td>                                       

                                           

                                   </tr>

                             </table>

              </fieldset>

 

---------------------------

页眉---

 

<fieldset>

---------------------------

内容---

 

<legend><strong>留言信息</strong></legend>

       <table width="100%" border="0" cellspacing="1" cellpadding="3" id="InfoTable"  bgcolor="#cccccc" class="list">

              <tr align="center">                                                

                     <th nowrap>

                                                        留言人

                                                 </th>

                                           

                                                 <th nowrap>

                                                        留言内容

                                                 </th>

                                            <th nowrap>

                                                        留言时间

                                            </th>

                                           

                                           

                                          </tr>

                                          #set($te = 1)

                                          #foreach($messageBoard  in  $result.result)

                                                 <tr class="first"   onMouseover="hilite(this)" onMouseout="restore(this)" onMousedown="mousedownRow(this)" onClick="clickRow(this)" onDblClick="DblClickRow(this)">

                                                                     

                                                                      <td>

                                                                             $!{messageBoard.nickName} 提问

                                                                      </td>

                                                                

                                                                      <td>

                                                                             $!{messageBoard.messageContent}

                                                                      </td>

                                                                      <td>

                                                                             $!{messageBoard.messageTimer}

                                                                      </td>

                                                                     

                                                                

                                                                       

                                                                     

                                                 </tr>

                                                

                                                

                                                 #foreach($messageBoardReply in $messageBoard.messageBoardReplySet)

                                                 <tr class="first"   onMouseover="hilite(this)" onMouseout="restore(this)" onMousedown="mousedownRow(this)" onClick="clickRow(this)" onDblClick="DblClickRow(this)">

                                                

                                                                      <td>

                                                                      <font color="#006699">----$!{messageBoardReply.replyUser}_ 答复</font>

                                                                      </td>

                                                                

                                                                      <td>

                                                                             <font color="#006699">$!{messageBoardReply.replyContent}</font>

                                                                      </td>

                                                                      <td>

                                                                      <font color="#006699">   $!{messageBoardReply.replyTimer}</font>

                                                                      </td>

                                                                                                        

                                                 </tr>

                                                  #end

                                          #end

                                   </table>

                             

---------------------------

页脚---

              </fieldset>

 

#pager()             

5.4调查组件

 

 一个典型的例子:

<table border="0" cellpadding="0" cellspacing="0" width="100%">

<tr>

<td>

 

 

<table cellpadding="0" cellspacing="0" width="100%">

<tr>

<td>

#foreach($questionNaire in $result )

<table cellpadding="0" cellspacing="0" width="100%"> 

<tr>

  <td>$questionNaire.questionnaireName</td>

</tr>

 <tr>

<td>

<table cellpadding="0" cellspacing="0" width="100%">

     #foreach($question in $questionNaire.questionSet)

<tr>

    <td>$velocityCount: $question.questionName</td>

</tr>

<tr>

<td>

<table cellpadding="0" cellspacing="0" width="100%">

          #foreach($qustionElement in $question.questionElementSet)    

<tr>

    <td width="30">$qustionElement.elementStyleview</td>

      <td>$qustionElement.elementSubjecttitle</td>

</tr>

         #end

</table>

</td>

</tr>

    #end

</table>

</td>

</tr>

</table>

#end 

</td>

</tr>

</table>

 

 

 

$commit

$statistics

</td>

</tr>

</table>

5.5广告组件

5.5.1广告组件标签说明

1${adElement.width}:宽度

2${adElement.height}:高度

3${adElement.adUrl}:广告图片URL

4${adElement.adLink}:广告链接

5.5.2横幅广告代码

<script language='javascript'>

document.write("<a href='${adElement.adLink}' target=_blank><img src='${adElement.adUrl}' width='${adElement.width}' height='${adElement.height}' border='0'></a>")

</script>

5.5.3弹出广告代码

<script language='javascript'>

window.open('${adElement.adUrl}','','height=${adElement.height},width=${adElement.width},top=0,left=0,toolbar=no,menubar=no,scrollbars=no, resizable=no,location=no, status=no')

</script>

5.5.4漂浮广告代码

<DIV id=img1 style='Z-INDEX: 100; LEFT: 2px; WIDTH: 59px; POSITION: absolute; TOP: 43px; HEIGHT: 61px; visibility: visible;'><a href='${adElement.adLink}' target='_blank'><img src='${adElement.adUrl}' width='${adElement.width}' height='${adElement.height}' border='0'></a></DIV>

<script language='javascript'>

 var xPos = 300;

 var yPos = 200;

 var step = 1;

 var delay = 30;

 var height = 0;

 var Hoffset = 0;

 var Woffset = 0;

 var yon = 0;

 var xon = 0;

 var pause = true;

 var interval;

 img1.style.top = yPos;

 function changePos(){

 width = document.body.clientWidth;

 height = document.body.clientHeight;

 Hoffset = img1.offsetHeight;

 Woffset = img1.offsetWidth;

 img1.style.left = xPos + document.body.scrollLeft;

 img1.style.top = yPos + document.body.scrollTop;

 if (yon){yPos = yPos + step;}

 else{yPos = yPos - step;}

 if (yPos < 0){yon = 1;yPos = 0;}

 if (yPos >= (height - Hoffset)){yon = 0;yPos = (height - Hoffset);}

 if (xon){xPos = xPos + step;}

 else {xPos = xPos - step;}

 if (xPos < 0){xon = 1;xPos = 0;}

 if (xPos >= (width - Woffset)){xon = 0;xPos = (width - Woffset);}

 }

 function start(){img1.visibility = 'visible';interval = setInterval('changePos()', delay);}

 function pause_resume(){if(pause){clearInterval(interval);pause = false;}else{interval = setInterval('changePos()',delay);pause = true;}}

 start();

</script>

5.5.5悬挂广告代码参考:

<script language='javascript'>

 var delta = 0.8;

 var collection;

 var closeB = false;

 function floaters(){

 this.items = [];

 this.addItem = function(id,x,y,content){

 document.write('<DIV id='+id+' style="Z-INDEX: 10; POSITION: absolute;  width:80px; height:60px;left:'+(typeof(x)=='string'?eval(x):x)+';top:'+(typeof(y)=='string'?eval(y):y)+'">'+content+'</DIV>');

 var newItem = {};

 newItem.object = document.getElementById(id);

 newItem.x = x;

 newItem.y = y;

 this.items[this.items.length] = newItem; }

 this.play = function(){

 collection = this.items;

 setInterval('play()',30); }

  }

 function play(){

 if(screen.width<=800 || closeB){

 for(var i=0;i<collection.length;i++){

 collection[i].object.style.display = 'none';

 }

 return;

 }

 for(var i=0;i<collection.length;i++){

 var followObj = collection[i].object;

 var followObj_x = (typeof(collection[i].x)=='string'?eval(collection[i].x):collection[i].x);

 var followObj_y = (typeof(collection[i].y)=='string'?eval(collection[i].y):collection[i].y);

 if(followObj.offsetLeft!=(document.body.scrollLeft+followObj_x)){

 var dx = (document.body.scrollLeft+followObj_x-followObj.offsetLeft)*delta;

 dx = (dx>0?1:-1)*Math.ceil(Math.abs(dx));

 followObj.style.left=followObj.offsetLeft+dx;

 }

 if(followObj.offsetTop!=(document.body.scrollTop+followObj_y)){

 var dy = (document.body.scrollTop+followObj_y-followObj.offsetTop)*delta;

 dy = (dy>0?1:-1)*Math.ceil(Math.abs(dy));

 followObj.style.top=followObj.offsetTop+dy;

 }

 followObj.style.display = '';

 }

 }

 function closeBanner(){

 closeB=true;

 return;

 }

 var theFloaters = new floaters();

 theFloaters.addItem('followDiv1','document.body.clientWidth-100',80,'<a href="${adElement.adLink}" target=_blank><img src="${adElement.adUrl}" width="${adElement.width}" height="${adElement.height}" border=0></a><br><br><img src="$request.getContextPath()/resource/images/tools/close.gif" onClick="closeBanner();">');

 theFloaters.addItem('followDiv2',6,80,'<a href="${adElement.adLink}" target=_blank><img src="${adElement.adUrl}" width="${adElement.width}" height="${adElement.height}" border=0 ></a><br><br><img src="$request.getContextPath()/resource/images/tools/close.gif" onClick="closeBanner();">');

 theFloaters.play();

</script>

5.6搜索组件

5.6.1搜索组件参数说明

 

“搜索条件窗口”的参数:

1.              搜索范围:可选择“站点群”,“站点(全局)”,“站点(指定栏目)”,“站点(指定栏目及栏目以下)”。选择“站点群”指定的范围是CMS里的所有站;选择“站点(全局)”指定的范围是当前站点下的所有栏目;选择“站点(指定栏目)”指定的范围为当前站点下的指定栏目,不包括它的子栏目;“站点(指定栏目及栏目以下)”指定的范围为站点的当前栏目和该栏目下的所有子栏目。

2.              搜索方式:可选择“AND”,“OR”。搜索方式是针对关键字的,用户在查询的时候可以在关键字的输入域中通过空格来组合关键字。如“北京 中信”,选择“AND”时,搜索引擎把关键字组合成 “北京 AND 中信”,就是说被搜索的内容必须同时包含“北京”和“中信”两个词时才会被搜索到;选择“OR 时,搜索引擎把关键字组合成 “北京 OR 中信”,被搜索的内容只要包含“北京”和“中信”两个词中的全部或任何一个词都会被搜索到。

3.              搜索栏目:当用户“搜索范围”选择“站点群”和“站点(全局)”时,“搜索栏目”不显示,也不需要设定。当用户“搜索范围”选择“站点(指定栏目)”和“站点(指定栏目及栏目以下)”时,用户可以指定栏目,配合“搜索范围”来确定要搜索的具体范围。

4.              搜索窗口:通过一个富文本编辑器,用户可以很方便的设计搜索入口的样式。搜索窗口不必添加有关<form>的一些HTML属性,有系统生成。用户只需要设计普通的HTML就可以,但是必须包含必要的输入域和输入域的IDNAME符合系统的默认命名。这些必须的输入域是: <input title="搜索" maxlength="70" size="41" name="queryString" value="$!{config.getKeyword()}"/> <input type="submit" name="btnG" value="搜索" /> <input type="hidden" name="page" value="1" />

 

“搜索条件窗口”的参数:

1.    数量:搜索结果在前台页面每页显示的条数。

2.    是否分页:搜索结果是否需要分页,如果“是”,那么在结果页面中显示分页的导航条,每个分页显示的条数为“数量”中指定的条数。如果“否”,那么在结果页面中不显示分页的导航条,显示的条数为“数量”中指定的条数。

3.    页眉:搜索结果的页眉HTML,可在里面引用“搜索结果标签”。

4.    内容:搜索结果的内容HTML,可在里面引用“搜索结果标签”。

5.    页脚:搜索结果的页脚HTML,可在里面引用“搜索结果标签”。

可选择“页眉”或“内容”或“页脚”中,任选一个地方插入以下代码:

#if(${config.isPage}=="0")

       <center>

              <br clear=all>                    

              <div id=navbar class=n>

                     <table border=0 cellpadding=0 cellspacing=0 width=300 align=center>

                            <tr>

 

                     <script language="javascript">

                            creatPageBar(${hits.getPage()},${hits.getPageCount()});

                     </script>

      

                            </tr>

                     </table>

              </div>

       </center>

#end      

5.6.2搜索结果标签

1$!{hits.getResultSize()}:符合搜索条件的结果总数。

2$!{config.getKeyword()}:查询的关键字。

3$!{hits.getStartShow()}:结果的开始条数。

4$!{hits.getEndShow()}:结果的结束条数。

5$!{hits.getQueryTime()}:搜索用时(秒)。

6${hits.getResultList()} :搜索的结果列表对象。

7#if(${hits}) …… #end :判断搜索是否有结果。

 

8.显示搜索结果显示的时候使用如下方式:

#foreach($result in ${hits.getResultList()} )

       HTML元素

$!{result.getContentMain()}

       ………………

HTML元素

#end

可以提供显示的结果标签是:

$!{result.getContentTitle()}:标题。

$!wcm.encodeContentToURL('', '', '', '', $result.getContentId(), "show")URL路径。

$!{result.getContentMain()}:简要内容。

$!{result.getPublishDate().toLocaleString()}:发布时间。

$!{result.getFolderPath ()}:内容所在的栏目路径。

$!{result.getFolderPathcode ()}:内容所在的栏目路径代码。

$!{result.getKeyWords ()}:内容设定的关键字。

5.6.3搜索组件代码

搜索窗口:

<table cellspacing="0" cellpadding="0" width="100%" border="0">

    <tbody>

        <tr>

            <td width="100%"><input onmouseover="this.focus()" title="搜索" style="WIDTH: 157px; HEIGHT: 18px" onfocus="this.select()" maxlength="2048" size="14" name="queryString" value="$!{config.getKeyword()}" /><input type="image" height="19" alt="" width="17" src="/iwcm/UserFiles/Image/ss.png" name="btnG" value="搜索" /><input type="hidden" name="page" value="1" /></td>

        </tr>

    </tbody>

</table>             

页眉:

              <style><!--

                     body,td,div,.p,a{font-family:arial,Simsun}

                     div,div .j{line-height:120%}

                     div,td{color:#000}

                     .f{color:#6f6f6f}

                     .flc,.fl:link{color:#77c}

                     a:link,.w,a.w:link,.w a:link,.q:visited,.q:link,.q:active,.q{color:#00c}

                     a:visited,.fl:visited{color:#551a8b}

                     a:active,.fl:active{color:red}

                     .t{background:#e5ecf9;color:#000}

                     .bb{border-bottom:1px solid #36c}

                     .bt{border-top:1px solid #36c}

                     .j{width:34em}

                     .h{color:#36c}

                     .i,.i:link{color:#a90a08}

                     .a,.a:link{color:green}

                     .z{display:none}

                     div.n{margin-top:1ex}

                     .n a{font-size:10pt;color:#000}

                     .n .i{font-size:10pt;font-weight:bold}

                     .b a{font-size:12pt;color:#00c;font-weight:bold}

                     .ch{cursor:pointer;cursor:hand}

                     .tas{padding:3px}

                     .taf{padding:3px 3px 6px 3px}

                     .tam{padding:6px 3px}

                     .tal{padding:6px 3px 3px}

                     .e{margin-top:.75em;margin-bottom:.75em}

                     .g{margin-top:1em;margin-bottom:1em}

                     .sm{display:block;margin-top:0;margin-bottom:0;margin-left:40px}

                     #navbar div,#logo span{background:url(/images/nav_logo.png) no-repeat;overflow:hidden;height:26px}

                     #navbar .nr{background-position:-60px 0;width:16px}

                     #navbar #np{width:44px}

                     #navbar #nf{background-position:-26px 0;width:18px}

                     #navbar #nc{background-position:-44px 0;width:16px}

                     #navbar #nn{background-position:-76px 0;width:66px;margin-right:34px}

                     #navbar #nl{background-position:-76px 0;width:46px}

                     #logo{display:block;width:150px;height:52px;position:relative;overflow:hidden;margin:15px 0 12px}

                     #logo span{background-position:0 -26px;position:absolute;top:0;left:0;width:100%;height:100%}

--></style>

 

内容:

 

<!--统计信息-->             

       <table border=0 cellpadding=0 cellspacing=0 width=100% class="t bt">

              <tr>

                     <td nowrap><font size=+1><b>结果</b></font></td>

                     <td align=right nowrap>

                                   #if(${hits})

                            <font size=-1>约有<b>${hits.getResultSize()}</b>项符合<b>$!{config.getKeyword()}</b>的查询结果,以下是第<b>${hits.getStartShow()}</b>-<b>${hits.getEndShow()}</b>项。  (搜索用时<b>${hits.getQueryTime()}</b> 秒)</font>

                            #end

                     </td>

              </tr>

       </table> 

       <!--查询结果-->      

 

       #foreach($result in ${hits.getResultList()} )

              <div>

                     <p class=g>          

                            <a class="l" href="$!wcm.encodeContentToURL('', '', '', '', $result.getContentId(), "show")" target=_blank onmousedown="return clk(0,'','','res','1','')">

                                   <font style="font-size:11pt;line-height:14pt;">${result.getContentTitle()}</font></a>

                                   <table cellpadding=0 cellspacing=0 border=0>

                                          <tr>

                                                 <td class=j>

                                                        <font size=-1>

                                                               ${result.getContentMain()}

                                                               <b>...</b>

                                                               <br>

                                                               <span class=a>发布时间 - ${result.getWriteDate()}</span>

                                                              

                                                        </font>          

                                                 </td>

                                          </tr>

                                   </table>

                     </p>

              </div>

              <p class=e>

       #end

 

页脚:

 

#if(${config.isPage}=="0")

       <center>

              <br clear=all>                    

              <div id=navbar class=n>

                     <table border=0 cellpadding=0 cellspacing=0 width=300 align=center>

                            <tr>

 

                     <script language="javascript">

                            creatPageBar(${hits.getPage()},${hits.getPageCount()});

                     </script>

      

                            </tr>

                     </table>

              </div>

       </center>

#end      

 

5.7相关内容组件

相关内容组件标签:

 

$!{pertinent.getContentTitle()}:标题。

$!wcm.encodeContentToURL('', '', '', '', $pertinent.getContentId(), "show")URL路径。

$!{pertinent.getPublishDate().toLocaleString()}:发布时间。

$!{pertinent.getFolderPath()}:内容所在的栏目路径。

$!{pertinent.getFolderPathcode()}:内容所在的栏目路径代码。

$!{pertinent.getKeyWords()}:内容设定的关键字

打开内容详细信息显示页

<a href="$!wcm.encodeContentToURL('', '', '', '', $pertinent.getContentId(), "show")" target="_blank">$!{pertinent.getContentTitle()} </a>

5.8分页组件

 

类型一:

列表组件用分页组件例子:

 

    $result.page.pages 页,$result.page.rows条记录,当前$result.page.startRow-$result.page.endRow

    当前页:$result.page.absolutePage 

    #if($result.page.absolutePage != $result.page.getMinPage())

              $wcmAttribute.setAbsolutePage($result.page.getPrevPage().toString())

              #if($wcmAttribute.isPortal())

                     <a href="$wcm.createPageURL()">

                            <img src="$link.setRelative('/resource/images/pageup.gif')"

                                   border='0' alt="Previous Page"

                                   align="absmiddle" style="CURSOR: hand;"/>

                     </a>

              #else

                     <a href="$wcmAttribute.toURL()">

                            <img src="$link.setRelative('/resource/images/pageup.gif')"

                                   border='0' alt="Previous Page"

                                   align="absmiddle" style="CURSOR: hand;"/>

                     </a>

              #end

       #else

              <img src="$link.setRelative('/resource/images/pageup.gif')"

                     alt="Previous Page" align="absmiddle"

                     style="CURSOR: hand;filter:Gray"/>

       #end

      

    #if($result.page.absolutePage != $result.page.getMaxPage())

              $wcmAttribute.setAbsolutePage($result.page.getNextPage().toString())

              #if($wcmAttribute.isPortal())

                     <a href="$wcm.createPageURL()">

                            <img src="$link.setRelative('/resource/images/pagedown.gif')"

                                   border='0' alt="Previous Page"

                                   align="absmiddle" style="CURSOR: hand;"/>

                     </a>

              #else

                     <a href="$wcmAttribute.toURL()">

                            <img src="$link.setRelative('/resource/images/pagedown.gif')"

                                    border='0' alt="Previous Page"

                                 align="absmiddle" style="CURSOR: hand;"/>

                     </a>

              #end

       #else

              <img src="$link.setRelative('/resource/images/pagedown.gif')"

                     alt="Next Page" align="absmiddle"

                     style="CURSOR: hand;filter:Gray"/>

       #end

      

       $wcmAttribute.setAbsolutePage($result.page.absolutePage.toString())

类型二
<style type="text/css">

#white11:link,#white11 a:visited{

       font-size:12px;

       text-decoration:none;

       color:#EBEBEB;

       }

#white11 {

       font-size:12px;

       text-decoration:none;

       color:#EBEBEB;

       }

#white11:hover{

       font-size:12px;

       text-decoration:underline;

       color:#EBEBEB;

       }

</style>

<table width="180" height="19" border="0" align="center" cellpadding="0" cellspacing="0">

                <tr>

                  <td height="20" align="center" background="/iwcm/UserFiles/ghimg//50114721809355908982009-04-28.gif">#set ($page = $result.page.absolutePage)

  #set ($total = $result.page.maxPage)

  #set ($start = 1)

  #set ($i=0)

 

  #if($page >= 2)

  #set ($bb = $page - 1)

  $wcmAttribute.setAbsolutePage($bb.toString()) <a href="$wcmAttribute.toURL()" id="white11">上一页</a>

  #else

  <span id="white11">上一页</span>

  #end

 

  #foreach($i in $wcm.getArrayAll($page, $total))

  #if($i == $page)

  <span id="white11"><b>[$i]</b></span>

  #else

  $wcmAttribute.setAbsolutePage($i.toString()) <a href="$wcmAttribute.toURL()" id="white11">$i</a> #end

  #end

 

  #if($page < $total)

  #set ($aa = $page + 1)

  $wcmAttribute.setAbsolutePage($aa.toString()) <a href="$wcmAttribute.toURL()" id="white11">下一页</a>

  #else

  <span id="white11">下一页</span>

  #end</td>

                </tr>

              </table>

5.9页面分页显示组件

<style type="text/css">

                                .turnPage a:link {

                                   color: #000000;

                                   text-decoration: underline;

                                }

                                /*链接的样式 */

                                .turnPage a:visited {

                                   color: #000000;

                                   text-decoration: underline;

                                }

                                /*鼠标经过的样式 */

                                .turnPage a:hover {

                                   color: #000000;

                                   text-decoration: underline;

                                }

                                /*鼠标点下的样式 */

                                .turnPage a:active {

                                   color: #000000;

                                   text-decoration: none;

                                }

                            </style>

                            <script type='text/javascript'>

                                var currentPage=${currentPage};

                                   var pages=${pages};

                                   //下一页

                                   function nextPage(){

                                     document.location.href="${previewUrl}?currentPage="+(currentPage+1);

                                   }

                                   //当前页

                                   function doCurrentPage(page){

                                          document.location.href="${previewUrl}?currentPage="+page;

                                   }

                                   //上一页

                                   function previousPage(){

                                      document.location.href="${previewUrl}?currentPage="+(currentPage-1);

                                   }

                                   document.write("<div align='right' class='turnPage'>");

                                   if(currentPage!=1){

                                   //上一页

                                          document.write("[<a href='javascript:void(0)' onclick='previousPage()'>${strutsmessage.get("designCenter.systemTemplate.prompt19")}</a>]    ");}

                                          if(pages>1){

                                             for(var i=1;i<=pages;i++){

                                                        if(i==${currentPage}){

                                                               document.write(i+"    ");

                                                        }else{

                                                            document.write("<a href='javascript:void(0)' onclick='doCurrentPage("+i+")'>"+i+"</a>   ");

                                                        }

                                             }

                                          }

                           

                                   if(currentPage!=pages){

                                          //下一页

                                          document.write("[<a href='javascript:void(0)' onclick='nextPage()'>${strutsmessage.get("designCenter.systemTemplate.prompt20")}</a>]");

                                   }

                                   document.write("</div>");

                            </script>

5.10评论代码

#if($content.commentTypeId==1)

       #if($content.commentType=='0')

              <form action="$request.getContextPath()/content/contentComment.do" name="contentCommentForm" method="post">

              <input name="method" value="addContentComment" type="hidden">

              <input name="ContentId" value="$!{content.contentId}" type="hidden">

              <input name="requestURI" type="hidden" class="text" value="$wcmRequestURI">      

              <input type="submit" value="提交">

              <input name="ContentComment">

              </form>

       #elseif($content.commentType=='1')

              #if($wcm.getPrincipal()=='guest')

                     <FORM METHOD=POST ACTION="$link.setRelative('/login/proxy')" name="logon">             

                     用户名:<INPUT TYPE="text" NAME="com.coolwen.login.username" value="" class="text"/>

                     密码:<input name="com.coolwen.login.password" type="password" class="text" value="">         

                     <input name="com.coolwen.login.contentid" type="hidden" class="text" value="$content.contentId">

                     <input name="com.coolwen.login.requestURI" type="hidden" class="text" value="$wcmRequestURI">             

                     <input name="com.coolwen.login.destination" type="hidden" class="text" value="$request.getContextPath()/contentcommenterror.vm">

                     <input name="imageField" style="margin-left:8px;" type="image" src="$link.setRelative('/resource/login/login_20.gif')" width="70" height="19" border="0">

                     </FORM>

              #else

              当前用户为:$wcm.getPrincipal()

              <form action="$request.getContextPath()/content/contentComment.do" name="contentCommentForm" method="post">

              <input name="method" value="addContentComment" type="hidden">

              <input name="ContentId" value="$!{content.contentId}" type="hidden">

              <input name="requestURI" type="hidden" class="text" value="$wcmRequestURI">      

              <input type="submit" value="提交">

              <input name="ContentComment">

              </form>

              #end

       #else

       #end

#end

 

#if($content.commentTypeId==1)

 

<table>

#set($contentComments = $wcm.getContentComment($wcmAttribute.contentId))

#foreach($ContentComment in $contentComments)

<tr><td>

$velocityCount楼:$!{ContentComment.contentComment}$!{ContentComment.creater}

</td></tr>

#end

</table>

 

#end

5.11打分代码

#if($content.scoreTypeId!='0')

 

       <table>

       #set($arr=$wcm.getAvegStat($wcmAttribute.contentId))

       #foreach($ArrayList in $arr)

       <tr><td>

       选择$!{ArrayList.get(2).toString()}的人有$!{ArrayList.get(3).toString()}

       </td></tr>

       #end

       </table>

 

 

       <table>

       #set($arr=$wcm.getAvegStat($wcmAttribute.contentId))

       #foreach($ArrayList in $arr)

       <tr><td>

       $!{ArrayList.get(2).toString()}<img height="14" alt="$!{ArrayList.get(2).toString()}" width="$wcm.getBarWidthByKey($arr,$!{ArrayList.get(5).toString()},200)" align="middle" src="$request.getContextPath()/images/bar/brown.gif" />$!{ArrayList.get(3).toString()}

       </td></tr>

       #end

       </table>

 

       <form action="$request.getContextPath()/content/contentScore.do" name="contentScoreForm" method="post">

       <table>

       #set ($tmp=$!{content.scoreTypeId})

       #set($ContentScoreTypes = $wcm.getContentScoreTypeByTypeId($tmp))

       #foreach($ContentScoreType in $ContentScoreTypes)

       <tr><td>

       $!{ContentScoreType.scoreDesc}<input type="radio" name="ContentScoreType_id" value="$!{ContentScoreType.id}">

       </td></tr>

       #end

       </table>

       <input name="method" value="addContentScore" type="hidden">

       <input name="ContentId" value="$!{content.contentId}" type="hidden">

       <input name="requestURI" type="hidden" class="text" value="$wcmRequestURI">      

       <input name="ScoreTypeId" value="$tmp" type="hidden">

       <input type="submit" value="提交">

       </form>

 

#end

5.12访问次数

放到内容展示模板里

<iframe src="/iwcm/visitStatistics.do?method=user.event.getVistStatisticsForConentId&contentId=$content.contentId" frameborder="0" scrolling="no" width="20%" height="25%"></iframe>