Come cambiare il portlet “Evento” in Plone 3
Domanda
Sto cercando di personalizzare il portlet "Evento" in Plone 3 che mostra i prossimi appuntamenti. Il link "Visualizza" nel piè di pagina che va portlet all'URL / eventi. Ma il mio sito è multilingue in modo che l'URL non è sempre corretta. Ad esempio, l'URL corretto per gli eventi olandese dovrebbe essere / Evenementen.
Nel mio setup io uso una cartella per ogni lingua. / It contiene tutti contenuti in inglese, / nl detiene tutti i contenuti olandese, eccetera. La radice Plone non ha portlet così aggiungo il portlet "Evento" sia al / nl e / it cartella a parte. Stavo guardando nella ZMI al modello events.pt e sembra che ci vuole l'URL da una proprietà, ma dove è che proprietà definisce e come posso cambiare? Non riesco a trovare le configurazioni portlet nella ZMI. Ecco il frammento dal 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…
</a>
<span class="portletBottomLeft"></span>
<span class="portletBottomRight"></span>
</dd>
Quindi, posso cambiare qualche parte che all_events_link proprietà nella ZMI? Se sì, dove?
In alternativa ho anche tentato di aggiungere un portlet "Collection" con una collezione in cui sono elencati tutti gli eventi. Ma il problema è che il portlet raccolta non vuole indicare le date di inizio e fine per gli eventi.
Soluzione
Il portlet eventi utilizza al fine di fornire con i dati, e l'espressione 'vista / all_events_link' chiama un metodo su quella vista di dotarla di un link. Hai 2 opzioni per sostituire quel link:
-
registrare il proprio portlet evento che le sottoclassi quello vecchio, e sostituisce il metodo all_events_link. Questa in opzione di personalizzazione pesante, e richiede la codifica Python. Vedere questo thread di posta su alcune indicazioni generali su come raggiungere questo obiettivo.
-
sostituire solo il modello con un portlet renderer. Martin Aspeli ha documentato questo metodo su Plone.org ; questo richiede solo un po 'di configurazione ZCML da far funzionare. È quindi possibile copiare il modello events.pt e sostituire il piè di pagina portlet con uno che si collega alla giusta posizione.