将Plone 4相关项目视图组件移植到Plone 3
项目描述
简介
此产品仅为Plone 3开发,它将Plone 4的“相关内容”视图组件移植到旧版Plone 3。请勿在Plone 4上安装此产品。真的。
如果您有一个希望与Plone 3和Plone 4兼容的产品,并且希望保持内容视图模板为Plone 4风格,那么您可能需要此软件包。
产品详情
Plone 4中进行的最大问题之一是删除了常规视图中的相关内容区域,用更灵活的视图组件替换。
通常,每个Plone 3内容视图都包含如下代码的一部分
... <div metal:use-macro="here/document_relateditems/macros/relatedItems"> show related items if they exist </div> ...
删除此代码并将其转换为视图组件是一个巨大的变化。然而,这对仍关注Plone 3兼容性的开发者来说是一个问题
如果我们保持“Plone 3风格”模板(如上所述),我们将在Plone 4中看到一个重复的相关内容区域。
如果我们从我们的模板中删除相关内容部分,我们将在Plone 3中看不到相关内容(因此我们删除了部分兼容性)。
但我们可以做得更好。此产品为Plone提供了一个与Plone 3兼容且具有Plone 4风格的“相关项目”视图组件。
您需要更新您的模板以使用Plone 4布局(删除显式的相关项目区域),但使其与此产品兼容。
第三方产品指南
如果您想修复一个已经使用Plone 4相关项目样式的第三方产品,以便在Plone 3上使用时不再显示相关内容,您只需修复您的buildout即可
将 collective.relateditems 添加到您的eggs
将以下代码添加到.zcml文件中(明确地添加到您的一个包中,或者使用zcml-additional)
<include package="collective.relateditems" /> <class class="your.product.content.YourContentClass"> <implements interface="collective.relateditems.interfaces.IRelatedItemsEnabledContent"/> </class>
请注意,您不需要修改第三方代码内的任何内容。
您自己的产品的指南
如果您是产品开发者,并且希望您的产品完全兼容Plone 4,同时也兼容Plone 3,您还可以选择隐藏所有配置困难给用户。您需要更改您的代码。
首先,当您处于Plone 3环境中时,您需要确保您的产品基于collective.relateditems。常见的方法是在您的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>
您还可以使您的YourContentClass Python类实现IRelatedItemsEnabledContent,但您仍然需要记住,Plone 4环境将不会提供此接口。
就这些。
变更日志
0.1.0 (2011-12-29)
首次发布
项目详情
collective.relateditems-0.1.0.tar.gz的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | a4cacac673b0986a198621d957715189e6174211a15abfe59dbecc8597cf6f2c |
|
MD5 | 99cfa7cf98447e174bee73f65837b592 |
|
BLAKE2b-256 | c388f7e0f4958fac84be2c4c44d3f53073089e30c22a4335f38755a0a1bece0e |