2014-10-07 62 views
0

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

在此先感谢。

回答

0

我已经在Liferay 6.0的this blog article中描述了这个问题,应该仍然适用于较新的版本。

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和模板文件被复制到它们各自的文件夹中。

但在我看来,这不是一个很好的解决方案,它比每一个文件的手动副本更小,而且生成的项目是沉重的,因为它必须包含整个家长和至少第一构建/部署非常缓慢......另一方面,可能不存在更好的解决方案。

结论: 我不知道它可以带来多少好处,这个测试非常快,也许会有问题继续发展。

所有的测试都在Liferay 6.2上

1

是的,这是可能的。

它在构建时需要父主题(theme1)文件并创建您的新主题。所以,如果你改变了在你的theme1中说portal_normal.vm,那么当你构建你的主题的时候,你的孩子主题需要更新portal_normal.vm。因此,如果您想进一步更改,现在可以使用更新后的portal_normal.vm。同样,它将采用其他所有文件,如父主题中的JS和CSS。

因此,继承是在构建时,而不是在运行时,因为你可能已经想过。

希望这会有所帮助。