如何知道Liferay主题中的页面是私有的还是公共的?

时间:2014-09-23 16:14:14

标签: liferay liferay-6 velocity liferay-theme

正如tittle所说......如何知道某个页面是私有的还是公开的?我需要在自定义主题的速度文件中实现一些逻辑,仅用于私有页面。

我找到了这个页面Access Objects from Velocity,它似乎非常有用,但我需要API的一些帮助,因为我不知道哪个实用工具类有一个我正在查找的方法。

我想在一个解决方法中将我的条件设为主题属性,但我不想让管理员用户依赖

谢谢

3 个答案:

答案 0 :(得分:7)

Artem Khojoyan上面的回答就是重点。

但我想补充一些信息。

liferay中的页面由Layout对象表示。主题模板支持layout以及主题模板中的更多对象,您可以在课程VelocityVariablesImpl中查看这些对象。您可以检查velocityContext.put("key","value");之类的语句,其中key是您可以在速度模板中使用的变量$key

因为$layout只是Layout对象,所以你可以在速度中使用这个Layout对象的所有公共实例方法。

对于每个请求,主题中的$layout代表当前页面,需要加载。

最后,您可以在portal_normal.vminit_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

的其他方法的详细信息