2009-08-13 10 views
1

Ich versuche, das Portlet "Event" in Plone 3 anzupassen, das die bevorstehenden Ereignisse anzeigt. Der Link "Ansicht" in der Fußzeile dieses Portlets wird mit der URL/events verknüpft. Aber meine Seite ist mehrsprachig, so dass die URL nicht immer korrekt ist. Die korrekte URL für niederländische Ereignisse sollte beispielsweise/evenementen lauten.So ändern Sie das Portlet "Event" in Plone 3

In meinem Setup verwende ich einen Ordner pro Sprache./en enthält alle englischen Inhalte,/nl enthält alle niederländischen Inhalte und so weiter. Der Plone-Stamm hat keine Portlets, daher füge ich das Portlet "Event" dem Ordner/nl und/en separat hinzu. Ich suchte im ZMI nach der events.pt-Vorlage und es scheint, dass es die URL von einer Eigenschaft nimmt, aber wo ist diese Eigenschaft definiert und wie kann ich sie ändern? Ich kann die Portlet-Konfigurationen im ZMI nicht finden. Hier ist der Ausschnitt aus 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> 

Also, ich kann irgendwo ändern, dass all_events_link Eigenschaft im ZMI? Wenn ja, wo?

Als Alternative habe ich auch versucht, ein "Collection" -Portlet mit einer Sammlung, die alle Ereignisse auflistet. Das Problem besteht jedoch darin, dass das Sammlungs-Portlet das Start- und Enddatum der Ereignisse nicht anzeigen soll.

Antwort

1

Das Event-Portlet verwendet eine Ansicht, um es mit Daten zu versorgen, und der Ausdruck 'view/all_events_link' ruft method on that view auf, um eine Verbindung herzustellen. Sie haben 2 Möglichkeiten, dass Link zu ersetzen:

  1. Ihr eigenes Ereignis Portlet-Register, das die alten Unterklassen, und ersetzt die all_events_link Methode. Dies in der schweren Anpassungsoption und erfordert Python-Codierung. Einige allgemeine Hinweise dazu finden Sie unter this mail thread.

  2. Ersetzen Sie nur die Vorlage durch einen Portlet-Renderer. Martin Aspeli hat documented this method on Plone.org; Dies erfordert nur einige ZCML-Konfiguration, um zu arbeiten. Sie können dann die Vorlage events.pt kopieren und die Fußzeile des Portlets durch eine mit der richtigen Position verknüpfte ersetzen.

+0

Danke. Das sieht nützlich aus. Ich werde es nach dem Wochenende testen. –

+0

Die zweite Methode funktionierte. Ich konnte nicht herausfinden, wie ich den Link für jede Sprache ändere, also entfernte ich einfach die Fußzeile aus dem Portlet. –