我们有一个主题应用程序,其中包含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
设置时,它也可以用于其他主题。
答案 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,您可以将主题中重复使用的代码放入主题中并从主题中访问它。