我正在编辑一个Liferay主题。通过编辑portal_normal.vm,我想有条件地显示或隐藏组件
#if ($is_welcome_page)
<span class="lang">
$taglibLiferay.language("fm",null,"languageId",1)
<br>
<div class="my-menu">
...... lots of irrelevant stuff here
</div>
</span>
#end>
如果当前页面是Portal的欢迎页面,我怎样才能使$is_welcome_page
变量成为现实?
我想我可以得到友好的Url并检查它,但我不确定我该怎么做。任何工作代码都将非常感谢!
编辑:使用Liferay 6.1.0,如果有帮助
答案 0 :(得分:2)
通常,每页自定义主题是一种不好的做法(主题应该是全局的或针对特定网站自定义)。要正确地执行此操作,您应该只在主站点上添加语言portlet,而不是在主题模板中对其进行硬编码。
无论如何,如果你真的想这样做,你可以访问layout
对象(直接或通过$layout = $theme.getLayout()
),它在Liferay中是一个页面的表示(例如它有{ {1}}方法)。检查Liferay Wiki以获取可从Velocity访问的所有变量的列表,您可以使用许多其他属性,例如getFriendlyURL()
。
这是一个主题自定义,所以一个好的做法是将所有自定义设置放在主题设置中。您可以在Liferay's documentation中了解如何操作。
答案 1 :(得分:1)
我做到了,感谢@KrzysztofGołębiowski
#set($testPageName = $theme.getLayout().getFriendlyURL())
#set($layout = $theme.getLayout())
#set($currPageName = $layout.getFriendlyURL())
#set($isWelcomPage = $currPageName == "/home")
#if ($isWelcomPage)
<span class="lang">
$taglibLiferay.language("fm",null,"languageId",1)
<br>
#end