Liferay Portal學(xué)習(xí)筆記(二):使用CMS[轉(zhuǎn)](2009-05-26 14:04:33)
Liferay Portal
的 CMS(Content Manage System) 提供了兩大功能:文檔管理和文章發(fā)布。文檔管理包括文檔庫和圖片集兩個(gè) portlets ,能夠提供對(duì) Microsoft Office 文檔、 PDFs 、文本文件和圖片的管理;文章發(fā)布功能依靠 Liferay Portal 中的 Journal portlet 完成,它的特性是能夠?qū)?shù)據(jù)( data entry )和版面設(shè)計(jì)( Layout Design )很輕易的分開,這就使得 content 能夠復(fù)合一致的“ look and feel ”,另外, Journal portlet 提供了 content 的版本跟蹤和發(fā)布流程的功能。
Liferay Portal的CMS功能是通過Journal Portlet實(shí)現(xiàn)的,在介紹怎樣使用Journal Portlet之前,有必要理解structures、templates和articles的概念,它們是Journal portlet功能的基礎(chǔ)。
l Structures:定于了content的類型和數(shù)量,content的類型包括text、text area、images、selection lists等
l Templates:確定content怎樣排列或擺放
l Articles:確定每個(gè)content包含的實(shí)際的text和images
我們以下圖為例定義一個(gè)content,分為三個(gè)步驟:

第一步、創(chuàng)建Structure,包含一下元素:一個(gè)text元素名為“headline”(對(duì)應(yīng)圖片1區(qū)域)、三個(gè)text area元素為名稱分別為“body-text”(對(duì)應(yīng)4區(qū)域)“caption-1”(對(duì)應(yīng)2區(qū)域)“caption-2”(對(duì)應(yīng)6區(qū)域)、兩個(gè)image元素名稱分別為“image-1”(對(duì)應(yīng)3區(qū)域)和“image-2”(對(duì)應(yīng)5區(qū)域)
添加完這些元素后的界面如下:

點(diǎn)擊Launch Editor按鈕,可以看到XML定義,也可以在此增刪或修改元素及類型,內(nèi)容如下:
<root>
<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>
第二步、創(chuàng)建 Template ,添入 ID 、 Name 、 Description 信息后,在 Structure 一欄選擇上一步創(chuàng)建的 Structure (這里為 test )

然后點(diǎn)擊 Launch Editor 按鈕,打開 Template 編輯窗口,按照所需要的格式定義 Template ,如下:
<? xml version = " 1.0 " ?>
< xsl:stylesheet xmlns:xsl = " http://www./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 >