Liferay Portal 的 CMS 功能是通过 Journal Portlet 实现的,在介绍怎样使用 Journal Portlet 之前,有必要理解 structures 、 templates 和 articles 的概念,它们是 Journal portlet 功能的基础。
l Structures :定于了 content 的类型和数量, content 的类型包括 text 、 text area 、 images 、 selection lists 等
l Templates :确定 content 怎样排列或摆放
l Articles :确定每个 content 包含的实际的 text 和 images
我们以下图为例定义一个 content ,分为三个步骤:
第一步、创建 Structure ,包含一下元素:一个 text 元素名为“ headline ”(对应图片 1 区域)、三个 text area 元素为名称分别为“ body-text ”(对应 4 区域)“ caption-1 ”(对应 2 区域)“ caption-2 ”(对应 6 区域)、两个 image 元素名称分别为“ image-1 ”(对应 3 区域)和“ image-2 ”(对应 5 区域)
添加完这些元素后的界面如下:
点击
Launch Editor
按钮,可以看到
XML
定义,也可以在此增删或修改元素及类型,内容如下:
< dynamic - element name = ' headline ' type = ' text ' ><!----> dynamic - element >
< dynamic - element name = ' body-text ' type = ' text_area ' ><!----> dynamic - element >
< dynamic - element name = ' caption-1 ' type = ' text_area ' ><!----> dynamic - element >
< dynamic - element name = ' caption-2 ' type = ' text_area ' ><!----> dynamic - element >
< dynamic - element name = ' image-1 ' type = ' image ' ><!----> dynamic - element >
< dynamic - element name = ' image-2 ' type = ' image ' ><!----> dynamic - element >
<!----> root >
第二步、创建
Template
,添入
ID
、
Name
、
Description
信息后,在
Structure
一栏选择上一步创建的
Structure
(这里为
test
)
然后点击
Launch Editor
按钮,打开
Template
编辑窗口,按照所需要的格式定义
Template
,如下:
< xsl:stylesheet xmlns:xsl = " http://www.w3.org/1999/XSL/Transform " version = " 1.0 " >
< xsl:output method = " html " omit - xml - declaration = " yes " />
< xsl:template match = " / " >
< table cellpadding = " 0 " cellspacing = " 0 " border = " 0 " width = " 100% " >
< tr >
< td colspan = " 2 " >
< xsl:value - of
disable - output - escaping = " yes " select = " root/dynamic-element[@name='headline']/dynamic-content " />
<!----> td >
<!----> tr >
< tr >
< td >
< img >
< xsl:attribute name = " src " >
< xsl:value - of
disable - output - escaping = " yes " select = " root/dynamic-element[@name='image-1']/dynamic-content " />
<!----> xsl:attribute >
<!----> img >
<!----> td >
< td >
< xsl:value - of
disable - output - escaping = " yes " select = " root/dynamic-element[@name='caption-1']/dynamic-content " />
<!----> td >
<!----> tr >
< tr >
< td colspan = " 2 " >
< xsl:value - of
disable - output - escaping = " yes " select = " root/dynamic-element[@name='body-text']/dynamic-content " />
<!----> td >
<!----> tr >
< tr >
< td >
< xsl:value - of
disable - output - escaping = " yes " select = " root/dynamic-element[@name='caption-2']/dynamic-content " />
<!----> td >
< td >
< img >
< xsl:attribute name = " src " >
< xsl:value - of
disable - output - escaping = " yes " select = " root/dynamic-element[@name='image-2']/dynamic-content " />
<!----> xsl:attribute >
<!----> img >
<!----> td >
<!----> tr >
<!----> table >
<!----> xsl:template >
<!----> xsl:stylesheet >
下面对该文件进行说明:
1 、这里的 @name=’ 名称 ’ 必须要和第一步中创建 Structure 中的元素名称一致,页面格式根据需求使用 HTML 语言定义即可。
2 、对 text 、 text area 类型的元素输出时的格式如下:
<xsl:value-of></xsl:value-of>
disable-output-escaping="yes" select="root/dynamic-element[@name='caption-2']/dynamic-content"/>
1、 对 image 类型的元素输出时的格式如下:
<xsl:attribute name="src"> </xsl:attribute>
<xsl:value-of></xsl:value-of>
disable-output-escaping="yes" select="root/dynamic-element[@name='image-2']/dynamic-content"/>
第三步、创建 Article ,添写基本信息后,在 Structure 一栏选择 test ,对应的 Template 一栏也选择 test 即可,然后在对应的元素域里添入合适的文本或者图片,点击预览即可以看到如下界面,确定无问题后,点击保存或者保存并发布按钮即可完成 content 的定制。
通过以上三个步骤,我们就实现了定制 content 的功能。使用 Journal Portlet ,我们可以定制任何不同风格的 content 来展示必要的信息。