-->

不能激活(folderish)上的Plone敏捷类型的讨论(Can not activate dis

2019-07-29 05:29发布

我一直在一个基于灵巧Plone的应用。 我创建了一个新的夫妇类型的。 这是我做的对名为“activity_report”的具体内容灵巧型激活评论:

在Plone控制面板

讨论部分我启用了以下内容:

  • 全球启用评论
  • 允许匿名评论

类型部分我选择从下拉列表中的“活动报告”类型下来并启用了“允许评论”选项。

在文件系统

在FTI文件activityreport.xml:

<property name="allow_discussion">True</property>

我已经重新启动实例,甚至重新安装的产品,但我无法激活的灵巧型的评论部分。

值得一提的是,标准型(例如,页)可以讨论模块激活。

有什么我失踪?

Answer 1:

plone.app.discussion目前禁用评论所有容器(见https://dev.plone.org/ticket/11245讨论)。

我用了一个猴子补丁像下面这样在一个项目中短路的正常检查,确保评论是为我folderish内容类型启用:

from Acquisition import aq_inner
from Products.highcountrynews.content.interfaces import IHCNNewsArticle
from plone.app.discussion.conversation import Conversation
old_enabled = Conversation.enabled
def enabled(self):
    parent = aq_inner(self.__parent__)
    if parent.portal_type == 'my_portal_type':
        return True
    return old_enabled(self)
Conversation.enabled = enabled

其中“my_portal_type”是的,当然,你想要的portal_type评论已启用。



Answer 2:

大卫的反应是不准确的。 要monkeypatched类是plone.app.discussion.browser.conversation.ConversationView:

from Acquisition import aq_inner
from plone.app.discussion.browser.conversation import ConversationView
old_enabled = ConversationView.enabled

def enabled(self):
    parent = aq_inner(self.__parent__)
    if parent.portal_type == 'My_type':
        return True
    return old_enabled(self)

它的工作原理为Plone 4.2最少。 然而,由于大卫的提示。



Answer 3:

当大卫和Victor已经指出的那样,你可以重写谈话类的启用方法。 我会建议使用以下方法比猴子打补丁的谈话类清洁了一下:

https://github.com/plone/plone.app.discussion/blob/master/docs/source/howtos/howto_override_enable_conversation.txt

我还添加了支持灵巧类型,以便尽快最近plone.app.discussion,因为有一个新版本,你将不再需要自定义会话班不再:

https://github.com/plone/plone.app.discussion/commit/0e587a7d8536125acdd3bd385e880b60d6aec28e

请注意,此方法支持评论folderish对象。 有没有支持启用/禁用尚未发表评论的内部folderish对象的对象。

如果你希望能够与行为领域/空间/关切换评论:

https://github.com/plone/plone.app.dexterity/commit/0573df4f265a39da9efae44e605e3815729457d7

希望这将使它成为下一个plone.app.dexterity释放以及。



Answer 4:

我解决了configure.zcml中:

<interface interface="Products.CMFPlone.interfaces.INonStructuralFolder" />

<class class="Products.PloneHelpCenter.types.Definition.HelpCenterDefinition">
  <implements interface="Products.CMFPlone.interfaces.INonStructuralFolder" />
</class>

UPDATE:这不是一个好主意。 我曾与失踪添加菜单有此修复程序的每个内容类型的问题。



文章来源: Can not activate discussions on Plone Dexterity types (folderish)