LifeRay培訓講義3-LifeRay Porlet插件2.pptx [修復的]_第1頁
LifeRay培訓講義3-LifeRay Porlet插件2.pptx [修復的]_第2頁
LifeRay培訓講義3-LifeRay Porlet插件2.pptx [修復的]_第3頁
LifeRay培訓講義3-LifeRay Porlet插件2.pptx [修復的]_第4頁
LifeRay培訓講義3-LifeRay Porlet插件2.pptx [修復的]_第5頁
已閱讀5頁,還剩46頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、開發Portlet插件開發主題模板/布局模板插件Liferay ThemeLiferay Theme的概覽和練習. .Liferay Layout Liferay Layout TemplateTemplate的概覽和練習. .高級Theme, Layout Theme, Layout Topics, Best Topics, Best Practices.Practices.開發 Hook 插件自定義Portlets(Portlets(自定義 Properties)Properties)登錄后創建cookiecookie自定義語言自定義LiferayLiferay核心JSPsJSPs覆蓋Te

2、rms of UseTerms of Use開發開發 EXT Plugins EXT Plugin概覽 繼承用戶管理 覆蓋Struts Actions高級話題高級話題 Spring in Liferay AUI 使用Liferay Web Services 開發策略總結總結主題模板主題模板理解主題及其結構理解主題的標記語言、CSS和JSAlloyUI的使用lookAndFeel文件理解模板的慣例實踐例子理解主題及其結構創建工程主題結構可以看到不包含任何代碼編譯和部署理解主題及其結構Liferay的缺省Theme有兩個最重要 _unstyled有完整的主題需要的所有缺省的Velocity模板和圖

3、片,但沒有CSS。CSS文件在,但是沒有內容,僅僅有描述。 _styled只包括基本的CSS風格,以及頁面風格的截圖。Liferays 缺省主題稱為Classic是_styled theme的擴展 理解主題及其結構_diffs:存放自己代碼的地方css:該主題的樣式文件images:主題的圖片文件javascript:主題所需的javascript文件templates:主題的velocity模版文件或freemark或jsp理解主題的標記語言、CSS和JS缺省的標記文件理解主題的標記語言、CSS和JS缺省的lifeRay頁面結構通過CSS來確定相應的風格理解主題的標記語言、CSS和JS使用C

4、SS10理解主題的標記語言、CSS和JS使用JS全局的js頁面的js$layout.getTypeSettingsProperties().getProperty(javascript-1)$layout.getTypeSettingsProperties().getProperty(javascript-2)$layout.getTypeSettingsProperties().getProperty(javascript-3)AlloyUI的使用AlloyUI作為js的庫組件庫良好的設計AlloyUI的使用Liferay的客戶化jsLiferay.AutoFieldsLiferay.Col

5、orPickerLiferay.LanguageLiferay.NoticeLiferay.PanelLiferay.UploadLiferay.UtillookAndFeel文件liferay-look-and-feel.xml限制使用模板的公司修改缺省的路徑模板語言修改模板的條件設置設置權限和角色色彩模板14理解模板的慣例瀏覽器兼容性引擎兼容性CSS選擇器兼容性理解模板的慣例瀏覽器兼容性瀏覽器兼容性實踐例子創建項目修改css部署和運行布局模板布局模板創建Layout項目修改tpl文件縮略圖的修改部署和運行實踐Hook插件Hook插件什么是hookHook可以做什么自定義Portlets(自

6、定義 Properties)覆蓋Terms of Use登錄后創建cookie自定義語言自定義Liferay核心JSPsHook是什么是用于重寫或覆蓋Liferay的一些默認方法或頁面。為開發提供了一種在不直修改Liferay核心源碼的情況下修改Liferay核心功能的方法。熱部署像portletsportlets等一樣簡單可以隨意的在工程中增刪使用公開的APIAPI接口,便于升級有獨立的類加載器Hook與EXTEXT插件有以下的優點可以對任何東西進行客戶化與portalportal運行在相同的類加載器中必須重啟無法取消部署Hook可以做什么覆蓋事件處理程序語言包liferay工程的portl

7、et JSP內容覆蓋perties里面的屬性配置覆蓋liferay的services里面的方法Liferay的Model監聽程序24創建工程創建hook工程編寫liferay-hook.xml:25修改屬性哪些可以修改liferay-hook_6_1_0.dtdliferay-hook_6_1_0.dtd特點該配置文件中有些屬性的值是可以有多個的,例如:login.events.prelogin.events.pre但是有些屬性的值是唯一的,例如:terms.of.use.requiredterms.of.use.required26修改屬性實踐:修改terms of us

8、er修改liferay-hook.xmlliferay-hook.xml增加perties文件,修改屬性值部署和驗證27修改portal的事件屬性Properties中的多值屬性application.startup.eventsapplication.startup.events代表了portalportal啟動的時候,會調用的類通過實現這些類來獲取特定的功能修改portal的事件屬性三類事件屬性:event激發了ActionSimpleActionSimpleAction簡單ActionAction,這一類行為不依賴于任何liferay

9、liferay和客戶之間的預先的交互行為。ActionAction這一類依賴于HttpServletRequestHttpServletRequest和HttpServletResponseHttpServletResponse。因此不適合在程序啟動時候使用,可以在login.events.prelogin.events.pre等中使用SessionActionSessionAction依賴于 HttpSession HttpSession修改portal的事件屬性修改啟動事件修改portal的事件屬性登陸創建cookiepublic void run(HttpServletRequest r

10、eq, HttpServletResponse res) throws ActionException try long companyId = PortalUtil.getCompanyId(req); long userId = PortalUtil.getUserId(req); String domain = PropsUtil.get(session.cookie.domain); String cookieValue = companyId= + companyId + ,userId= + userId; Cookie cookie = new Cookie(TRAINING_C

11、OOKIE, cookieValue); if (Validator.isNotNull(domain) cookie.setDomain(domain); cookie.setPath(StringPool.SLASH); res.addCookie(cookie); catch (Exception e) throw new ActionException(e); 修改portal的監聽屬性支持重寫value.object.listener.*屬性允許你增加自己需要的客戶化針對liferay中任何實體的監聽器場景如你在任何新的blogblog新建的blogblog的時候都需要發一封emai

12、lemail監聽器要實現接口:com.liferay.portal.model.ModelListener修改portal的監聽屬性監聽事件onBeforeCreateonBeforeCreateonAfterRemoveonAfterRemoveonBeforeRemoveonBeforeRemoveonBeforeUpdateonBeforeUpdateonAfterUpdateonAfterUpdatevalue.object. .liferay.portlet.blogs.model.BlogsEntry= com.inkwell.liferay.portlet.blogs.NewBl

13、ogEntryListener修改語言屬性修改語言屬性實踐修改使用條款修改啟動事件修改用戶登陸事件修改語言屬性自定義核心jsp可以修改任何核心的JSP配置編寫jspjsp如何利用已有的如何利用已有的jsp內容內容修改edit.jsp實踐Ext插件EXT插件EXT Plugin概覽繼承用戶管理覆蓋Struts ActionsEXT插件簡介Ext Plugin提供擴展Liferay非常強大的方法,它只用在當其它所有插件都不能滿足項目的需要的時候,自定義使用它不受限制。決定使用Ext插件之前,你必須懂得使用如此強大的工具的代價(Ext允許使用內部API甚至覆蓋提供的Liferay源碼),當使用Ext

14、時及更新部署時一定要慎重考慮并進一步核實是否可以用portlet、Hooks或Web插件替代。采用Ext插件開發一般情況1) 定制perties2) 定制 Struts Actions3) 定制 Liferay的Spring文件聲明的接口的實現4) 添加JSP頁面只能通過portal properties文件采用Ext 插件去改變(一定要檢查是否能能過Hook插件去修改)5) 直接覆蓋一個類(不推薦,除非十分必要)EXT插件簡介工程目錄結構:完全是項目的鏡像ext-impl/src: ext-impl/src: 主要存放pertie

15、perties、用戶實現類以及當需要修改覆蓋LiferayLiferay源碼portal-impl.jarportal-impl.jar文件時修改的類ext-lib/global: ext-lib/global: 主要存放類庫* *.jar.jar文件,當部署ExtExt插件時,首先應將此目錄下jarjar包拷貝到應用服務器里相應目錄下(此目錄很少用,一般采用存放到下面目錄里)EXT插件簡介ext-lib/portal: ext-lib/portal: 這里主要存放用戶編寫代碼需要用到的jarjar包存放位置ext-service/src: ext-service/src: 存

16、放在這里類可供其它插件調用。當Build service.xml Build service.xml 生成的所有ServiceService接口都存放在這個目錄,而且這個目錄將存放覆蓋portal-servivce.jarportal-servivce.jar的類ext-web/docroot: ext-web/docroot: 主要包含WebWeb應用一些配置文件及JSPJSP頁面OtherOther: ext-util-bridges,ext-util- ext-util-bridges,ext-util-java,ext-util-taglibjava,ext-util-taglib僅僅

17、在高級場合用到,大多數場合可以忽視這些目錄。EXT插件簡介主要配置文件的作用portal-ext.porperties: portal-ext.porperties: 被用來可以直接覆蓋LiferayLiferay的任何配置文件,甚至那些不能被HookHook鉤子插件覆蓋的,這個文件將被替代服務應用服務器的任何perties文件,這個文件涉及到數據連接,系統補丁等等。EXT插件簡介portal-ext.xml: portal-ext.xml: 被用來覆蓋已定義的Liferay portletLiferay portlet,首

18、先應從LiferayLiferay源碼中的portal-constom.xmlportal-constom.xml將所有的描述portletportlet拷貝到portal-ext.xmlportal-ext.xml文件中,然后再進行相應的修改。Liferay-portal-ext.xml: Liferay-portal-ext.xml: 與portal-portal-ext.xmlext.xml很類似,但是額外定義liferayliferay元素,從liferayliferay源碼中liferay-portal.xmlliferay-portal.xml拷貝所有的描述portletportl

19、et,然后作相應修改。struts-config-ext.xml struts-config-ext.xml 和 tiles-defs- tiles-defs-ext.xmlext.xml: 用戶創建自己的struts actionstruts action在這里定義EXT插件簡介高級配置文件的作用ext-impl/src/META-INF/ext-model-ext-impl/src/META-INF/ext-model-hints.xmlhints.xml:覆蓋LiferayLiferay核心portletsportlets使用數據模塊域默認配置,這個配置文件決定怎樣表單去創建或修改每個被

20、提交的模塊ext-impl/src/META-INF/ext-ext-impl/src/META-INF/ext-spring.xml: spring.xml: 覆蓋LiferayLiferay使用的SpringSpring配置文件和任何它的PortletsPortlets,可以為serviceservice提供數據源EXT插件簡介ext-impl/src/content/Language-ext-impl/src/content/Language-ext_ext_* *.properties: .properties: 國際化文件ext-impl/src/META-INF/portal-lo

21、g4j-ext-impl/src/META-INF/portal-log4j-ext.xmlext.xml:可以覆蓋log4jlog4j配置文件ext-ext-impl/src/com/liferay/portal/jcr/jackraimpl/src/com/liferay/portal/jcr/jackrabbit/dependencies/repository-bbit/dependencies/repository-EXT插件簡介ext.xmlext.xml: 覆蓋JackrabbitJackrabbit庫ext-web/docroot/WEB-INF/portlet-ext-web/

22、docroot/WEB-INF/portlet-ext.xmlext.xml: 覆蓋LiferayLiferay中聲明的核心PortletsPortlets,最常用的改變PortletsPortlets用戶角色ext-web/docroot/WEB-INF/liferay-ext-web/docroot/WEB-INF/liferay-portlet-ext.xmlportlet-ext.xml:覆蓋LiferayLiferay中聲明的核心PortletsPortlets,涉及liferay-portlet-liferay-portlet-app_6_0_0.dtdapp_6_0_0.dtd所有詳細選項,小心使用這個文件,由于這個文件能設置核心portletsportlets某些值47EXT插件簡介ext-web/docroot/WEB-INF/liferay-ext-web/docroot/WEB-INF/liferay-display.xmldisplay.xml: 這個文件將extext顯示在“ “添加應用” ”里顯示名

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論