开发者

How do I prevent a content type from appearing in collections?

开发者 https://www.devze.com 2023-02-14 10:42 出处:网络
How do I prevent a specific content type from appearing in collections (smart folders) site wide in Plone 3? I\'ve looked for relevant options in portal_types and the types and search control panel (t

How do I prevent a specific content type from appearing in collections (smart folders) site wide in Plone 3? I've looked for relevant options in portal_types and the types and search control panel (turning off the content type for searching doesn't seem to have an effect on collections).

Specific situation: I recently installed plone.app.discussion on a Plone 3.3.5 installation and now comments appear in all the collections. We want to remove them from th开发者_开发百科e collections.

Thanks.


Portal Types criterion is based on plone.app.vocabularies.ReallyUserFriendlyTypes, a vocabulary factory defined in http://svn.plone.org/svn/plone/plone.app.vocabularies/trunk/plone/app/vocabularies/types.py.

If you patch BAD_TYPES by adding discussion comments you'll exclude them from Collections, but you'll also hide them from anywhere this vocabulary factory is used. As far as I know they are also used in contentrules and search control panel.

You can patch BAD_TYPES by adding these lines into __init__.py file of a custom package:

def initialize(context):
"""Initializer called when used as a Zope 2 product."""
    from plone.app.vocabularies import types
    types.BAD_TYPES = types.BAD_TYPES + ('Discussion Item',)


If you don't have too many collections, the simplest solution might be to add criteria to exclude comments. You can easily get a list of all your collections:

http://your-site/search?portal_type%3Alist=Topic

If you have a lot of collections, you might need to write some custom code to do this. It doesn't have to be a product or anything serious, just some code you can run to add an 'exclude comments' criteria to existing collections. I would start by looking around line 507 of http://svn.plone.org/svn/collective/Products.ATContentTypes/branches/1.3/Products/ATContentTypes/tests/test_criteria.py


You can add criteria to your collections stating which content types you want to display. You can not (without patching/hacking) choose which to exclude.

I.e collections have can have type whitelilsts not blacklists.

0

精彩评论

暂无评论...
验证码 换一张
取 消