隨筆-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 閱讀(5112) 評論(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寫的比較亂,文檔也很少。不過相信會慢慢改善。

          總目錄稍后會加,等文章到都貼完了。  回復  更多評論
            
          主站蜘蛛池模板: 青川县| 康平县| 泰和县| 梧州市| 尚志市| 思南县| 景泰县| 五大连池市| 镇沅| 三河市| 沙田区| 图片| 绥德县| 徐闻县| 瓦房店市| 彩票| 揭东县| 锦州市| 南宫市| 峨眉山市| 铜鼓县| 道真| 老河口市| 邮箱| 胶南市| 林周县| 阳泉市| 南昌市| 洛浦县| 邮箱| 新巴尔虎右旗| 叶城县| 荃湾区| 运城市| 卓资县| 和顺县| 五家渠市| 正宁县| 丁青县| 恩施市| 都昌县|