是否可以将Liferay的版本号传递给主题的Velocity模板?

时间:2012-03-08 21:23:49

标签: themes liferay portlet velocity

我目前正致力于升级为Liferay 6.0构建的Liferay主题,并且还需要与Liferay 6.1兼容(长话短说,它需要与两者兼容才能在多个客户端上使用)。

我的理解是各种portlet首选变量的名称已从6.0更改为6.1 - 例如,“portlet-setup-show-borders”现在是camelCased:“portletSetupShowBorders”。由于我的主题中有一些portlet,我需要在6.1中部署主题时更改这些变量的名称,但保持它在6.0中的方式。

我的问题是 - Liferay有一个我可以在主题中访问的变量,它将告诉它当前正在运行的Liferay版本是什么?这会让我的生活变得更轻松。

这是我目前得到的:

$velocityPortletPreferences.setValue("portlet-setup-show-borders", "false")
$velocityPortletPreferences.setValue("group-id", "$group_id")
$velocityPortletPreferences.setValue("article-id", "$toprightArticleId")
$theme.runtime("56_INSTANCE_RIGHT", "", $velocityPortletPreferences.toString())
#set ($VOID = $velocityPortletPreferences.reset())  

以下是我想要完成的一个例子(显然不起作用,但这是我想要做的):

#if ($themeVersion == "6.0")
    $velocityPortletPreferences.setValue("portlet-setup-show-borders", "false")
    $velocityPortletPreferences.setValue("group-id", "$group_id")
    $velocityPortletPreferences.setValue("article-id", "$toprightArticleId")
    $theme.runtime("56_INSTANCE_RIGHT", "", $velocityPortletPreferences.toString())
    #set ($VOID = $velocityPortletPreferences.reset())
#end
#if ($themeVersion == "6.1")
    $velocityPortletPreferences.setValue("portletSetupShowBorders", "false")
    $velocityPortletPreferences.setValue("groupId", "$group_id")
    $velocityPortletPreferences.setValue("articleId", "$toprightArticleId")
    $theme.runtime("56_INSTANCE_RIGHT", "", $velocityPortletPreferences.toString())
    #set ($VOID = $velocityPortletPreferences.reset())
#end

有没有人解决过这个问题,愿意帮助我。谢谢!

1 个答案:

答案 0 :(得分:3)

journal.template.velocity.restricted.variables=
portal-ext.properties {p>你可以使用

#set($pu = $serviceLocator.findService("com.liferay.portal.service.PortalService"))
$pu.getBuildNumber()

在6.0.6的情况下,你将获得6006的6.16你将得到6100(这些是整数)

所以例如

#if ($pu.getBuildNumber() >= 6000 && $pu.getBuildNumber() < 6100)
    this is Liferay 6.0.x
#end

#if ($pu.getBuildNumber() >= 6100 && $pu.getBuildNumber() < 6200)
    this is Liferay 6.1
#end