我们如何在同一场战争中分享Liferay主题中的设置值

时间:2017-02-17 13:08:53

标签: liferay liferay-theme

我们有一个主题应用程序,其中包含2个主题包。我们需要将设置从一个主题共享到另一个主题。

<theme id="visual" name="visual-theme" >
        <settings>
            <setting key="service-unavailable" configurable="true" type="checkbox" value="false"></setting>
        </settings>
    </theme>

    <theme id="visual-home" name="visual-theme-home" >
        <settings>
            <setting key="h1-title-value" configurable="true" type="textarea" value="" ></setting>
            <setting key="service-unavailable" configurable="true" type="checkbox" value="false"></setting>
            <setting key="service-unavailable-message" configurable="true" type="textarea" value="Unavailable service"></setting>
        </settings>
    </theme>

我们需要将service-unavailable-message设置作为默认值提供给visual-theme,这样当从visual-theme-home设置时,它也可以用于其他主题。

2 个答案:

答案 0 :(得分:1)

设置是每个主题,而不是每个Web应用程序,因此主题A的某些区域的设置对主题A的任何内容都没有影响。您将不得不使用另一种技术来实现此目的。

使用主题设置时,您可以按站点或每页设置这些值。在后一种情况下,这会引入另一种歧义。

所以你有一个选择

<theme id="visual" name="visual-theme" >
  <settings>
    <setting key="service-unavailable" configurable="true" type="checkbox" value="false"></setting>
    <setting key="service-unavailable-message" configurable="true" type="textarea" value="Unavailable service"></setting>
  </settings>
</theme>

<theme id="visual-home" name="visual-theme-home" >
  <settings>
    <setting key="h1-title-value" configurable="true" type="textarea" value="" ></setting>
    <setting key="service-unavailable" configurable="true" type="checkbox" value="false"></setting>
    <setting key="service-unavailable-message" configurable="true" type="textarea" value="Unavailable service"></setting>
  </settings>
</theme>

...并在需要时复制邮件。

另一种选择是将service-unavailable-message移动到另一个地方(作为更一般的配置值,或从某些服务中查找。只是不作为主题设置。

答案 1 :(得分:0)

您没有提到您使用的Liferay版本。如果有机会使用Liferay 7.0,请查看themelets,您可以将主题中重复使用的代码放入主题中并从主题中访问它。