Как добавлять новый контент на верх папки в Plone-сайте

Можно использовать обработчики событий, чтобы последние созданные NewsItems размещались сверху страницы. Это полезно и для папок в стиле блогов. Этот способ не применим, при редактировании существующего контента.

Добавьте новый subscriber в configure.zcml (вы можете использовать site-policy- или theme-product):

<subscriber 
   for="Products.ATContentTypes.interface.news.IATNewsItem
   zope.app.container.interfaces.IObjectAddedEvent"
   handler=".newsitemmover.moveToTop" />

Создайте новый файл newsitemmover.py, содержащий:

def moveToTop(obj, event):
   """
   Moves Items to the top of its folder
   """
   folder = obj.getParentNode()
   if folder != None:
       folder.moveObjectsToTop(obj.id)

Перезапустите Zope.

Есть некоторая сложность в выборе правильных интерфейсов для подписчика subscriber. Имейте ввиду, что IObjectAddedEvent вызывается несколько раз при добавлении NewsItem. В данном случае, это не принципиально, так как элемент не получится разместить выше, чем он уже есть.

Оригинал статьи starzel.de, перевод КОМТЕТ komtet.ru

Вам также может помочь