2011-09-19 88 views
1

我開始使用Liferay Portal,我有兩個基本需求,我希望通過Liferay實現。通過API向Liferay添加內容

  1. 是否可以通過API級別向CMS添加內容?我想插入一些「來自代碼」的數據。
  2. 更重要。如何實現這樣的情況,即對於每個創建的用戶,都會生成自己的主頁,並在其上生成一些預定義的模板元素?

我曾嘗試谷歌到目前爲止,但我沒有覺得有幫助。也許有些關鍵字?


經過對專門用於服務和ServiceBuilder的文檔的一些分析後,我意識到這不是我想要的。

讓我來展示一個基於Websphere的例子。 在Websphere中,我們有大量的EJB組件可用於執行某些操作,與門戶交換信息,易於使用。 Liferay中沒有任何類似的機制不涉及Web服務?在this page from the documentation

回答

1

展望:它聞起來像一個SOAP接口(他們提到某種文件上傳服務的,​​我讀過)。

你會發現一些應該給出可用web服務列表的url示例。

+0

我不確定我是否理解。您是否意指通過執行Liferay提供的一些Web服務可以實現這些「程序性」活動? – leramy

+0

這就是我的理解。實施SOAP客戶端並使用Liferay Web服務來添加內容(從任何地方)。看看Apache的軸(庫)和工具soapUI(用於玩弄liferay服務) –

1

對於數字1,你可以使用的一個:

JournalArticleLocalServiceUtil.addArticle() 

方法以編程方式從一個portlet添加Liferay的網頁內容。如果您下載Liferay Portal Source,您可以看到這些方法的結構。

對於2號,可以創建他們預先配置的portlet(通過插件-SDK)頁面模板,然後使用API​​以編程方式創建使用的一個頁面:

LayoutLocalServiceUtil.addLayout() 

方法。

如果您對這些評論有任何更具體的疑問,我希望這可以幫助!

4

我對這類問題的建議是看看sevencogs-hook源代碼。這個鉤子的結構基本上只是一個運行一次的長腳本,它建立了一個包含用戶,站點,頁面,內容等的完整演示站點。代碼只運行一次(在第一次部署之後),然後再也不會再運行。沒有(明顯的)條件,沒有上下文理解等。

你基本上可以簡單地貫穿一切,並且 - 在該過程中 - 瞭解如何創建和定位內容(以及頁面,圖像,博客文章等)在Liferay的頁面上。

該鉤子訪問Java API,通過Webservices可以使用非常類似的API。基本上Liferay的所有portlet都使用相同的API來完成他們的業務。

編輯:其他信息,以保持這個答案寶貴/當前:Sevencogs已停產,但舊版本仍然可用(來源&二進制)。 API稍有改變,因此編譯/運行它需要一些工作。 James Falkner has blogged關於剩菜和吸取的經驗教訓 - 這些片段是從sevencogs中提取的,幷包含相關代碼片段以與API一起工作。

+0

這是很好的提示 – denu

+0

從Liferay 6.2開始,一些舊的API(在博客文章中提到)也被棄用(如JournalTemplateLocalServiceUtil) 。而是使用動態數據映射框架(DDM)。 – Elbonian