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&hellip;
    </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.

Foi útil?

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:

  1. 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.

  2. 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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top