制作插件Plone 4和Plone 5兼容

hie*_*asd 3 plone

我正在努力制作一个兼容Plone 4和Plone 5的插件.我遇到的问题是配置文件/默认XML.

Plone 5:我有一个用于注册CSS Plone 4的registry.xml:我有一个用于注册CSS的cssregistry.xml

我希望Plone 4会忽略registry.xml,但它会在Plone 4的安装过程中将其拾起然后崩溃.有解决方案吗?

Ulr*_*arz 6

您可以将多个配置文件指向不同的配置文件目录(它们已定义configure.zcml),Plone文档中有如何有条件地评估ZCML的示例:

<include zcml:condition="have plone-4" package=".package" />
<include zcml:condition="not-have plone-4" package=".otherpackage" />
Run Code Online (Sandbox Code Playgroud)

还有一个直的"如果条件满足对内容进行评估" zcml:condition上配置.

  • 我通常不使用单独的子包,但您可以使用相同的方法来注册替代配置文件.示例:https://github.com/RedTurtle/TurtledGazette/blob/94fa38cc0b877a30cd8aec592aeea1ef553cb8a3/Products/PloneGazette/profiles.zcml#L16 (2认同)
  • 注意:Plone 4和Plone 5都有'plone-4'.请参阅https://github.com/plone/Products.CMFPlone/blob/5.0/Products/CMFPlone/meta.zcml#L13.所以你应该使用'have plone-5'和'not-have plone-5'. (2认同)