Como alterar o portlet “Evento” em Plone 3
Pergunta
Eu estou tentando personalizar o portlet "Evento" em Plone 3, que mostra os próximos eventos. O link "vista" no rodapé do que portlet vai para o URL eventos /. Mas o meu site é multi-lingual para que URL não é sempre correta. Por exemplo, a URL correta para eventos holandeses deve ser / evenementen.
Na minha configuração eu uso uma pasta por idioma. / En contém todo o conteúdo Inglês, / nl contém todo o conteúdo Holandês, etcetera. A raiz do Plone não tem portlets para que eu adicionar o portlet "Evento" tanto para a pasta en / nl e / separadamente. Eu estava olhando na ZMI no modelo events.pt e parece que leva a URL de uma propriedade, mas onde é que define propriedade e como posso mudar isso? Não consigo encontrar as configurações de portlets na ZMI. Aqui está o trecho de 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>
Assim, posso em algum lugar mudar isso all_events_link propriedade na ZMI? Se sim, onde?
Como alternativa eu ??também tentou adicionar um portlet "Coleção" com uma coleção que lista todos os eventos. Mas o problema é que o portlet coleção não quer mostrar as datas de início e de término para os eventos.
Solução
Os eventos portlet usos vista a fornecer-lhe os dados, e a expressão 'visão / all_events_link' chama de método em que a visão para fornecê-lo com um link. Você tem 2 opções para substituir esse link:
-
Registre seu próprio portlet evento que subclasses o antigo, e substitui o método all_events_link. Esta na opção de personalização pesado, e requer Python codificação. Veja esta discussão correio em algumas indicações gerais sobre como conseguir isso.
-
Substitua apenas o modelo com um processador portlet. Martin Aspeli tem documentado este método em Plone.org ; isso só requer alguma configuração ZCML para começar a trabalhar. em seguida, você pode copiar o modelo events.pt e substituir o rodapé portlet com um que links para o local certo.