我目前正致力于升级为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
有没有人解决过这个问题,愿意帮助我。谢谢!
答案 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