将plone 4相关项viewlet反向移植到plone 3
collective.relateditems的Python项目详细描述
简介
此产品仅对plone 3执行操作。它将plone 4相关内容返回到old 扑通三声。不要在PLONE 4上安装这个。真正地。
如果且仅当您有一个要兼容的产品时,才需要此软件包 plone 3和plone 4,保持内容的视图模板为plone4样式。
产品详细信息
在plone 4中,最有问题的变化之一是从 共同的观点,取而代之的是更灵活的观点。
通常每个plone 3内容视图都包含如下代码:
... <div metal:use-macro="here/document_relateditems/macros/relatedItems"> show related items if they exist </div> ...
删除此代码并将其转换为viewlet是一个巨大的改变。但是这是一个问题 仍在考虑plone 3兼容性的开发人员:
- 如果我们保留“plone 3样式”模板(如上所述),我们将看到一个加倍的相关内容区域 扑通一声4。
- 如果我们从模板中删除相关内容部分,在plone 3中就看不到相关内容 (所以我们删除了部分兼容性)。
但我们可以做得更好。这个产品提供了一个与plone viewlet(如plone 4 do)兼容的相关项 使用plone 3,保持plone 3 css样式。
你需要的是更新你的模板到plone 4布局(删除显式相关项区域),但是 使其与本产品兼容。
第三方产品指南
如果您想修复已经使用plone 4相关项样式的第三方产品,那么您不需要 在plone 3上使用时,您只需修复构建:
将collective.relateditems添加到您的鸡蛋中
将这段代码添加到.zcml中(显式地放在您的一个包中,或者使用zcml-additional):
<include package="collective.relateditems" /> <class class="your.product.content.YourContentClass"> <implements interface="collective.relateditems.interfaces.IRelatedItemsEnabledContent"/> </class>
请注意,您不需要更改第三方代码中的任何内容。
您拥有的产品指南
如果你是一个产品开发人员,你想让你的产品与plone 4完全兼容,但是 PLONE3,你也可以选择隐藏给你的用户所有的配置困难。 你需要改变你的代码。
首先,只有在 扑通声3环境。常见的方法是在setup.py:
中检查python版本>>> import os, sys ... >>> install_requires = ['setuptools', ... 'Products.CMFPlone', ... # other dependencies ... ] ... >>> if sys.version_info < (2, 6): ... install_requires.append('collective.relateditems')
那么产品定义:
>>> setup(name='your.product', ... # more ... install_requires=install_requires, ... #more ... )
之后,您需要正确定义configure.zcml:
<configure zcml:condition="installed collective.relateditems"> <include package="collective.relateditems" /> <class class="your.product.content.YourContentClass"> <implements interface="collective.relateditems.interfaces.IRelatedItemsEnabledContent"/> </class> </configure>
您还可以使您的YourContentClasspython类实现IRelatedItemsEnabledContent,但是 您仍然需要记住,plone 4环境将没有这个接口可用。
就这些。
更改日志
0.1.0(2011-12-29)
- 初始版本