例如,首先,我创建了一个继承自'_style'的自定义主题,这称为'theme1'。然后我想创建另一个继承自'theme1'的主题。那可能吗?如果是这样,它如何在幕后工作?
提前感谢。
答案 0 :(得分:1)
你的问题引起了我的兴趣,所以我试图寻找一个解决方案,但结果并不完全令人满意,我解释了我的发现:
inherit-theme
插件项目,当他问我父主题时,我选择了默认选项(_styled
)inherit-theme/build.xml
并使用<property name="theme.parent" value="_styled" />
更改<property name="theme.parent" value="my-custom-parent-theme" />
,其中my-custom-parent-theme
是我开发的先例项目主题。尝试保存,您可以在控制台中看到这样的错误(或多或少):
file not found: C:\myPc\...\inherit-theme\my-custom-parent-theme\build.xml
他自己搜索父母的build.xml
,所以我试图将整个父项目复制/粘贴到孩子身上。
构建inherit-theme
并惊喜!有用 ! CSS,JS和模板文件将复制到各自的文件夹中。
但是在我看来这不是一个好的解决方案,它只不过是每个文件的手动副本,而且由此产生的项目很重,因为它必须包含整个父文件,至少第一个构建/部署是相当慢...另一方面,有可能没有更好的解决方案。
结论: 我不知道它能带来多少好处,这个测试非常快,可能会继续开发出现问题。
所有测试均在Liferay 6.2上进行。
答案 1 :(得分:1)
是的,这是可能的。
它的作用是在构建时它采用父主题(theme1
)文件并创建新主题。因此,如果您更改了portal_normal.vm
中的theme1
,那么在构建主题时,您的子主题会更新portal_normal.vm
。现在,如果您想进一步更改,可以使用更新的portal_normal.vm
。同样,它将从父主题中获取JS和CSS等其他所有文件。
所以继承只是在构建时,而不是在你可能想到的运行时。
希望这有帮助。
答案 2 :(得分:0)
我在Liferay 6.0的this blog article中描述了这个问题,应该仍适用于较新版本。