如何从liferay中的自定义主题继承

时间:2014-10-07 15:08:08

标签: themes liferay

例如,首先,我创建了一个继承自'_style'的自定义主题,这称为'theme1'。然后我想创建另一个继承自'theme1'的主题。那可能吗?如果是这样,它如何在幕后工作?

提前感谢。

3 个答案:

答案 0 :(得分:1)

你的问题引起了我的兴趣,所以我试图寻找一个解决方案,但结果并不完全令人满意,我解释了我的发现:

  1. 我创建了一个新的inherit-theme插件项目,当他问我父主题时,我选择了默认选项(_styled
  2. 继续inherit-theme/build.xml并使用<property name="theme.parent" value="_styled" />更改<property name="theme.parent" value="my-custom-parent-theme" />,其中my-custom-parent-theme是我开发的先例项目主题。
  3. 尝试保存,您可以在控制台中看到这样的错误(或多或少):

    file not found: C:\myPc\...\inherit-theme\my-custom-parent-theme\build.xml
    
  4. 他自己搜索父母的build.xml,所以我试图将整个父项目复制/粘贴到孩子身上。

  5. 构建inherit-theme并惊喜!有用 ! CSS,JS和模板文件将复制到各自的文件夹中。

  6. 但是在我看来这不是一个好的解决方案,它只不过是每个文件的手动副本,而且由此产生的项目很重,因为它必须包含整个父文件,至少第一个构建/部署是相当慢...另一方面,有可能没有更好的解决方案。

    结论: 我不知道它能带来多少好处,这个测试非常快,可能会继续开发出现问题。

    所有测试均在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中描述了这个问题,应该仍适用于较新版本。