目前分類:Liferay (29)

瀏覽方式: 標題列表 簡短摘要
Liferay提供了Staging機制讓我們可以很輕鬆地將內容同步到Production Server,但是如果是客製化Portlet及Entity就得自行處理這部分的程式撰寫。
 
在Liferay 6.1版本中提供了PortletDataHandler這個類別讓我們可以在其中撰寫我們所需要匯入的程式邏輯,基本上是以匯出/匯入Lar檔案的方式再進行擴充,而在Liferay 6.2版本又多衍伸出StagedModelHandler這個類別,讓我們可以針對各個要匯入的資料分門別類易於管理。
 
附件為Fansysoft-Lar-Simple.portlet,包含一個News資料的Crud以及自訂權限Model設定,在這個基礎之上加入Staging同步功能客製化:

squall75726 發表在 痞客邦 留言(1) 人氣()

Liferay的tag<liferay-ui:input-localized name="" xml="" type=""/>可以用來做多國語言的輸入textbox或是富文本編輯器。
 
其中type="editor"便可以將text轉換成編輯器的模式,但是是簡易版的編輯器,若是使用hook可以將這個編輯器改成標準版編輯器,但是尚未確定是否會有任何問題。
 
一般custom portlet的使用方式:

squall75726 發表在 痞客邦 留言(0) 人氣()

Liferay的Notification通知是一個很好用的功能,不但在我們自行開發Portlet時可以引用,配合Json Web Service API還可以達到與其他系統串接的功能,以下紀錄;

 

一、 實作UserNotificationEventHandler - 自行開發Portlet時可直接使用

 

1. 首先創一個Portlet project,在這裡我們可取名為Notification-Demo-portlet

squall75726 發表在 痞客邦 留言(0) 人氣()

在Liferay中進行自定義Sql查詢的方式,除了上一篇的直接使用finderImpl並且定義Sql字串以外,我們還可以使用custom-sql。

使用custom的好處在於我們可以將查詢字串寫在一個xml中,查詢時將關鍵字帶入,其功能就跟finder一樣。

 

以liferay的user資料表來說,如果我今天想要用userId跟screenName來查詢,大致如下;

 

squall75726 發表在 痞客邦 留言(1) 人氣()

開發Liferay時,除了custom-sql可以為我們達成join多張表的查詢之外,其實也可以依照需求利用dynamic query的子查詢查到所需資料,

以下我主要查詢的table為AssetsEntry,配合與其有關連的JournalArticleResource及JournalArticle兩張表做子查詢;

 

使用以上的作法便可再只需要子查詢時,不需要透過join的方式就可達到需求,若要使用join方式則還是需使用custom-sql較為清楚。

http://www.liferay.com/zh/community/forums/-/message_boards/message/1817322 http://www.liferay.com/zh/community/forums/-/message_boards/message/6729269  

squall75726 發表在 痞客邦 留言(0) 人氣()

接續上一篇,這次來實際應用web service API;

首先定義我們的service builder,並且在<entity>的標籤內將remote-service的屬性設定為true,

這樣service builder便會幫我們產生xxxxServiceImpl的系列class,作為web service使用。

接著到xxxxServiceImpl增加我們所需要使用的方法,以前陣子製作的汽車資料範例程式來說;

json1  

squall75726 發表在 痞客邦 留言(0) 人氣()

在Liferay中想要下自定義的SQL指令有兩種方式,一種是使用FinderImpl,另一種則是定義custom SQL XML檔。

若只需要存取一張table,則使用FinderImpl較為簡便;

 

首先在service builder為我們產生的xxx.service.persistence中創建一個class,命名為xxxFinderImpl,

finder1  

squall75726 發表在 痞客邦 留言(0) 人氣()

Liferay提供了好用的<liferay-ui:input-move-boxes>移動選單元件如下;

liferay movebox  

主要功能就是可以塞值至左方或右方選單,並且將其中一邊選單的值保存下來。

基本設定如下;

List<KeyValuePair> rightlist = new ArrayList<KeyValuePair>();

squall75726 發表在 痞客邦 留言(1) 人氣()

在設定一個新的Liferay Portal時,一般會先去更改server.xml這個檔案

設定如下;

 

conf -> server.xml

這裡

squall75726 發表在 痞客邦 留言(0) 人氣()

最近的專案需求,需要在CentOS 6 的環境下安裝Liferay Portal 6.2.1 GA2,搭配Jre 1.6.0_45版本、

資料庫則使用PostgreSQL。

 

首先架設環境,在這裡是先設定一個VM環境,安裝CentOS 6.0。

現在linux系列的作業系統都已有了視覺化介面,非常方便;

squall75726 發表在 痞客邦 留言(0) 人氣()

1. <input>標籤已無法直接傳直至後端,需要在name處加上

<portlet:namespace/>

這樣才可正常傳值。

squall75726 發表在 痞客邦 留言(0) 人氣()

今天必須在Liferay 控制台新增一個客製欄位,讓theme去抓取其中的值並以跑馬燈顯示;

 

首先必須要到控制台的custom fields裡,site的分類底下去新增所需要的客製欄位;

客製欄位1  

 

squall75726 發表在 痞客邦 留言(0) 人氣()

在5.X板就已經有了這個好用的功能,在Liferay service.xml裡定義的remote-service,幾乎都會被轉為JSON提供使用。

 

在5.X版以後的使用法如下;

可以使用普通的html標籤來引用service.js;

<script src="/html/js/liferay/service.js" language="JavaScript"> </script>

or for the extension environment:

squall75726 發表在 痞客邦 留言(0) 人氣()

一般來說要獲取當前的網址會使用themeDisplay.getCurrentURL()之類的方法,但有時候會需要跨站連結,

 

如果有groupId 也就是SiteId的資訊的話,可以用以下這個方法;

 

Group group1 = GroupLocalServiceUtil.getGroup(socialActivity.getGroupId());

squall75726 發表在 痞客邦 留言(0) 人氣()

當遇到is quoted with " which must be escaped when used within the value時,

 

通常是因為在tag裡面用了雙引號,如<c:when test="<%=tabs1.equals("分類1") %>">

這時便會無法辨識,所以要在前後加上雙引號;

<c:when test="<%=tabs1.equals(\"分類1\") %>">

squall75726 發表在 痞客邦 留言(0) 人氣()

Liferay 有多重資料庫的連線功能,可以同時存取不同資料庫的資料表,以下說明;

 

1.建立portal-ext.properties  (\tomcat-7.0.27\webapps\ROOT\WEB-INF\classes)

portal-ext.properties內加入以下內容;

 

squall75726 發表在 痞客邦 留言(0) 人氣()

2/13

創建一個新的portlet時,請打開Liferay-plugin-packages.properties,

portal dependency jars請加入jstl-api跟impl,以後有需要增加的都從這裡添加。

Tlds請加入aui.tld,c.tld,同上

要建立service.xml請在專案上按右鍵-->New-->Liferay Service Builder,輸入相關資訊就可以。

squall75726 發表在 痞客邦 留言(0) 人氣()

Liferay 的 web content有template這個功能可以幫助我們輕鬆得到可以自訂訊息的網頁物件,

例如跑馬燈的訊息乃至圖片輪播的圖片都可以進行自定義,在快速開發簡易功能時很好用,不需自行編寫與資料庫連結的code。

現在來製作一個可以定義多重訊息的跑馬燈,首先開啟web content的Structure

在<root>加入以下;

<dynamic-element name="marqueeText" type="selection_break" index-type="" repeatable="true">

squall75726 發表在 痞客邦 留言(0) 人氣()

在Liferay中匯入Excel基本上跟在Java之中作法一樣;

首先在對應的Jsp頁內一定要有上傳excel檔案的選擇框,接下來就是後端的工作;

 

if ("xls".equals(mimeType) || "xlsx".equals(mimeType)) {

 

squall75726 發表在 痞客邦 留言(1) 人氣()

最近實作了AUI的相簿功能,在這裡紀錄一下使用方法。

 

首先用javascript實作多重上傳欄位,程式碼如下;

 

<aui:script>

squall75726 發表在 痞客邦 留言(0) 人氣()

1 2