我正在为Liferay网站上的Web内容显示创建一组自定义结构(和匹配模板)。
为了让网站维护者更方便,我希望其中一个模板默认禁止外观边框。
我在网上找到了文档和示例,展示了如何禁用主题中嵌入的portlet的边框,但我没有运气在WCD模板中应用这些技术。
这是我在主题中看到的代码:
#set ($VOID = $velocityPortletPreferences.setValue("portlet-setup-show-borders", "false"))
#set ($VOID = $theme.runtime("customportletname_WAR_pluginname", "", $velocityPortletPreferences.toString()))
$velocityPortletPreferences.reset()
以下是我将其应用于模板的方法:
#set ($VOID = $velocityPortletPreferences.setValue("portlet-setup-show-borders", "false"))
<div class="custom-wcd wcdnormal">
<h2>$title.getData()</h2>
$content.getData()
</div>
$velocityPortletPreferences.reset()
我并不感到惊讶它不起作用 - 没有什么类似于将prefs应用于portlet的$ theme.runtime调用,但我也不知道$ theme.runtime是否适用于此图层,如果是,则提供什么值作为第一个参数。我怀疑最后这个是最有可能的选择,但我不知道如何识别$ theme.runtime的WCD portlet,也不知道如何跟踪这些信息(我不是任何一个Java开发者)
只是为了澄清:disable borders on all portlets by default } }
感谢任何建议。
答案 0 :(得分:3)
简单直接:
$velocityPortletPreferences.setValue("portletSetupShowBorders", "false")
$velocityPortletPreferences.setValue("languageIds", "pt_BR,en_US")
$velocityPortletPreferences.setValue("displayStyle", "1")
$theme.runtime("82", "", $velocityPortletPreferences.toString())
$velocityPortletPreferences.reset()
此示例用于嵌入语言portlet(Portlet ID = 82),直接在.vm主题文件之一中,在我的情况下,此代码在navigation.vm上。
答案 1 :(得分:2)
Liferay属性/偏好名称有时会发生变化。本周我创建了一个钩子来创建一个站点,用包含portlet的页面填充它,并为CMS配置一组默认的结构,模板和文章。我也不得不为我的portlet关闭边框,并且需要将以下首选项名称设置为false来实现: portletSetupShowBorders
我在java代码中执行了以下操作:
PortletPreferences prefs = PortletPreferencesFactoryUtil.getLayoutPortletSetup(page, portletInstanceId);
prefs.setValue("groupId", String.valueOf(page.getGroupId()));
prefs.setValue("articleId", article.name());
prefs.setValue("portletSetupShowBorders", "false");
prefs.store();
从Liferay日记帐模板中,您应该能够使用以下代码来翻转将显示使用模板的文章的portlet边框:
#set ($portletPreferencesService = $serviceLocator.findService('com.liferay.portal.service.PortletPreferencesLocalService'))
#set ($companyId = $getterUtil.getLong($companyId))
#set ($ownerId = 0) ## PortletKeys.PREFS_OWNER_ID_DEFAULT
#set ($ownerType = 3) ## PortletKeys.PREFS_OWNER_TYPE_LAYOUT
#set ($plid = $getterUtil.getLong($request.theme-display.plid))
#set ($portletId = $request.theme-display.portlet-display.id)
#set ($portletPreferences = $portletPreferencesService.getPreferences($companyId, $ownerId, $ownerType, $plid, $portletId))
#set ($VOID = $portletPreferences.setValue('portlet-setup-show-borders', 'false'))
#set ($VOID = $portletPreferences.store())
请记住,您还需要将以下行添加到portal-ext.properties:
journal.template.velocity.restricted.variables=