Как предотвратить появление типа контента в коллекциях?

Как мне предотвратить появление определенного типа контента в коллекциях (смарт-папках) на всем сайте в Plone 3? Я искал соответствующие параметры в portal_types, а также в типах и панели управления поиском (отключение типа контента для поиска, похоже, не влияет на коллекции).

Конкретная ситуация: я недавно установил plone.app.discussion в установку Plone 3.3.5, и теперь комментарии появляются во всех коллекциях. Мы хотим удалить их из коллекций.

Спасибо.


person Arryn    schedule 02.03.2011    source источник
comment
На самом деле это может быть ошибка, я считаю, что она не должна отображаться в коллекциях, если вы удалили их из результатов поиска. Может быть, есть веская причина, почему это не так, но я не понимаю, почему они должны, поскольку коллекция - это сохраненный результат поиска.   -  person limi    schedule 02.03.2011


Ответы (3)


Критерий типов портала основан на plone.app.vocabularies.ReallyUserFriendlyTypes, фабрике словарей, определенной в http://svn.plone.org/svn/plone/plone.app.vocabularies/trunk/plone/app/Dictionaryies/types.py.

Если вы исправите BAD_TYPES, добавив комментарии обсуждения, вы исключите их из Коллекций, но вы также скроете их отовсюду, где используется эта фабрика словаря. Насколько мне известно, они также используются в правилах контента и в панели управления поиском.

Вы можете исправить BAD_TYPES, добавив эти строки в файл __init__.py пользовательского пакета:

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',)
person marcosfromero    schedule 02.03.2011
comment
Исправление кода: BAD_TYPES - это список, а не кортеж: types.BAD_TYPES = types.BAD_TYPES + ['Discussion Item',] - person Arryn; 31.03.2011

Если у вас не слишком много коллекций, самым простым решением может быть добавление критериев для исключения комментариев. Вы можете легко получить список всех своих коллекций:

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

Если у вас много коллекций, вам может потребоваться написать для этого специальный код. Это не обязательно должен быть продукт или что-то серьезное, просто код, который вы можете запустить, чтобы добавить критерий исключения комментариев к существующим коллекциям. Я бы начал с просмотра строки 507 http://svn.plone.org/svn/collective/Products.ATContentTypes/branches/1.3/Products/ATContentTypes/tests/test_criteria.py

person kojiro    schedule 02.03.2011

Вы можете добавлять критерии в свои коллекции, определяющие, какие типы контента вы хотите отображать. Вы не можете (без патчей / взлома) выбрать, какие исключить.

То есть коллекции могут иметь белые списки типов, а не черные списки.

person Geir Bækholt    schedule 03.03.2011