2015-10-20 81 views
3

我試圖製作兼容Plone 4和Plone 5的插件。我遇到的問題是profiles/default XML。製作兼容Plone 4和Plone 5的插件

的Plone 5:我有登記CSS Plone的4 registry.xml:我有一個cssregistry.xml登記CSS

我希望Plone 4中會忽略registry.xml但它把它撿起來然後在安裝過程中在Plone 4中崩潰。是否有解決方案?

回答

5

你可以有多個配置文件指向不同的配置文件目錄(他們在configure.zcml定義),和Plone文檔have examples of how to conditionally evaluate ZCML

<include zcml:condition="have plone-4" package=".package" /> 
<include zcml:condition="not-have plone-4" package=".otherpackage" /> 

還有一個直的having zcml:condition on a configure「如果條件滿足對內容進行評估」。

xmlns:zcml="http://namespaces.zope.org/zcml" 

爲頂級配置:

+2

我通常不使用單獨的子包,但是可以使用相同的方法註冊備用配置文件。例如:https://github.com/RedTurtle/TurtledGazette/blob/94fa38cc0b877a30cd8aec592aeea1ef553cb8a3/Products/PloneGazette/profiles.zcml#L16 –

+0

plone 5有類似的條件嗎?那會更安全 – Danimal

+0

@Danimal:[plone.app.mosaic](https://github.com/plone/plone.app.mosaic/blob/master/src/plone/app/mosaic/browser/configure.zcml)似乎使用'有plone-5',但我沒有Plone 5在這裏仔細檢查。 –

0

你說什麼,當你添加的偉大工程。只需留意任何未來需要此功能的人。