2011-03-14 33 views
1

只是想知道是否可以在運行時而不是配置時爲頁面分配主題?我的意思是同一頁面顯示不同的主題,取決於某些條件。在運行時設置Liferay Portal頁面的主題(與配置時間相比)?

我想要做的是這樣的:我有三頁:「第1頁」,「第2頁」和「註冊頁面」。 「頁面1」和「頁面2」是可從導航菜單訪問的普通頁面。 「第1頁」和「第2頁」有不同的主題。 「註冊頁面」在導航菜單中不可見,但在「頁面1」和「頁面2」中都有鏈接。我希望「註冊頁面」在從「頁面1」訪問時以「頁面1」的主題和從那裏訪問時的「頁面2」的主題顯示。

很明顯,我可以創建兩個版本的「註冊頁面」不同的主題,但實際上我有大約十個主題(實際上是主題變體)和大約五個頁面,如「註冊頁面」。

我使用Liferay門戶EE 5.2.5

-k6ps

回答

1

簡短的答案是,一個portlet不是一個網頁,並通過時間顯示portlet中的主題已經確定所以你不能在一個portlet中完成它。很抱歉,如果這對你很明顯,但我只是在解決問題。

更長的答案是,因爲Liferay的設計是在定製的基礎上設計的,任何事情都是可能的,這取決於它是如何完成的。在這種情況下,我最好的猜測是,在Liferay servlet構建頁面之前需要啓動一些內容,並通過portal.properties文件查看指定的擴展點servlet.service.events.pre。首先,你需要一種方法來存儲初始頁面選擇,但是一旦你有了,你可以在你的自定義類中讀取它並調整該實例的主題。也許。

我猜你會被迫將主題選擇存儲在HttpSession中,但也有可能您可以將URL中的主題選擇作爲HTTP參數傳遞,甚至可以使用HTTP REFERRER標頭價值來找到他們來自哪裏。

推薦?

+0

謝謝'我會檢查這:) – k6ps 2011-03-17 09:31:56