随笔-86  评论-767  文章-3  trackbacks-3

第五节  Liferay Portal的品质

Liferay Portal支持个性化的皮肤和外观设计,并将此作为品质单独管理。

2.5.1  什么是品质

品质是Liferay Portal的外观,包括题材和色彩设计两个部分。题材主要影响Portlet窗口的样式和Portal的整体效果,包括Portlet边框格式、功能按钮、Portal页面效果等等。色彩设计主要影响PortalCSS样式效果。

Liferay Portal默认定义了多种题材效果和色彩设计效果。使用者可以在“品质选项卡中很容易的选择自己满意的品质。

2.5.2  品质和PortletPortal的关系

品质跟PortletPortal的呈现效果有很大的关系。通常应该根据Portlet内容选择适当的品质即题材和色彩设计。

题材对Portal的影响主要体现在背景和整体风格上面,以及Portlet和其他功能菜单的布局位置。色彩设计主要影响Portal的字体大小以及颜色等效果。

题材主要控制Portlet生成的窗口的样式效果,包括边框效果、标题样式等等。色彩主要控制Portlet窗口的字体效果,包括字体大小、字体颜色等等。

选择合适的题材和色彩设计对于Portal页面的整体呈现效果有明显的影响。如下图:
图2.5.2-1.jpg
图2.5.2-2.jpg

  定义个性化的品质

用户登录Portal系统之后,点击功能菜单上的“品质,进入品质定制页面。选择适当的题材和色彩设计,相应的品质效果立即生效。

返回桌面查看品质效果。

使用者可以在二次开发的时候定义自己的品质,只要按照规范,在部署描述文件中定义可用的品质,Liferay Portal就可以自动调用。如下图:

图2.5.3-1.jpg

第六节  Liferay Portal的部署描述文件

跟所有的Web应用一样,Liferay Portal采用多个XML部署描述文件,来初始化部署信息,规范操作模式,比如Portlet的初始化信息、可用的Portlet列表、Portlet所属角色和用户组等等。通过这些部署描述文件,Liferay Portal可以在启动的时候自动加载Portlet,根据需要生成所需的Portlet页面。普通的Web应用,也可以很方便的转换成可部署的Portlet。这种实现也是JSR168所规定的。

2.6.1  web.xml

web.xml是所有Java Web应用的部署描述文件。其正式的规范由http://java.sun.com/dtd/web-app_2_3.dtd 定义。

       与其他普通Web应用相比,Liferay PortalPortlet 应用还需要在web.xml中增加如下内容:

a、监听器:

      

       com.Liferay.portal.servlet.PortletContextListener

      

这个要求web 服务器监听所有跟Portlet有关的请求信息,并将监听到的内容交给Liferay PortalPortlet容器处理。

bPortlet Servlet映射:

      

              yourPortlet

              com.liferay.portal.servlet.PortletServlet

             

                     Portlet-class

                     full.name.of.yourPortlet

             

              0

      

       。。。。。。。。。。。。。。。。。。。。。。。。。

      

              yourPortlet

              /yourPortlet/*

      

其中,servlet-name为部署的servlet名称;init-param中定义自己的Portlet类,这个param-name要跟portlet.xmlliferay-portlet.xmlliferay-display.xml中的portlet-name节点值一致。

c、标签库映射:

      

              http://java.sun.com/Portlet

              /WEB-INF/tld/liferay-Portlet.tld

      

定义了这个标签库映射,在JSP文件中才可以使用诸如在内的一些特定的Portlet标签。

如果在应用中有用到其他的元素,可以按照web.xml规范加入到相应的位置当中。

Liferay Portal默认的liferay应用,由于使用了StrutsHibernateSpring在内的多个开源框架,所以{PORTAL_HOME}/liferay/WEB-INF/web.xml文件会相对复杂些。

在自定义的Portlet,可以使用getPortletConfig().getInitParameter(“ ”)getPortletConfig().getParameterNames(“”)两个方法来取得在web.xml中定义的参数。

2.6.2  portlet.xml

portlet.xml用来定义Portlet的诸如部署名称、初始化参数、支持模式、resource bundle等普通的初始化信息,包括:portlet-namedisplay-nameportlet-classinit-paramexpiration-cathesupportsportlet-infosecurity-role-ref等等。其正式的规范请参考:http://java.sun.com/xml/ns/Portlet/Portlet-app_1_0.xsd 。根目录为portlet-webapp

portlet-namePortlet的规范名称,在Portlet应用中必须唯一,主要用在Portlet部署和映射中。

display-name:供部署工具调用的Portlet简称,在Portlet应用中必须唯一。

portlet-classPortlet对应的类,这个类必须直接或者间接的继承javax.Portlet.GenericPortlet

init-param:初始化参数,有成对的子元素。通常定义Portlet相应模式下可用的JSP页面。

expiration-cathe:定义Portlet加载允许最长的过期时间,以秒为单位。-1代表用不过期。

supports:定义Portlet支持的模式。所有的Portlet都必须支持浏览模式。

其他的元素含义请参照:http://java.sun.com/xml/ns/Portlet/Portlet-app_1_0.xsd

Web 应用中有多个的Portlet时,可以统一的在Portletxml中定义一组的元素。

      

              TestPortlet

              TestPortlet

              com.educhina.portal.FirstPortlet

             

                     view-jsp

                     /view.jsp

             

             

                     edit-jsp

                     /edit.jsp

             

              0

             

                     text/html

             

             

                     text/html

                     edit

             

             

                     educhina Test Portlet

                     educhina Test Portlet

                     educhina Test Portlet

             

             

                     guest

             

      

 

2.6.3  liferay-Portlet.xml

定义Portlet默认可用的用户组、默认模板、是否支持多个实例等,规范由http://www.liferay.com/dtd/liferay-Portlet-app_3_5_0.dtd 定义。

liferay-portlet.xml主要包含单独或者成组的。其中,下包含等子元素,在应用中必须唯一,且要跟portlet.xml相同;下包含成对的子元素。具体的元素含义请查看上述dtd定义。

      

              TestPortlet

              TestPortlet

              true

              true

      

      

              administrator

              Administrator

      

      

              guest

              Guest

      

      

              power-user

              Power User

      

      

              user

              User

      

2.6.4  liferay-display.xml

定义Portlet默认的所属类别。Liferay PortalPortlet实行按类别管理和划分用户权限。正如我们在用户策略中提到的,可以制定某个类别可用的用户组、用户和角色,方便权限控制。Liferay-display.xml规范由http://www.liferay.com/dtd/liferay-display_3_5_0.dtd 定义。

Liferay-display.xml中,下成组的描述了可用的类别,其中portlet元素的id必须与liferay-portlet.xmlportlet-name保持一致,且在应用中唯一。

      

             

      

2.6.5  liferay-layout-templates.xml

定义Portal可用的布局。正如我们在布局与品质中提到的那样,Portal采用tpl文件来规划桌面的布局。liferay-layout-templatesxml采用成组的layout-template来构建一个可用的布局列表。此xml的规范由http://www.liferay.com/dtd/liferay-layout-templates_3_6_0.dtd 来定义。

本文采用Liferay Portal默认的布局,暂时不需要定义自己的布局,故不准备深入讨论。读者有兴趣可以自己查看相关资料。

      

              /html/layouttpl/1_columntpl

      

      

              /html/layouttpl/2_columns_itpl

      

      

              /html/layouttpl/3_columnstpl

      

       1-2-1 Columns">

              /html/layouttpl/1_2_1_columnstpl

      

2.6.7  liferay-look-and-feelxml

定义Portal可用品质的模板、图片、样式表等等,定义完毕后,Portal可以通过“布局与品质”管理工具来进行品质的切换。Liferay-look-and-feel.xml规范由http://www.liferay.com/dtd/liferay-look-and-feel_3_5_0.dtd 定义。

本文采用Liferay Portal默认的品质,不准备对品质的自定义深入探讨。有兴趣的读者可以查看相关资料。

 

posted on 2005-10-20 16:01 eamoi 阅读(5098) 评论(3)  编辑  收藏 所属分类: Java

评论:
# re: 【原创】Liferay Portal二次开发指南(7) 2005-10-20 21:56 | 江南白衣@ITO
hello,这几篇指南加篇总索引好么,方便加入精华区(如果一篇一篇的加七篇好麻烦呢)  回复  更多评论
  
# re: 【原创】Liferay Portal二次开发指南(7) 2005-10-21 00:12 | Dennis
liferay 我最近才用過

它只是看起來好而已
內裏的問題很多, 和 source code 也極亂.....
除此之外最大問題是說明文件不足, i18n 不良....



PS.
layout-templates 不是整頁的 template, 只是 portlet aggregate 用的
look and feel 也不是 template, 只是類似 windows 的 theme 而已
而且很難寫



liferay 這玩意
"用" 是可以, 但只限它完成度比較高的剖份
"寫"........準備惡夢吧.......


我看要等它一兩年, 大約 4.5 版就差不多可以用了  回复  更多评论
  
# re: 【原创】Liferay Portal二次开发指南(7) 2005-10-21 08:36 | eamoi
现在的版本确实存在不少的问题,code写的比较乱,文档也很少。不过相信会慢慢改善。

总目录稍后会加,等文章到都贴完了。  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航: