2014-10-07 63 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。

因此,繼承是在構建時,而不是在運行時,因爲你可能已經想過。

希望這會有所幫助。