Как изменить портлет событий в Plone 3

Я пытаюсь настроить портлет «Событие» в Plone 3, который показывает предстоящие события. Ссылка «просмотр» в нижнем колонтитуле этого портлета ведет на URL-адрес / events. Но мой сайт многоязычный, поэтому URL-адрес не всегда правильный. Например, правильный URL-адрес для голландских событий должен быть / evenementen.

В моей настройке я использую одну папку для каждого языка. / en содержит все содержимое на английском языке, / nl - все содержимое на голландском языке и т. д. В корне plone нет портлетов, поэтому я добавляю портлет «Событие» отдельно в папку / nl и / en. Я искал в ZMI шаблон events.pt, и мне кажется, что он берет URL-адрес из свойства, но где это свойство определяет и как его изменить? Я не могу найти конфигурации портлетов в ZMI. Вот фрагмент из plone.app.portlets.portlets / events.pt:

<dd class="portletFooter">
    <a href=""
       class="tile"
       tal:attributes="href view/all_events_link"
       i18n:translate="box_upcoming_events">
            Upcoming events&hellip;
    </a>
    <span class="portletBottomLeft"></span>
    <span class="portletBottomRight"></span>
</dd>

Итак, могу ли я где-нибудь изменить это свойство all_events_link в ZMI? Если да, то где?

В качестве альтернативы я также попытался добавить портлет «Коллекция» с коллекцией, в которой перечислены все события. Но проблема в том, что портлет сбора не хочет отображать даты начала и окончания событий.


person Sander Marechal    schedule 13.08.2009    source источник


Ответы (1)


Портлет событий использует представление для предоставления ему данных, а выражение 'view / all_events_link' вызывает в этом представлении, чтобы предоставить ему ссылку. У вас есть 2 варианта заменить эту ссылку:

  1. Зарегистрируйте свой собственный портлет событий, который является подклассом старого и заменяет метод all_events_link. Это вариант тяжелой настройки и требует кодирования на Python. См. эту почтовую ветку, чтобы узнать, как этого добиться.

  2. Замените только шаблон средством визуализации портлетов. Мартин Аспели задокументировал этот метод на Plone.org; для этого требуется только некоторая конфигурация ZCML. Затем вы можете скопировать шаблон events.pt и заменить нижний колонтитул портлета на тот, который ссылается на нужное место.

person Martijn Pieters    schedule 13.08.2009
comment
Спасибо. Это выглядит полезным. Испытаю после выходных. - person Sander Marechal; 14.08.2009
comment
Второй способ сработал. Я не мог понять, как изменить ссылку для каждого языка, поэтому просто удалил нижний колонтитул из портлета целиком. - person Sander Marechal; 18.08.2009