Как мне проверить, является ли это домашней страницей веб-сайта Plone, используя ZPT?
-
19-08-2019 - |
Вопрос
Я хочу изменить заголовок моего веб-сайта, только если это не домашняя страница.Существует ли тал: состояние выражение для этого?
Я тут читал это и не могу найти то, что я ищу...
Спасибо!
Решение
Лучший способ - использовать два действительно удобных вида plone, которые предназначены именно для этой цели.Интерфейс, который их определяет, находится по адресу https://svn.plone.org/svn/plone/plone.app.layout/trunk/plone/app/layout/globals/interfaces.py, на случай, если вы захотите это проверить.
<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>
Самое замечательное в @@plone_context_state и @@plone_portal_state - это то, что они обрабатывают всевозможные странные граничные случаи.context/@@plone_context_state/canonical_object_url также возвращает правильный, самый простой URL объекта, даже когда вы просматриваете страницу по умолчанию в корне портала с добавленной строкой запроса :-)
Другие советы
Я использую что-то похожее на ax:
<tal:block define="global currentUrl request/getURL" condition="python: u'home' not in str(currentUrl)">
<!-- whatever -->
</tal:block>
как насчет чего-то вроде <tal:condition="python: request.URLPATH0 == '/index_html'
...>`?видишь Встроенные названия СКАЗОК и тот Ссылка на API Zope для большего выбора.