正如tittle所说......如何知道某个页面是私有的还是公开的?我需要在自定义主题的速度文件中实现一些逻辑,仅用于私有页面。
我找到了这个页面Access Objects from Velocity,它似乎非常有用,但我需要API的一些帮助,因为我不知道哪个实用工具类有一个我正在查找的方法。
我想在一个解决方法中将我的条件设为主题属性,但我不想让管理员用户依赖
谢谢
答案 0 :(得分:7)
Artem Khojoyan上面的回答就是重点。
但我想补充一些信息。
liferay中的页面由Layout
对象表示。主题模板支持layout
以及主题模板中的更多对象,您可以在课程VelocityVariablesImpl
中查看这些对象。您可以检查velocityContext.put("key","value");
之类的语句,其中key
是您可以在速度模板中使用的变量$key
。
因为$layout
只是Layout
对象,所以你可以在速度中使用这个Layout
对象的所有公共实例方法。
对于每个请求,主题中的$layout
代表当前页面,需要加载。
最后,您可以在portal_normal.vm
或init_custom.vm
或主题中的任何其他*.vm
中执行以下操作:
#if($layout.isPublicLayout())
#*.. do something if it is public ...*#
#else
#*.. do something if it is private ...*#
#end
希望这有帮助。
答案 1 :(得分:3)
#if($layout.isPublicLayout())
//
#else
//
#end
答案 2 :(得分:0)
你也可以使用:
#if($layout.isPublicLayout())
#*.. This is public ...*#
#elseif ($layoutmodel.isprivatelayout())
#*.. This is private ...*#
#end
有关Liferay Interface Layout
的其他方法的详细信息