在通过主题搜索设置portlet默认外观问题的解决方案之后,我在WEB-INF/liferay-look-and-feel.xml
中尝试了以下内容:
<setting configurable="true"
key="portlet-setup-show-borders-default"
type="checkbox"
value="false"
/>
然而,它似乎不适用于Liferay 7.0 GA3,并且已经没有地方可以寻找解决方案。
我的要求是默认的portlet行为,其中所有decaration都被禁用,即边框和标题以及其他任何内容。
值得一提的是我正在使用新的主题生成器/ Gulp构建管道。任何指针都非常赞赏。
答案 0 :(得分:0)
除了问题中提到的设置注释或从portlet.ftl底部删除,如下所示:
<div class="${portlet_content_css_class}">
<#--<#if portlet_display.isShowBackIcon()>-->
<#--<a class="icon-monospaced portlet-icon-back text-default" href="${portlet_back_url}" title="<@liferay.language key="return-to-full-page" />">-->
<#--<@liferay_ui["icon"]-->
<#--icon="angle-left"-->
<#--markupView="lexicon"-->
<#--/>-->
<#--</a>-->
<#--</#if>-->
<#--<h2 class="portlet-title-text">${portlet_title}</h2>-->
${portlet_display.writeContent(writer)}
</div>
这应该删除所有portlet标题,这样你就不能在使用这个主题的网站上拥有一个标题的portlet,这正是我想要的。
答案 1 :(得分:0)
此方法存在一个小概念问题:WEB-INF / liferay-look-and-feel.xml上的设置条目仅用于为您提供配置选项,无论您实际如何实现其行为。您提出的解决方案有效,但它不是由于设置条目 - 您的模板似乎没有使用它,请尝试通过UI在主题配置中切换它...
在不更改模板的情况下,避免在UI中隐藏功能,您可以使用装饰器。喜欢
<portlet-decorator id="borderless" name="Borderless">
<default-portlet-decorator>true</default-portlet-decorator>
<portlet-decorator-css-class>portlet-borderless</portlet-decorator-css-class>
</portlet-decorator>
在同一个文件中的这个配置可以让你创建一个CSS类,如下所示:
.portlet-borderless {
.portlet-content-editable {
border-style: none;
}
.portlet-content {
background: rgba(255,255,255,.90);
}
}
此类将应用于所有portlet,因为它在xml文件中标记为默认值。
答案 2 :(得分:0)
如果其他人偶然发现了这个问题,Liferay 7中的Portlet装饰器已取代此功能。您可以在文档中阅读更多相关信息:https://dev.liferay.com/develop/tutorials/-/knowledge_base/7-0/portlet-decorators