如何在Plone 3中更改“事件”portlet

时间:2009-08-13 09:47:59

标签: python portlet plone zope

我正在尝试在Plone 3中自定义显示即将发生的事件的“事件”portlet。该portlet的页脚中的“视图”链接转到/ events URL。但我的网站是多语言的,因此URL并不总是正确的。例如,荷兰事件的正确URL应为/ evenementen。

在我的设置中,每种语言使用一个文件夹。 / en包含所有英文内容,/ nl包含所有荷兰语内容,等等。 plone root没有portlet,因此我将“Event”portlet分别添加到/ nl和/ en文件夹中。我在events.pt模板中查看ZMI,它似乎从属性获取URL,但该属性定义在哪里,如何更改它?我在ZMI中找不到portlet配置。以下是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>

那么,我可以在某处更改ZMI中的all_events_link属性吗?如果是这样,在哪里?

作为替代方案,我还尝试添加一个“Collection”portlet,其中包含列出所有事件的集合。但问题是集合portlet不希望显示事件的开始和结束日期。

1 个答案:

答案 0 :(得分:1)

事件portlet使用视图为其提供数据,表达式“view / all_events_link”调用method on that view为其提供链接。您有2个选项可以替换该链接:

  1. 注册您自己的旧类事件portlet,并替换all_events_link方法。这在重度定制选项中,需要Python编码。有关如何实现此目的的一般性指示,请参阅this mail thread

  2. 仅使用portlet渲染器替换模板。马丁·阿斯佩利有documented this method on Plone.org;这只需要一些ZCML配置才能正常工作。然后,您可以复制events.pt模板并将portlet页脚替换为链接到正确位置的页脚。