Python 如何更改;事件“;Plone 3中的portlet

Python 如何更改;事件“;Plone 3中的portlet,python,portlet,plone,zope,Python,Portlet,Plone,Zope,我试图在Plone 3中定制“事件”portlet,它显示即将到来的事件。该portlet页脚中的“视图”链接指向/events URL。但我的网站是多语言的,所以URL并不总是正确的。例如,荷兰赛事的正确URL应该是/evenementen 在我的设置中,每种语言使用一个文件夹/en包含所有英语内容,/nl包含所有荷兰语内容,等等。plone根目录没有portlet,因此我将“Event”portlet分别添加到/nl和/en文件夹中。我在ZMI中查看events.pt模板,它似乎从属性中获取

我试图在Plone 3中定制“事件”portlet,它显示即将到来的事件。该portlet页脚中的“视图”链接指向/events URL。但我的网站是多语言的,所以URL并不总是正确的。例如,荷兰赛事的正确URL应该是/evenementen

在我的设置中,每种语言使用一个文件夹/en包含所有英语内容,/nl包含所有荷兰语内容,等等。plone根目录没有portlet,因此我将“Event”portlet分别添加到/nl和/en文件夹中。我在ZMI中查看events.pt模板,它似乎从属性中获取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中的所有事件链接属性吗?如果是,在哪里


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

事件portlet使用视图为其提供数据,表达式“view/all\u events\u link”调用a为其提供链接。您有2个选项可替换该链接:

  • 注册您自己的事件portlet,将旧的事件portlet子类化,并替换all_events_link方法。这需要大量定制选项,并且需要Python编码。请参阅关于如何实现这一点的一些一般指南

  • 仅用portlet呈现器替换模板。马丁·阿斯佩里;这只需要一些ZCML配置即可工作。然后,您可以复制events.pt模板,并将portlet页脚替换为链接到正确位置的页脚


  • events portlet使用视图为其提供数据,表达式“view/all_events_link”调用a为其提供链接。您有2个选项可替换该链接:

  • 注册您自己的事件portlet,将旧的事件portlet子类化,并替换all_events_link方法。这需要大量定制选项,并且需要Python编码。请参阅关于如何实现这一点的一些一般指南

  • 仅用portlet呈现器替换模板。马丁·阿斯佩里;这只需要一些ZCML配置即可工作。然后,您可以复制events.pt模板,并将portlet页脚替换为链接到正确位置的页脚


  • 谢谢这看起来很有用。我将在周末后测试它。第二种方法有效。我不知道如何更改每种语言的链接,所以我只是将页脚一起从portlet中删除。谢谢。这看起来很有用。我将在周末后测试它。第二种方法有效。我不知道如何更改每种语言的链接,所以我只是将页脚一起从portlet中删除。