将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 JList侦听器找不到符号   多点触摸跨平台java应用程序(Windows、Mac和Linux(Ubuntu)(可能是Android))   在UnitTest中找不到java类加载器资源   java当我尝试在Eclipse中运行我的minecraft mod时,我总是遇到这个错误,这是什么意思?   内部有一个同步块的静态方法,在java中阻止整个类?   不支持java操作:具有BillableStatus的费用在采购中应具有AccountBasedExpenseLineDetail行的CustomerRef   java运行时常量池GC集合   java无法解析配置“:app:\u debugApk”的所有依赖项。找不到名为“default”的配置   在GCP计算引擎中托管Neo4j的java   java如何从BroadcastReceiver更新片段选项卡?   线程“main”组织中的java异常。冬眠注释异常:@org。冬眠注释。表引用未知表:ProductForPractice   在Java/Groovy中嵌入处理   java Android REST教程/示例项目   java我可以在同一测试中在一个模拟器上启动应用程序,在另一个模拟器上启动移动浏览器吗?   java如何更改通知横幅的方向?   安卓 Java帮助实现Firebase授权   if else之后的rs.next()中出现java错误?