|
為了使Liferay Portal很好地投入生產(chǎn)應用,除了進行必要的配置之外,還需要進行適度的二次開發(fā),修改Liferay中的不適當部分,添加新的應用功能,并整合現(xiàn)有的應用系統(tǒng)集成到Liferay Portal中來。 一、建立Java開發(fā)環(huán)境 1、下載安裝ant Apache ant是一個優(yōu)秀的Java編譯工具,許多Java應用軟件采用了ant進行編譯處理。 從ant開源項目的網(wǎng)站http://ant./ 下載最新的ant版本1.7.1軟件包apache-ant-1.7.1-bin.tar.gz。把軟件包解壓縮到目錄C:\Java\下,再把產(chǎn)生的目錄名apache-ant-1.7.1重命名為ant-1.7.1,即ant的主目錄是C:\Java\ant-1.7.1\。 2、下載安裝Jikes 有許多Java應用系統(tǒng)選用Jikes軟件來編譯Java程序。Jikes是IBM創(chuàng)建的一款符合Sun Java技術規(guī)范的Java編譯器。與Sun 的Java編譯器相比,Jikes是開源的,編譯速度更快,提供更為清晰的錯誤和警告提示。 注意,ant同Jikes不是一個東西。Jikes等同于Javac,而ant是個輔助編譯工具,主要用來解釋編譯參數(shù)選項,它類似于Unix/Linux系統(tǒng)中的make,而且不管是使用Sun Javac還是IBM Jikes編譯器,都可以使用ant工具。 從Jikes網(wǎng)站http://jikes./ 下載最新的Jikes版本1.22的軟件包jikes-1.22-1.windows.zip。把軟件包解壓縮到目錄C:\Java\jikes-1.22\下。 3、配置系統(tǒng)環(huán)境參數(shù) 參照“Liferay Portal 應用之安裝”篇中的方法,把ANT_HOME=C:\Java\ant-1.7.1和JIKES_HOME=C:\Java\jikes-1.22加入到Windows系統(tǒng)的環(huán)境變量中,然后在Path變量的最前面添加上 %ANT_HOME%\bin;%JIKES_HOME%\bin; 即 Path=%ANT_HOME%\bin;%JIKES_HOME%\bin;%JAVA_HOME%\bin;.... 4、下載安裝Eclipse Eclipse是一個優(yōu)秀的軟件開發(fā)平臺,涵蓋了軟件開發(fā)的完整生命周期,包括建模,開發(fā),部署,管理和測試。Eclipse的插入式可擴展架構,使得它能夠同時支持Java,C,C++,PHP等語言工具在企業(yè)應用、嵌入式應用和實時應用多方面的項目開發(fā)。其中,Eclipse Web Tools Platform(WTP)軟件包在Eclipse平臺中提供了適合于開發(fā)Web服務和Java EE應用的豐富工具,再配合適當?shù)牟寮耆軌驖M足絕大多數(shù)Java應用開發(fā)的需要。因此,我們選擇了Eclipse作為Liferay Portal應用的開發(fā)平臺。 Eclipse WTP軟件包的最新版本是3.0.1,要求運行在Eclipse-SDK-3.4以上版本,且需要其他一些擴展軟件包如JDT,EMF,GEF等。 首先從Eclipse的網(wǎng)站http://www./downloads/packages/ 選擇下載Eclipse IDE for Java EE Developers軟件包eclipse-jee-ganymede-win32.zip,解壓縮到C:\Java\目錄中,產(chǎn)生目錄eclipse。 再到 http://downloads./webtools/downloads/ 選擇下載WTP軟件包wtp-R-3.0.1-20080818032401.zip,也解壓縮到C:\Java\目錄下,覆蓋已有的eclipse目錄(僅添加了plugins和features子目錄內(nèi)容)。 最后,把Eclipse的安裝目錄名eclipse重命名為eclipse-3.0.1,即Eclipse WTP的主目錄是C:\Java\eclipse-3.0.1\。進入該目錄執(zhí)行eclipse.exe啟動eclipse平臺。該平臺界面是英文版的,但支持中文處理。 二、建立Liferay開發(fā)環(huán)境 1、安裝Liferay源程序包 我們在“Liferay Portal 應用之安裝”篇中已經(jīng)下載了Liferay源程序包liferay-portal-src-5.1.0.zip?,F(xiàn)在把它解壓縮到C:\Projects\liferay-5.1.0\目錄下,然后把生成的目錄liferay-portal-src-5.1.0重命名為portal,即Liferay的源程序目錄是C:\Projects\liferay-5.1.0\portal\。 2、建立擴展開發(fā)環(huán)境 (1)建立擴展開發(fā)目錄ext 先確認自己電腦的Windows用戶名。在C:\Projects\liferay-5.1.0\portal\目錄中建立屬性文件release.{用戶名}.properties,本人的用戶名是jingxiao,因此要建立的文件名是release.jingxiao.properties,文件內(nèi)容只有一行: lp.ext.dir=C:/projects/liferay-5.1.0/ext 然后進入DOS窗口,轉(zhuǎn)入目錄C:\Projects\liferay-5.1.0\portal\,執(zhí)行命令: ant clean start build-ext 若干分鐘后命令執(zhí)行完成,在C:\Projects\liferay-5.1.0\目錄中建立了ext子目錄,這是進行二次開發(fā)的擴展目錄,包含了從源程序目錄portal中建立并復制來的java類包、源程序、屬性文件和配置文件等等。 (2)部署擴展開發(fā)環(huán)境 接下來要測試新建的擴展開發(fā)環(huán)境是否可用,能否正確生成運行環(huán)境。 打開擴展開發(fā)目錄ext中的部署屬性文件app.server.properties,找到單獨使用Tomcat服務器的定義參數(shù)部分。在該屬性文件中,缺省定義Tomcat服務器使用的是Tomcat 5.5版本,而我們使用的是Tomcat 6.0服務器(Liferay-5.1.0+Tomcat-6.0集成包),因此要把原來Tomcat 6.0屬性定義的注釋符號去除掉(有關Tomcat 5.5的定義還要保留),使得下列定義語句有效: app.server.tomcat.version=6.0 app.server.tomcat.dir=${app.server.parent.dir}/tomcat-6.0.16 app.server.tomcat.classes.global.dir=${app.server.tomcat.dir}/lib app.server.tomcat.lib.endorsed.dir=${app.server.tomcat.dir}/lib/ext app.server.tomcat.lib.global.dir=${app.server.tomcat.dir}/lib/ext app.server.tomcat.lib.support.dir=${app.server.tomcat.dir}/lib/ext app.server.tomcat.support.dir=${app.server.tomcat.dir}/lib/ext app.server.tomcat.zip.name=liferay-portal-tomcat-6.0-${downloads.version}.zip 然后在擴展開發(fā)目錄ext下,建立對應于用戶名的擴展部署屬性文件app.server.{用戶名}.properties,即app.server.jingxiao.properties,其內(nèi)容如下: app.server.type=tomcat app.server.tomcat.dir=C:/Projects/liferay-5.1.0/tomcat-6.0 最后,在DOS窗口中進入擴展開發(fā)目錄C:\Projects\liferay-5.1.0\ext\,執(zhí)行命令: ant clean deploy 經(jīng)過幾分鐘的處理后,當DOS窗口出現(xiàn)BUILD SUCCESSFULE提示時,部署成功,ext目錄中的內(nèi)容經(jīng)過編譯打包后部署到了運行環(huán)境tomcat-6.0目錄下。 現(xiàn)在來測試重新部署的Liferay Portal是否工作正常。進入tomcat-6.0\bin\目錄,執(zhí)行startup.bat啟動Liferay(MySQL數(shù)據(jù)庫和LDAP服務器應該優(yōu)先啟動),用瀏覽器打開網(wǎng)址http://localhost:8080/,展現(xiàn)出同部署前一樣的界面。以admin用戶登錄一切正常。 但由于使用了ant clean,將把已經(jīng)部署到Tomcat的其他應用(webapps目錄中)給刪除了。因此,要么只用ant deploy來部署,要么事先備份好非Liferay Portal的那些應用目錄,如Liferay的主題風格插件。 (3)建立eclipse開發(fā)項目 啟動eclipse,指定工作項目目錄為C:\Project\liferay-5.1.0\。在eclipse啟動后的主窗口中,把鼠標移到右邊的Workbench圖標上,打開eclipse的工作臺面。 先建立一個Java項目ext。在主菜單File列表中,依次點擊New->Other…。在打開的New過濾窗口中,點開Java項目,選擇Java Project子項目并按Next按鈕進入下一步配置。在New Java Project窗口中,指定Project Name為ext;在Content欄目中,選擇“Create project from existing source”,并在Directory欄目瀏覽選擇現(xiàn)有項目的目錄為C:\Projects\liferay-5.1.0\ext\。其他選項不予理會,直接按Finish按鈕,eclipse將會在左側的Package Ext窗口下建立ext項目。 按照上面的方法,再建立一個Java項目portal。其中Project Name為portal,也是選擇從現(xiàn)有項目建立,且目錄在C:\Projects\liferay-5.1.0\portal\。 再來開啟顯示ant窗口。在主菜單Window列表中,依次點擊Show View->Other…。在打開的Show View過濾窗口中,點開Ant項目,選擇Ant子項目并按OK按鈕確定。這樣將在eclipse右側的窗口中調(diào)出ant顯示標簽。 然后打開ext項目,把build.xml配置文件拖拽到剛才建立的ant窗口中。如果要把ext項目部署到Tomcat服務中,僅需雙擊ant窗口中的deploy [default] [from …]項,等待最下面的Console窗口中出現(xiàn)BUILD SUCCESSFUL提示,則部署完成。 為了能夠在eclipse中直接控制Tomcat服務器的啟動或停止,方便開發(fā)調(diào)試,我們將給eclipse安裝一個Tomcat插件。從http://www./ 網(wǎng)站下載最新版的tomcat插件包tomcatPluginV321.zip,把它解壓縮到eclipse的插件目錄C:\Java\eclipse-3.0.1\plugins\中。退出正在運行的eclipse再重新啟動之,可以看到,在eclipse的快捷圖標欄上多出了三個Tomcat的新圖標: 接下來需要配置Tomcat插件的使用。在主菜單Window下,打開Preferences窗口,點擊Tomcat項目進行配置:選擇Tomcat版本為Version 6.x;指定Tomcat home為C:\Projects\liferay-5.1.0\tomcat-6.0。 由于在同一臺電腦上運行了較多的Java應用,需要配置Java虛擬機的參數(shù)。點擊Tomcat項目下的JVM Settings子項目,在Append to JVM Parameters欄,按Add按鈕添加如下兩行參數(shù): -Xms256m -Xmx1024m -XX:MaxPermSize=128m -Dfile.encoding=UTF8 -Duser.timezone=GMT+8 上述配置完成之后,就可以在eclipse中按動Tomcat工具圖標來控制Tomcat服務器的啟停。 至此,Liferay在eclipse平臺下的開發(fā)環(huán)境全部建立起來了。 三、Liferay應用開發(fā) 在我們建立的eclipse開發(fā)環(huán)境中進行應用開發(fā)。按照Liferay的建議,二次開發(fā)最好是在ext項目中進行。而且在ext項目中,Liferay的核心內(nèi)容是經(jīng)過打包后復制過來的,對Liferay的修改或應用開發(fā)要按照Liferay的建議,以“擴展”的形式來實現(xiàn)。這樣的話,當Liferay升級更新了源碼后,重新生成ext項目時也不會覆蓋原來在ext中所作的變動。 1、修改中文譯文 在Liferay Portal中使用者可以隨時切換到不同的語種界面。與其他Java應用一樣,Liferay的國際化也是通過使用對應于各種語言的資源文件實現(xiàn)的。國際化的資源文件名格式為Language_{語種名稱}.properties。例如,簡體中文的資源文件名是Language_zh_CN.properties。Liferay的基礎語言是英語,在每個語種的資源文件中定義了英語詞句與該語種詞句的對應關系。因此,中文譯文的修改比較容易。 由于Java資源文件的編碼格式是ISO-8859-1,而我們使用的中文Windows操作系統(tǒng)的編碼是GBK,因此不能直接顯示和編輯資源文件內(nèi)容,需要為eclipse添加一個資源文件編輯插件Jinto。進入網(wǎng)站http://www./jinto_en.html, 選擇下載適合于eclipse 3.3.X版本的插件包de.guhsoft.jinto-0.11.0.zip。下載后解壓縮到eclipse目錄C:\Java\eclipse-3.0.1\中。 啟動eclipse,依次打開portal項目->portal-imp/src->content,找到簡體中文語言資源文件Language_zh_CN.properties,把它復制到ext項目的對應目錄下(ext項目->ext-imp/src->content),再重新命名為Language_zh_CN-ext.properties。我們所要修改的將是這個新文件。這是一種擴展修改方式,它保留了原來資源文件里的定義,但可以用新的定義替換舊的,也可以添加新的定義項。 打開該文件進行修改時,可以先把那些無需修改的定義項給刪除掉,以減少重復的內(nèi)容,方便修改。由于Jinto資源編輯器沒有批量替換功能,就只能逐條修改了。修改完成要保存文件,并執(zhí)行ant部署操作之后,才能夠在Liferay Portal的運行系統(tǒng)中起作用。 2、增加網(wǎng)頁布局模板 我們打算仿照系統(tǒng)已有的70/30比例的兩列模板,制作一個40/60比例的兩列布局模板。制作步驟如下: (1)打開portal項目,進入portal-web->docroot目錄中,把layouttpl子目錄復制到ext項目的對應目錄ext-web->docroot中。然后再次進入portal項目的portal-web->docroot->WEB-INF目錄,把配置文件liferay-layout-templates.xml也復制到ext項目的對應目錄ext-web->docroot->WEB-INF中,并把它重命名為liferay-layout-templates-ext.xml。 (2)修改配置文件liferay-layout-templates-ext.xml,去除多余的定義內(nèi)容,僅保留有關2_columns_iii的定義內(nèi)容。再把文件里的_iii改為_iv,修改70/30為40/60。修改好的文件內(nèi)容如下: <?xml version="1.0"?> <!DOCTYPE layout-templates PUBLIC "-//Liferay//DTD Layout Templates 5.1.0//EN" "http://www./dtd/liferay-layout-templates_5_1_0.dtd"> <layout-templates> <custom> <layout-template id="2_columns_iv" name="2 Columns(40/60)"> <template-path>/layouttpl/custom/2_columns_iv.tpl</template-path> <wap-template-path>/layouttpl/custom/2_columns_iv.wap.tpl</wap-template-path> <thumbnail-path>/layouttpl/custom/2_columns_iv.png</thumbnail-path> </layout-template> </custom> </layout-templates> (3) 進入ext項目的ext-web->docroot->layouttpl目錄,刪除文件thumbnails.zip和目錄standard。進入custom目錄,只保留2_columns_iii.pnp,2_columns_iii.tpl和2_columns_iii.wap.tpl三個文件,刪除其余文件。再把這三個文件對應地重命名為2_columns_iv.pnp,2_columns_iv.tpl,2_columns_iv.wap.tpl。其中,2_columns_iv.wap.tpl是移動設備瀏覽版式,不必修改。2_columns_iv.pnp是版式模板的示例圖片,可以復制出來用圖形處理軟件進行適當修改。2_columns_iv.tpl是電腦瀏覽器格式模板,需要作如下修改:把該文件中的seventy修改為forty;把該文件中的thirty修改為sixty。修改完成之后,2_columns_iv.tpl文件內(nèi)容如下: <div class="columns-2" id="content-wrapper"> <table class="lfr-grid" id="layout-grid"> <tr> <td class="lfr-column forty" id="column-1" valign="top"> $processor.processColumn("column-1") </td> <td class="lfr-column sixty" id="column-2" valign="top"> $processor.processColumn("column-2") </td> </tr> </table> </div>
上述操作完成之后,經(jīng)過ant部署處理,系統(tǒng)管理員就可以在“布局模板”列表中挑選使用新建立的2 Columns(40/60) 模板了。 3、修改內(nèi)嵌的Portlet Liferay Portal預制了數(shù)十個Portlet,提供了較為豐富的功能。我們可以按照自己的喜好,對這些內(nèi)嵌Portlet進行適當?shù)男薷摹?/p> 在portal工程項目中,依次打開目錄portal-web->docroot->html->portlet,可以看到所有的內(nèi)嵌Portlet都在這里面。如果僅僅是修改某些Portlet,只需要把它們復制到ext項目對應位置,然后修改其中的程序。比如,我們想修改Document Library和Document Library Display這兩個Portlet,打算取消原來顯示W(wǎng)ebDAV URL的行。具體步驟如下: (1)進入portal工程項目的portal-web->docroot->html->portlet目錄中,把document_library目錄復制到ext項目的對應目錄ext-web->docroot->html->portlet中。 (2)進入ext項目,打開復制來的document_library目錄,編輯view.jsp程序。在view.jsp中查找字符串WebDAV,把有關顯示W(wǎng)ebDAV URL行的語句注釋掉,即添加注釋符號,如下所示: <!-- <c:if test="<%= WebDAVUtil.isEnabled(DLWebDAVStorageImpl.class.getName()) %>"> <table class="lfr-table"> … … </table> </c:if> --> (3)如前所述,修改完成之后需要保存并部署,所作修改才能夠起作用。 可見,修改原有的Portlet并不難,關鍵是對Portlet規(guī)范和架構熟悉,仔細讀懂Portlet程序和配置定義。 4、開發(fā)新的Portlet 下面我們將參照Liferay網(wǎng)站的例子,介紹如何在擴展開發(fā)環(huán)境下,建立一個簡單的Struts架構的 Portlet,起名為Library。在ext項目下,已經(jīng)有一個示范性的reports Portlet存在,我們可以參考它來建立Library Portlet。 (1)定義Portlet 有關Portlet的配置文件全部放置在ext項目的ext-web\docroot\WEB-INF\目錄中。 一個新的portlet還需要在portlet-ext.xml和lifray-portlet-ext.xml中進行定義。在portlet-ext.xml的<portlet-app>…..</portlet-app>之間已經(jīng)有了reports Portlet的定義,在其后面添加有關Library的定義內(nèi)容如下: <portlet> <portlet-name>Library</portlet-name> <display-name>Library Portlet</display-name> <portlet-class>com.liferay.portlet.StrutsPortlet</portlet-class> <init-param> <name>view-action</name> <value>/ext/library/view</value> </init-param> <expiration-cache>0</expiration-cache> <supports> <mime-type>text/html</mime-type> </supports> <resource-bundle>com.liferay.portlet.StrutsResourceBundle</resource-bundle> <security-role-ref> <role-name>power-user</role-name> </security-role-ref> <security-role-ref> <role-name>user</role-name> </security-role-ref> </portlet>
在lifray-portlet-ext.xml配置文件中,同樣在reports Portlet的定義之后,添加Library的定義內(nèi)容: <portlet> <portlet-name>Library</portlet-name> <struts-path>ext/library</struts-path> <use-default-template>false</use-default-template> </portlet> 在library-display.xml文件中把Library Portlet定義到sample(樣品)分組中,即把<portlet id="Library" />添加到<category name="category.sample">的下面。 按照上面的定義,在Liferay中新建立了Library Portlet,且命名為Library,但在Liferay中的實際引用名稱將是javax.portlet.title.Library,不夠簡練,因此需要把它重命名為便于識別的名稱“圖書館”。 進入ext項目的ext-imp/src->content目錄,打開Language-ext.properties資源文件,添加一條定義行: javax.portlet.title.Library=圖書館
(2)定義網(wǎng)頁的流轉(zhuǎn)和顯示方式 struts-config.xml用來定義網(wǎng)頁的流轉(zhuǎn)。該文件已經(jīng)有了reports Portlet的定義,只需在</action-mappings>之前添加如下幾行有關library的定義: <!-- Library --> <action path="/ext/library/view" forward="portlet.ext.library.view" /> <action path="/ext/library/add_book" type="com.ext.portlet.library.action.AddBookAction"> <forward name="portlet.ext.library.error" path="portlet.ext.library.error" /> <forward name="portlet.ext.library.success" path="portlet.ext.library.success" /> </action> tiles-defs.xml定義網(wǎng)頁的顯示方式。同上,該文件中已經(jīng)有了reports Portlet的定義,只需在</tiles-definitions>之前添加有關library的定義,內(nèi)容如下: <!-- Library --> <definition name="portlet.ext.library" extends="portlet" /> <definition name="portlet.ext.library.view" extends="portlet.ext.library"> <put name="portlet_content" value="/portlet/ext/library/view.jsp" /> </definition> <definition name="portlet.ext.library.error" extends="portlet.ext.library"> <put name="portlet_content" value="/portlet/ext/library/error.jsp" /> </definition> <definition name="portlet.ext.library.success" extends="portlet.ext.library"> <put name="portlet_content" value="/portlet/ext/library/success.jsp" /> </definition> (3)建立處理程序 在ext-web\docroot\html\portlet\ext\目錄中建立library目錄,在此放置網(wǎng)頁顯示處理程序。 建立Portlet初始化程序init.jsp,內(nèi)容如下: <%@ include file="/html/common/init.jsp" %> 建立Portlet顯示程序view.jsp,內(nèi)容如下(注意,eclipse缺省使用的字符編碼是ISO-8859-1,不能保存中文字符。因此需要修改程序文件的字符編碼格式:用鼠標右鍵點文件名調(diào)出處理列表,再點擊最后一項Properties。在Properties配置窗口的右邊有“Text file encoding”選項,從“Other:”欄選擇UTF-8,保存配置即可。): <%@ page language="java" contentType="text/html; charset=UTF-8"%> <%@ include file="/html/portlet/ext/library/init.jsp" %> <br/> 向圖書館增加書: <br/><br/> <form action="<portlet:actionURL windowState= "<%= WindowState.MAXIMIZED.toString() %>"> <portlet:param name="struts_action" value="/ext/library/add_book" /> </portlet:actionURL>" method="post" name="<portlet:namespace />fm"> 書 名: <input name="<portlet:namespace />book_title" size="20" type="text" value=""><br/><br/> <input type="button" value="Submit" onClick="submitForm(document.<portlet:namespace />fm);"> </form> <br/> 建立操作成功的處理程序success.jsp,內(nèi)容如下: <%@ page language="java" contentType="text/html; charset=UTF-8"%> <%@ include file="/html/portlet/ext/library/init.jsp" %> <% String bookTitle = request.getParameter("book_title"); %> <table align="center" cellspacing="10" cellpadding="3"> <tr> <td style="font-weight:bold">增加的書名:</td> <td><%= bookTitle %></td> </tr> </table> 建立操作錯誤的處理程序error.jsp,內(nèi)容如下: <%@ page language="java" contentType="text/html; charset=UTF-8"%> 出現(xiàn)錯誤,操作失?。?/font> 然后建立增加書目的事務處理程序AddBookAction.java。參照reports Portlet,我們在ext-imp/src目錄中建立Java包com.ext.portlet.library.action,并建立Java程序AddBookAction.java內(nèi)容如下: package com.ext.portlet.library.action; import javax.portlet.ActionRequest; import javax.portlet.ActionResponse; import javax.portlet.PortletConfig; import javax.portlet.RenderRequest; import javax.portlet.RenderResponse; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import com.liferay.portal.struts.PortletAction; public class AddBookAction extends PortletAction { public void processAction( ActionMapping mapping, ActionForm form, PortletConfig config, ActionRequest req, ActionResponse res) throws Exception { String bookTitle = req.getParameter("book_title");
if ( null == bookTitle || "".equals(bookTitle) ) { setForward(req, "portlet.ext.library.error"); } else { setForward(req, "portlet.ext.library.success"); } }
public ActionForward render(ActionMapping mapping, ActionForm form, PortletConfig config, RenderRequest req, RenderResponse res) throws Exception { if (getForward(req) != null && !getForward(req).equals("")) { return mapping.findForward(getForward(req)); } else { return mapping.findForward("portlet.ext.library.view"); } } } (4)部署和使用。 執(zhí)行ant deploy部署ext項目到Tomcat服務器。啟動Tomcat并打開Liferay Portal主頁,以admin用戶登錄,向當前網(wǎng)頁添加應用??梢钥吹?,在sample(樣品)分組下出現(xiàn)了我們剛建立的Library Portlet應用,把它拖放到網(wǎng)頁上測試使用。 5、精簡Liferay的Portlet 在Liferay Portal內(nèi)置的幾十個Portlet中,有許多是我們不需要的,比如有關網(wǎng)店購物的Portlet。通過在擴展配置文件中重新定義,我們可以把那些不需要的Portlet注銷掉。 打開ext項目,進入ext-web->docroot->WEB-INF目錄,編輯配置文件liferay-portlet-ext.xml。把需要注銷的Portlet的定義項從注釋框架中分離出來使它有效,再把<include>true</include>中的true修改為false即可。下面一段定義語句將把購物(Shopping)Portlet從Liferay Portal中屏蔽掉: --> <portlet> <portlet-name>34</portlet-name> <struts-path>shopping</struts-path> <include>false</include> </portlet> <!-- 6、修改網(wǎng)頁主題風格 Liferay支持主體風格插件。使用者可以按照規(guī)范制作個性化的網(wǎng)站主體格式,也可以從Liferay社區(qū)下載網(wǎng)友制作的插件使用。最新的Liferay 5.1.0版本對主題插件規(guī)范進行了修改,舊版本主題插件部署之后不能夠使用了。好在新版本附帶了一個主題插件Jedi,我們可以對照Jedi插件中的配置,把舊版主題插件部署之后經(jīng)過修改,就可以使用了。下面以舊的主題插件包alef-theme-5.0.1.war為例,解釋如何給5.1.0版本的Liferay添加新的主題插件: (1)把alef-theme-5.0.1.war重命名為alef-theme.war,復制到Liferay的熱部署目錄C:\Documents and Settings\{用戶名}\liferay\deploy\下。注意,本例的{用戶名}為jingxiao。如果Tomcat已經(jīng)啟動Liferay在運行,幾分鐘之后該插件包將被部署到Tomcat的webapps目錄下: C:\Projects\liferay-5.1.0\tomcat-6.0\webapps\alef-theme (2)分別進入Jedi和alef兩個主題插件的WEB-INF目錄。對比發(fā)現(xiàn),Jedi插件多處了兩個配置文件:liferay-look-and-feel.xml和liferay-plugin-package.xml。因此,我們把Jedi中的這兩個文件復制到alef的對應目錄中。 (3)修改alef-theme/WEB-INF/目錄中新復制來的兩個文件內(nèi)容:把“liferay-jedi”修改為“alef”;把“Liferay Jedi”修改為“Alef”;把“liferay/liferay-jedi-theme/5.1.0.1/war”修改為“liferay/alef-theme/5.0.1/war”。 經(jīng)過以上處理,5.0.1版本的alef-theme插件就可以在5.1.0版本的Liferay中使用了。 另外,對于主題插件,可以修改其中的CSS配置來調(diào)整外觀格式。 7、其他 (1)修改缺省主頁(guest)右上角顯示的“Welcome!”。 盡管在Liferay的中文資源配置文件中已經(jīng)把“Welcome”一詞翻譯為“歡迎”,但Liferay的缺省主頁在中文界面仍然顯示的是“Welcome”而不是“歡迎”。檢查發(fā)現(xiàn),該詞是在數(shù)據(jù)庫表user_中定義的,因此,要直接進入數(shù)據(jù)庫,把user_表中缺省用戶(defaultUser=1)的greeting值從“Welcome!”修改為“歡迎訪問!”即可。 (2)修改缺省用戶所在區(qū)域和語言 Liferay在system.properties資源文件中定義了缺省用戶所在的國家/地區(qū),語言和時區(qū)。我們可以重新定義這些缺省值。把portal項目portal-imp/src目錄中的文件system.properties復制到ext項目對應目錄中(ext-imp/src),并重命名為system-ext.properties(如果已經(jīng)存在,先刪除之)。然后打開文件進行編輯處理:先把那些不需要修改的參數(shù)項刪除掉,重新定義如下值: user.country = CN user.language = zh_CN user.timezone =GMT+8 (3)其它缺省參數(shù)的定義 Liferay還在portal-imp/src目錄的portal.properties文件中定義了其它常用的缺省參數(shù)值,同樣可以在對應目錄ext-imp/src的portal-ext.properties文件中進行重新定義。比如把原來在portal.properties中定義的通告類型列表: announcements.entry.types=general,news,test 重新在portal-ext.properties中定義為: announcements.entry.types=general,news,notice 同樣可以重新定義期刊文章的類型,直接定義為中文名稱: journal.article.types=動態(tài)信息,公告,通知,其它
以上簡單介紹了有關Liferay Portal的應用開發(fā)方法。在實際應用中,還需要仔細研究Liferay的程序架構和源碼,理解相關技術和規(guī)范(特別是JSR-168規(guī)范),才能夠更好地開發(fā)和應用Liferay Portal產(chǎn)品。 |
|
|