2014-09-23 96 views
3

正如tittle所說......如何知道一個頁面是私人還是公共?我需要在自定義主題的速度文件中實現一些邏輯,僅用於私人頁面。如何知道Liferay主題中的頁面是私人還是公共?

我發現這個頁面Access Objects from Velocity它看起來很有用,但我需要API的一些幫助,因爲我不知道哪個工具類有一個我正在尋找的方法。

我想在一個解決辦法使我的病情主題屬性,但我不希望從管理員用戶依賴

謝謝上面

回答

7

Artem Khojoyan的答案是點。

但我想補充一些信息。

liferay中的頁面由Layout對象表示。主題模板支持layout以及主題模板中的更多對象,您可以在類VelocityVariablesImpl中查看該對象。您可以檢查velocityContext.put("key","value");等語句,其中key是您可以在速度模板中使用的變量,如$key

因此,因爲$layout不過是Layout對象,所以您可以使用此對象在velocity中的所有公共實例方法。

對於每個請求,$layout in theme代表當前頁面,需要加載。

所以最後你可以做以下的portal_normal.vminit_custom.vm或任何其他*.vm你在主題:

#if($layout.isPublicLayout()) 
    #*.. do something if it is public ...*# 
#else 
    #*.. do something if it is private ...*# 
#end 

希望這有助於。

3
#if($layout.isPublicLayout()) 
    // 
#else 
    // 
#end 
0

可以使用,以及:

#if($layout.isPublicLayout()) 
    #*.. This is public ...*# 
#elseif ($layoutmodel.isprivatelayout()) 
    #*.. This is private ...*# 
#end 

有關其他methodes更多細節的Liferay Interface Layout

相關問題