将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)

  • 初始版本

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java编辑并重新运行spring引导单元测试,无需重新加载上下文即可加快测试速度   为什么我不能做演员?   java为什么是线程。join通常用于停止安卓中的线程   java从weblogic服务器调用JSON POST REST服务时收到400:错误请求   java在DeviceAdmin模式禁用时设置身份验证?   java SortedMap的keySet()能否始终安全地强制转换到SortedSet?   安卓 java。lang.NoSuchMethodException可包裹类   java JOGL库安装   javatomcat内存管理   java使用getString()中的变量   java将最小星号设置为评级栏   Java中字符串相等的println()方法。。。它到底是如何工作的?   java如何从文本中输出的数组中放入随机图像