Come posso verificare se si tratta della homepage di un sito Web Plone usando ZPT?
-
19-08-2019 - |
Domanda
Voglio cambiare l'intestazione del mio sito web solo se non è la homepage. Esiste un'espressione tal: condizione per quello?
Ho letto questo e non riesco a trovare quello che sto cercando ...
grazie!
Soluzione
Il modo migliore è usare due viste Plone davvero utili che sono pensate proprio per questo scopo. L'interfaccia che li definisce è in https://svn.plone.org/svn/plone/plone.app.layout/trunk/plone/app/layout/globals/interfaces.py , nel caso in cui desideri verificarlo.
<tal:block
tal:define="our_url context/@@plone_context_state/canonical_object_url;
home_url context/@@plone_portal_state/portal_url;"
tal:condition="python:our_url == home_url">
HERE GOES YOUR STUFF
</tal:block>
La cosa grandiosa di @@ plone_context_state e @@ plone_portal_state è che gestiscono tutti i tipi di strani casi limite. context / @@ plone_context_state / canonical_object_url restituisce anche l'URL dell'oggetto giusto, più basilare, anche quando si sta visualizzando la pagina predefinita nella radice del portale con una stringa di query aggiunta :-)
Altri suggerimenti
Uso qualcosa di simile a ax:
<tal:block define="global currentUrl request/getURL" condition="python: u'home' not in str(currentUrl)">
<!-- whatever -->
</tal:block>
che ne dici di qualcosa come <tal:condition="python: request.URLPATH0 == '/index_html'
... > `? vedi TALES Nomi incorporati e il Riferimento API Zope per ulteriori scelte.