Two new how-tos added (only rough outlines yet).
svn path=/plone.app.discussion/trunk/; revision=51575
This commit is contained in:
parent
87700f3810
commit
66799d2d31
60
docs/source/howtos/howto_override_enable_conversation.txt
Normal file
60
docs/source/howtos/howto_override_enable_conversation.txt
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
|
||||||
|
configure.zcml::
|
||||||
|
|
||||||
|
<configure
|
||||||
|
xmlns="http://namespaces.zope.org/zope"
|
||||||
|
xmlns:browser="http://namespaces.zope.org/browser"
|
||||||
|
xmlns:plone="http://namespaces.plone.org/plone"
|
||||||
|
xmlns:grok="http://namespaces.zope.org/grok"
|
||||||
|
i18n_domain="freitag.behavior.allowdiscussion">
|
||||||
|
|
||||||
|
<!-- Override plone.app.discussion's conversation view -->
|
||||||
|
<browser:page
|
||||||
|
name="conversation_view"
|
||||||
|
for="plone.dexterity.interfaces.IDexterityContent"
|
||||||
|
class=".conversation.ConversationView"
|
||||||
|
permission="zope2.View"
|
||||||
|
/>
|
||||||
|
|
||||||
|
</configure>
|
||||||
|
|
||||||
|
conversation.py
|
||||||
|
|
||||||
|
from zope.component import queryUtility
|
||||||
|
|
||||||
|
from plone.registry.interfaces import IRegistry
|
||||||
|
|
||||||
|
from Acquisition import aq_base
|
||||||
|
from Acquisition import aq_chain
|
||||||
|
from Acquisition import aq_inner
|
||||||
|
|
||||||
|
from Products.CMFCore.utils import getToolByName
|
||||||
|
from Products.CMFCore.interfaces import IFolderish
|
||||||
|
|
||||||
|
from Products.CMFPlone.interfaces import IPloneSiteRoot
|
||||||
|
from Products.CMFPlone.interfaces import INonStructuralFolder
|
||||||
|
|
||||||
|
from plone.app.discussion.interfaces import IDiscussionSettings
|
||||||
|
|
||||||
|
|
||||||
|
class ConversationView(object):
|
||||||
|
|
||||||
|
def enabled(self):
|
||||||
|
context = aq_inner(self.context)
|
||||||
|
|
||||||
|
# Fetch discussion registry
|
||||||
|
registry = queryUtility(IRegistry)
|
||||||
|
settings = registry.forInterface(IDiscussionSettings, check=False)
|
||||||
|
|
||||||
|
# Check if discussion is allowed globally
|
||||||
|
if not settings.globally_enabled:
|
||||||
|
return False
|
||||||
|
|
||||||
|
# Check if discussion is allowed on the content object
|
||||||
|
if context.allow_discussion is not None:
|
||||||
|
return context.allow_discussion
|
||||||
|
|
||||||
|
# Check if discussion is allowed on the content type
|
||||||
|
portal_types = getToolByName(self, 'portal_types')
|
||||||
|
document_fti = getattr(portal_types, context.portal_type)
|
||||||
|
return document_fti.getProperty('allow_discussion')
|
@ -0,0 +1,94 @@
|
|||||||
|
=================================================
|
||||||
|
How to set discussion settings with generic setup
|
||||||
|
=================================================
|
||||||
|
|
||||||
|
This document explains how to set plone.app.discussion's settings with a
|
||||||
|
generic setup profile.
|
||||||
|
|
||||||
|
plone.app.discussion uses plone.app.registry ...
|
||||||
|
|
||||||
|
registry.xml::
|
||||||
|
|
||||||
|
<registry>
|
||||||
|
<record field="anonymous_comments" interface="plone.app.discussion.interfaces.IDiscussionSettings" name="plone.app.discussion.interfaces.IDiscussionSettings.anonymous_comments">
|
||||||
|
<field type="plone.registry.field.Bool">
|
||||||
|
<default>False</default>
|
||||||
|
<description>help_anonymous_comments</description>
|
||||||
|
<required>False</required>
|
||||||
|
<title>label_anonymous_comments</title>
|
||||||
|
</field>
|
||||||
|
<value>False</value>
|
||||||
|
</record>
|
||||||
|
<record field="captcha" interface="plone.app.discussion.interfaces.IDiscussionSettings" name="plone.app.discussion.interfaces.IDiscussionSettings.captcha">
|
||||||
|
<field type="plone.registry.field.Choice">
|
||||||
|
<default>disabled</default>
|
||||||
|
<description>help_captcha</description>
|
||||||
|
<title>label_captcha</title>
|
||||||
|
<vocabulary>plone.app.discussion.vocabularies.CaptchaVocabulary</vocabulary>
|
||||||
|
</field>
|
||||||
|
<value>disabled</value>
|
||||||
|
</record>
|
||||||
|
<record field="globally_enabled" interface="plone.app.discussion.interfaces.IDiscussionSettings" name="plone.app.discussion.interfaces.IDiscussionSettings.globally_enabled">
|
||||||
|
<field type="plone.registry.field.Bool">
|
||||||
|
<default>False</default>
|
||||||
|
<description>help_globally_enabled</description>
|
||||||
|
<required>False</required>
|
||||||
|
<title>label_globally_enabled</title>
|
||||||
|
</field>
|
||||||
|
<value>False</value>
|
||||||
|
</record>
|
||||||
|
<record field="moderation_enabled" interface="plone.app.discussion.interfaces.IDiscussionSettings" name="plone.app.discussion.interfaces.IDiscussionSettings.moderation_enabled">
|
||||||
|
<field type="plone.registry.field.Bool">
|
||||||
|
<default>False</default>
|
||||||
|
<description>help_moderation_enabled</description>
|
||||||
|
<required>False</required>
|
||||||
|
<title>label_moderation_enabled</title>
|
||||||
|
</field>
|
||||||
|
<value>False</value>
|
||||||
|
</record>
|
||||||
|
<record field="moderator_email" interface="plone.app.discussion.interfaces.IDiscussionSettings" name="plone.app.discussion.interfaces.IDiscussionSettings.moderator_email">
|
||||||
|
<field type="plone.registry.field.ASCIILine">
|
||||||
|
<description>help_moderator_email</description>
|
||||||
|
<required>False</required>
|
||||||
|
<title>label_moderator_email</title>
|
||||||
|
</field>
|
||||||
|
<value />
|
||||||
|
</record>
|
||||||
|
<record field="moderator_notification_enabled" interface="plone.app.discussion.interfaces.IDiscussionSettings" name="plone.app.discussion.interfaces.IDiscussionSettings.moderator_notification_enabled">
|
||||||
|
<field type="plone.registry.field.Bool">
|
||||||
|
<default>False</default>
|
||||||
|
<description>help_moderator_notification_enabled</description>
|
||||||
|
<required>False</required>
|
||||||
|
<title>label_moderator_notification_enabled</title>
|
||||||
|
</field>
|
||||||
|
<value>False</value>
|
||||||
|
</record>
|
||||||
|
<record field="show_commenter_image" interface="plone.app.discussion.interfaces.IDiscussionSettings" name="plone.app.discussion.interfaces.IDiscussionSettings.show_commenter_image">
|
||||||
|
<field type="plone.registry.field.Bool">
|
||||||
|
<default>True</default>
|
||||||
|
<description>help_show_commenter_image</description>
|
||||||
|
<required>False</required>
|
||||||
|
<title>label_show_commenter_image</title>
|
||||||
|
</field>
|
||||||
|
<value>True</value>
|
||||||
|
</record>
|
||||||
|
<record field="text_transform" interface="plone.app.discussion.interfaces.IDiscussionSettings" name="plone.app.discussion.interfaces.IDiscussionSettings.text_transform">
|
||||||
|
<field type="plone.registry.field.Choice">
|
||||||
|
<default>text/plain</default>
|
||||||
|
<description>help_text_transform</description>
|
||||||
|
<title>label_text_transform</title>
|
||||||
|
<vocabulary>plone.app.discussion.vocabularies.TextTransformVocabulary</vocabulary>
|
||||||
|
</field>
|
||||||
|
<value>text/plain</value>
|
||||||
|
</record>
|
||||||
|
<record field="user_notification_enabled" interface="plone.app.discussion.interfaces.IDiscussionSettings" name="plone.app.discussion.interfaces.IDiscussionSettings.user_notification_enabled">
|
||||||
|
<field type="plone.registry.field.Bool">
|
||||||
|
<default>False</default>
|
||||||
|
<description>help_user_notification_enabled</description>
|
||||||
|
<required>False</required>
|
||||||
|
<title>label_user_notification_enabled</title>
|
||||||
|
</field>
|
||||||
|
<value>False</value>
|
||||||
|
</record>
|
||||||
|
</registry>
|
||||||
|
|
Loading…
Reference in New Issue
Block a user