Comment puis-je vérifier s'il s'agit de la page d'accueil d'un site Web Plone utilisant ZPT?
-
19-08-2019 - |
Question
Je souhaite modifier l'en-tête de mon site Web uniquement si ce n'est pas la page d'accueil. Existe-t-il une expression tal: condition pour cela?
J'ai lu ceci et je ne trouve pas ce que je cherche. ...
merci!
La solution
Le meilleur moyen consiste à utiliser deux vues Plone vraiment pratiques et destinées à cet usage. L’interface qui les définit est https://svn.plone.org/svn/plone/plone.app.layout/trunk/plone/app/layout/globals/interfaces.py , au cas où vous souhaiteriez l'exécuter.
<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>
Le gros avantage de @@ plone_context_state et de @@ plone_portal_state est qu’ils gèrent toutes sortes de cas étranges. context / @@ plone_context_state / canonical_object_url renvoie également l'URL droite, la plus élémentaire, de l'objet même lorsque vous affichez la page par défaut dans la racine du portail avec une chaîne de requête ajoutée: -)
Autres conseils
J'utilise quelque chose de similaire à ax:
<tal:block define="global currentUrl request/getURL" condition="python: u'home' not in str(currentUrl)">
<!-- whatever -->
</tal:block>
que diriez-vous de quelque chose comme <tal:condition="python: request.URLPATH0 == '/index_html'
... > `? voir Noms intégrés TALES et le Référence de l'API Zope pour plus de choix.