Liferay Portal应用之开发-liferay5.1

原文地址:http://zuozheng456.blog.163.com/blog/static/23690056200811229450262/

为了使Liferay Portal很好地投入生产应用,除了进行必要的配置之外,还需要进行适度的二次开发,修改Liferay中的不适当部分,添加新的应用功能,并整合现有的应用系统集成到Liferay Portal中来。

一、建立Java开发环境

1、下载安装ant

Apache ant是一个优秀的Java编译工具,许多Java应用软件采用了ant进行编译处理。

从ant开源项目的网站http://ant.apache.org/ 下载最新的ant版本1.7.1软件包apache-ant-1.7.1-bin.tar.gz。把软件包解压缩到目录C:\Java\下,再把产生的目录名apache-ant-1.7.1重命名为ant-1.7.1,即ant的主目录是C:\Java\ant-1.7.1\。

2、下载安装Jikes

有许多Java应用系统选用Jikes软件来编译Java程序。Jikes是IBM创建的一款符合Sun Java技术规范的Java编译器。与Sun 的Java编译器相比,Jikes是开源的,编译速度更快,提供更为清晰的错误和警告提示。

注意,ant同Jikes不是一个东西。Jikes等同于Javac,而ant是个辅助编译工具,主要用来解释编译参数选项,它类似于Unix/Linux系统中的make,而且不管是使用Sun Javac还是IBM Jikes编译器,都可以使用ant工具。

从Jikes网站http://jikes.sourceforge.net/ 下载最新的Jikes版本1.22的软件包jikes-1.22-1.windows.zip。把软件包解压缩到目录C:\Java\jikes-1.22\下。

3、配置系统环境参数

参照“Liferay Portal 应用之安装”篇中的方法,把ANT_HOME=C:\Java\ant-1.7.1和JIKES_HOME=C:\Java\jikes-1.22加入到Windows系统的环境变量中,然后在Path变量的最前面添加上

%ANT_HOME%\bin;%JIKES_HOME%\bin;

Path=%ANT_HOME%\bin;%JIKES_HOME%\bin;%JAVA_HOME%\bin;....

 Liferay Portal应用之开发 - 展翅高飞 - 爪哇谷

4、下载安装Eclipse

Eclipse是一个优秀的软件开发平台,涵盖了软件开发的完整生命周期,包括建模,开发,部署,管理和测试。Eclipse的插入式可扩展架构,使得它能够同时支持Java,C,C++,PHP等语言工具在企业应用、嵌入式应用和实时应用多方面的项目开发。其中,Eclipse Web Tools Platform(WTP)软件包在Eclipse平台中提供了适合于开发Web服务和Java EE应用的丰富工具,再配合适当的插件,完全能够满足绝大多数Java应用开发的需要。因此,我们选择了Eclipse作为Liferay Portal应用的开发平台。

Eclipse WTP软件包的最新版本是3.0.1,要求运行在Eclipse-SDK-3.4以上版本,且需要其他一些扩展软件包如JDT,EMF,GEF等。

首先从Eclipse的网站http://www.eclipse.org/downloads/packages/ 选择下载Eclipse IDE for Java EE Developers软件包eclipse-jee-ganymede-win32.zip,解压缩到C:\Java\目录中,产生目录eclipse。

再到 http://download.eclipse.org/webtools/downloads/ 选择下载WTP软件包wtp-R-3.0.1-20080818032401.zip,也解压缩到C:\Java\目录下,覆盖已有的eclipse目录(仅添加了plugins和features子目录内容)。

最后,把Eclipse的安装目录名eclipse重命名为eclipse-3.0.1,即Eclipse WTP的主目录是C:\Java\eclipse-3.0.1\。进入该目录执行eclipse.exe启动eclipse平台。该平台界面是英文版的,但支持中文处理。

Liferay Portal应用之开发 - 展翅高飞 - 爪哇谷

二、建立Liferay开发环境

1、安装Liferay源程序包

我们在“Liferay Portal 应用之安装”篇中已经下载了Liferay源程序包liferay-portal-src-5.1.0.zip。现在把它解压缩到C:\Projects\liferay-5.1.0\目录下,然后把生成的目录liferay-portal-src-5.1.0重命名为portal,即Liferay的源程序目录是C:\Projects\liferay-5.1.0\portal\。

2、建立扩展开发环境

(1)建立扩展开发目录ext

先确认自己电脑的Windows用户名。在C:\Projects\liferay-5.1.0\portal\目录中建立属性文件release.{用户名}.properties,本人的用户名是jingxiao,因此要建立的文件名是release.jingxiao.properties,文件内容只有一行:

lp.ext.dir=C:/projects/liferay-5.1.0/ext

然后进入DOS窗口,转入目录C:\Projects\liferay-5.1.0\portal\,执行命令:

ant clean start build-ext

若干分钟后命令执行完成,在C:\Projects\liferay-5.1.0\目录中建立了ext子目录,这是进行二次开发的扩展目录,包含了从源程序目录portal中建立并复制来的java类包、源程序、属性文件和配置文件等等。

(2)部署扩展开发环境

接下来要测试新建的扩展开发环境是否可用,能否正确生成运行环境。

打开扩展开发目录ext中的部署属性文件app.server.properties,找到单独使用Tomcat服务器的定义参数部分。在该属性文件中,缺省定义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

然后在扩展开发目录ext下,建立对应于用户名的扩展部署属性文件app.server.{用户名}.properties,即app.server.jingxiao.properties,其内容如下:

app.server.type=tomcat

app.server.tomcat.dir=C:/Projects/liferay-5.1.0/tomcat-6.0

最后,在DOS窗口中进入扩展开发目录C:\Projects\liferay-5.1.0\ext\,执行命令:

ant clean deploy

经过几分钟的处理后,当DOS窗口出现BUILD SUCCESSFULE提示时,部署成功,ext目录中的内容经过编译打包后部署到了运行环境tomcat-6.0目录下。

现在来测试重新部署的Liferay Portal是否工作正常。进入tomcat-6.0\bin\目录,执行startup.bat启动Liferay(MySQL数据库和LDAP服务器应该优先启动),用浏览器打开网址http://localhost:8080/,展现出同部署前一样的界面。以admin用户登录一切正常。

但由于使用了ant clean,将把已经部署到Tomcat的其他应用(webapps目录中)给删除了。因此,要么只用ant deploy来部署,要么事先备份好非Liferay Portal的那些应用目录,如Liferay的主题风格插件。

(3)建立eclipse开发项目

启动eclipse,指定工作项目目录为C:\Project\liferay-5.1.0\。在eclipse启动后的主窗口中,把鼠标移到右边的Workbench图标上,打开eclipse的工作台面。

 Liferay Portal应用之开发 - 展翅高飞 - 爪哇谷

先建立一个Java项目ext。在主菜单File列表中,依次点击New->Other…。在打开的New过滤窗口中,点开Java项目,选择Java Project子项目并按Next按钮进入下一步配置。在New Java Project窗口中,指定Project Name为ext;在Content栏目中,选择“Create project from existing source”,并在Directory栏目浏览选择现有项目的目录为C:\Projects\liferay-5.1.0\ext\。其他选项不予理会,直接按Finish按钮,eclipse将会在左侧的Package Ext窗口下建立ext项目。

Liferay Portal应用之开发 - 展翅高飞 - 爪哇谷

Liferay Portal应用之开发 - 展翅高飞 - 爪哇谷

 

按照上面的方法,再建立一个Java项目portal。其中Project Name为portal,也是选择从现有项目建立,且目录在C:\Projects\liferay-5.1.0\portal\。

再来开启显示ant窗口。在主菜单Window列表中,依次点击Show View->Other…。在打开的Show View过滤窗口中,点开Ant项目,选择Ant子项目并按OK按钮确定。这样将在eclipse右侧的窗口中调出ant显示标签。

 Liferay Portal应用之开发 - 展翅高飞 - 爪哇谷

然后打开ext项目,把build.xml配置文件拖拽到刚才建立的ant窗口中。如果要把ext项目部署到Tomcat服务中,仅需双击ant窗口中的deploy [default] [from …]项,等待最下面的Console窗口中出现BUILD SUCCESSFUL提示,则部署完成。

为了能够在eclipse中直接控制Tomcat服务器的启动或停止,方便开发调试,我们将给eclipse安装一个Tomcat插件。从http://www.eclipsetotale.com/tomcatPlugin.html  网站下载最新版的tomcat插件包tomcatPluginV321.zip,把它解压缩到eclipse的插件目录C:\Java\eclipse-3.0.1\plugins\中。退出正在运行的eclipse再重新启动之,可以看到,在eclipse的快捷图标栏上多出了三个Tomcat的新图标:Liferay Portal应用之开发 - 展翅高飞 - 爪哇谷分别用来启动(Start Tomcat)、关闭(Stop Tomcat)和重启动(Restart Tomcat)Tomcat服务器。

接下来需要配置Tomcat插件的使用。在主菜单Window下,打开Preferences窗口,点击Tomcat项目进行配置:选择Tomcat版本为Version 6.x;指定Tomcat home为C:\Projects\liferay-5.1.0\tomcat-6.0。

由于在同一台电脑上运行了较多的Java应用,需要配置Java虚拟机的参数。点击Tomcat项目下的JVM Settings子项目,在Append to JVM Parameters栏,按Add按钮添加如下两行参数:

-Xms256m -Xmx1024m -XX:MaxPermSize=128m

-Dfile.encoding=UTF8 -Duser.timezone=GMT+8

-XX:MaxNewSize=256m -XX:MaxPermSize=256m

 Liferay Portal应用之开发 - 展翅高飞 - 爪哇谷

 Liferay Portal应用之开发 - 展翅高飞 - 爪哇谷

 上述配置完成之后,就可以在eclipse中按动Tomcat工具图标来控制Tomcat服务器的启停。

至此,Liferay在eclipse平台下的开发环境全部建立起来了。

三、Liferay应用开发

在我们建立的eclipse开发环境中进行应用开发。按照Liferay的建议,二次开发最好是在ext项目中进行。而且在ext项目中,Liferay的核心内容是经过打包后复制过来的,对Liferay的修改或应用开发要按照Liferay的建议,以“扩展”的形式来实现。这样的话,当Liferay升级更新了源码后,重新生成ext项目时也不会覆盖原来在ext中所作的变动。

1、修改中文译文

在Liferay Portal中使用者可以随时切换到不同的语种界面。与其他Java应用一样,Liferay的国际化也是通过使用对应于各种语言的资源文件实现的。国际化的资源文件名格式为Language_{语种名称}.properties。例如,简体中文的资源文件名是Language_zh_CN.properties。Liferay的基础语言是英语,在每个语种的资源文件中定义了英语词句与该语种词句的对应关系。因此,中文译文的修改比较容易。

由于Java资源文件的编码格式是ISO-8859-1,而我们使用的中文Windows操作系统的编码是GBK,因此不能直接显示和编辑资源文件内容,需要为eclipse添加一个资源文件编辑插件Jinto。进入网站http://www.guh-software.de/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-ext_zh_CN.properties。我们所要修改的将是这个新文件。这是一种扩展修改方式,它保留了原来资源文件里的定义,但可以用新的定义替换旧的,也可以添加新的定义项。

打开该文件进行修改时,可以先把那些无需修改的定义项给删除掉,以减少重复的内容,方便修改。由于Jinto资源编辑器没有批量替换功能,就只能逐条修改了。修改完成要保存文件,并执行ant部署操作之后,才能够在Liferay Portal的运行系统中起作用。

2、增加网页布局模板

我们打算仿照系统已有的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,去除多余的定义内容,仅保留有关2_columns_iii的定义内容。再把文件里的_iii改为_iv,修改70/30为40/60。修改好的文件内容如下:

<?xml version="1.0"?>

<!DOCTYPE layout-templates PUBLIC "-//Liferay//DTD Layout Templates 5.1.0//EN"

"http://www.liferay.com/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文件内容如下:

 <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>

 Liferay Portal应用之开发 - 展翅高飞 - 爪哇谷Liferay Portal应用之开发 - 展翅高飞 - 爪哇谷

 

上述操作完成之后,经过ant部署处理,系统管理员就可以在“布局模板”列表中挑选使用新建立的2 Columns(40/60) 模板了。

3、修改内嵌的Portlet

Liferay Portal预制了数十个Portlet,提供了较为丰富的功能。我们可以按照自己的喜好,对这些内嵌Portlet进行适当的修改。

在portal工程项目中,依次打开目录portal-web->docroot->html->portlet,可以看到所有的内嵌Portlet都在这里面。如果仅仅是修改某些Portlet,只需要把它们复制到ext项目对应位置,然后修改其中的程序。比如,我们想修改Document Library和Document Library Display这两个Portlet,打算取消原来显示WebDAV 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,把有关显示WebDAV URL行的语句注释掉,即添加注释符号,如下所示:

<!--

<c:if test="<%= WebDAVUtil.isEnabled(DLWebDAVStorageImpl.class.getName()) %>">

    <table class="lfr-table">

           … …

    </table>

</c:if>

-->

(3)如前所述,修改完成之后需要保存并部署,所作修改才能够起作用。

可见,修改原有的Portlet并不难,关键是对Portlet规范和架构熟悉,仔细读懂Portlet程序和配置定义。

4、开发新的Portlet

下面我们将参照Liferay网站的例子,介绍如何在扩展开发环境下,建立一个简单的Struts架构的 Portlet,起名为Library。在ext项目下,已经有一个示范性的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>之间已经有了reports Portlet的定义,在其后面添加有关Library的定义内容如下:

<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>

 Liferay Portal应用之开发 - 展翅高飞 - 爪哇谷

 

在lifray-portlet-ext.xml配置文件中,同样在reports Portlet的定义之后,添加Library的定义内容:

<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=图书馆

Liferay Portal应用之开发 - 展翅高飞 - 爪哇谷

 

(2)定义网页的流转和显示方式

struts-config.xml用来定义网页的流转。该文件已经有了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定义网页的显示方式。同上,该文件中已经有了reports Portlet的定义,只需在</tiles-definitions>之前添加有关library的定义,内容如下:

<!-- 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目录,在此放置网页显示处理程序。

建立Portlet初始化程序init.jsp,内容如下:

<%@ include file="/html/common/init.jsp" %>

建立Portlet显示程序view.jsp,内容如下(注意,eclipse缺省使用的字符编码是ISO-8859-1,不能保存中文字符。因此需要修改程序文件的字符编码格式:用鼠标右键点文件名调出处理列表,再点击最后一项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,内容如下:

<%@ 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,内容如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"%>

出现错误,操作失败!

然后建立增加书目的事务处理程序AddBookAction.java。参照reports Portlet,我们在ext-imp/src目录中建立Java包com.ext.portlet.library.action,并建立Java程序AddBookAction.java内容如下:

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)部署和使用。

执行ant deploy部署ext项目到Tomcat服务器。启动Tomcat并打开Liferay Portal主页,以admin用户登录,向当前网页添加应用。可以看到,在sample(样品)分组下出现了我们刚建立的Library Portlet应用,把它拖放到网页上测试使用。

Liferay Portal应用之开发 - 展翅高飞 - 爪哇谷

5、精简Liferay的Portlet

在Liferay Portal内置的几十个Portlet中,有许多是我们不需要的,比如有关网店购物的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、修改网页主题风格

Liferay支持主体风格插件。使用者可以按照规范制作个性化的网站主体格式,也可以从Liferay社区下载网友制作的插件使用。最新的Liferay 5.1.0版本对主题插件规范进行了修改,旧版本主题插件部署之后不能够使用了。好在新版本附带了一个主题插件Jedi,我们可以对照Jedi插件中的配置,把旧版主题插件部署之后经过修改,就可以使用了。下面以旧的主题插件包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已经启动Liferay在运行,几分钟之后该插件包将被部署到Tomcat的webapps目录下:

C:\Projects\liferay-5.1.0\tomcat-6.0\webapps\alef-theme

(2)分别进入Jedi和alef两个主题插件的WEB-INF目录。对比发现,Jedi插件多处了两个配置文件:liferay-look-and-feel.xml和liferay-plugin-package.xml。因此,我们把Jedi中的这两个文件复制到alef的对应目录中。

(3)修改alef-theme/WEB-INF/目录中新复制来的两个文件内容:把“liferay-jedi”修改为“alef”;把“Liferay Jedi”修改为“Alef”;把“liferay/liferay-jedi-theme/5.1.0.1/war”修改为“liferay/alef-theme/5.0.1/war”。

经过以上处理,5.0.1版本的alef-theme插件就可以在5.1.0版本的Liferay中使用了。

另外,对于主题插件,可以修改其中的CSS配置来调整外观格式。

7、其他

(1)修改缺省主页(guest)右上角显示的“Welcome!”。

尽管在Liferay的中文资源配置文件中已经把“Welcome”一词翻译为“欢迎”,但Liferay的缺省主页在中文界面仍然显示的是“Welcome”而不是“欢迎”。检查发现,该词是在数据库表user_中定义的,因此,要直接进入数据库,把user_表中缺省用户(defaultUser=1)的greeting值从“Welcome!”修改为“欢迎访问!”即可。

(2)修改缺省用户所在区域和语言

Liferay在system.properties资源文件中定义了缺省用户所在的国家/地区,语言和时区。我们可以重新定义这些缺省值。把portal项目portal-imp/src目录中的文件system.properties复制到ext项目对应目录中(ext-imp/src),并重命名为system-ext.properties(如果已经存在,先删除之)。然后打开文件进行编辑处理:先把那些不需要修改的参数项删除掉,重新定义如下值:

user.country = CN

user.language = zh_CN

user.timezone =GMT+8

(3)其它缺省参数的定义

Liferay还在portal-imp/src目录的portal.properties文件中定义了其它常用的缺省参数值,同样可以在对应目录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=动态信息,公告,通知,其它

 

以上简单介绍了有关Liferay Portal的应用开发方法。在实际应用中,还需要仔细研究Liferay的程序架构和源码,理解相关技术和规范(特别是JSR-168规范),才能够更好地开发和应用Liferay Portal产品。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值