正如tittle所說......如何知道一個頁面是私人還是公共?我需要在自定義主題的速度文件中實現一些邏輯,僅用於私人頁面。如何知道Liferay主題中的頁面是私人還是公共?
我發現這個頁面Access Objects from Velocity它看起來很有用,但我需要API的一些幫助,因爲我不知道哪個工具類有一個我正在尋找的方法。
我想在一個解決辦法使我的病情主題屬性,但我不希望從管理員用戶依賴
謝謝上面
正如tittle所說......如何知道一個頁面是私人還是公共?我需要在自定義主題的速度文件中實現一些邏輯,僅用於私人頁面。如何知道Liferay主題中的頁面是私人還是公共?
我發現這個頁面Access Objects from Velocity它看起來很有用,但我需要API的一些幫助,因爲我不知道哪個工具類有一個我正在尋找的方法。
我想在一個解決辦法使我的病情主題屬性,但我不希望從管理員用戶依賴
謝謝上面
Artem Khojoyan的答案是點。
但我想補充一些信息。
liferay中的頁面由Layout
對象表示。主題模板支持layout
以及主題模板中的更多對象,您可以在類VelocityVariablesImpl
中查看該對象。您可以檢查velocityContext.put("key","value");
等語句,其中key
是您可以在速度模板中使用的變量,如$key
。
因此,因爲$layout
不過是Layout
對象,所以您可以使用此對象在velocity中的所有公共實例方法。
對於每個請求,$layout
in theme代表當前頁面,需要加載。
所以最後你可以做以下的portal_normal.vm
或init_custom.vm
或任何其他*.vm
你在主題:
#if($layout.isPublicLayout())
#*.. do something if it is public ...*#
#else
#*.. do something if it is private ...*#
#end
希望這有助於。
#if($layout.isPublicLayout())
//
#else
//
#end
可以使用,以及:
#if($layout.isPublicLayout())
#*.. This is public ...*#
#elseif ($layoutmodel.isprivatelayout())
#*.. This is private ...*#
#end
有關其他methodes更多細節的Liferay Interface Layout