У меня есть внутренняя ссылка на раздел A/страницу A на боковой панели, когда я нажимаю на нее из раздела B, URL-адрес становится разделом B/разделом A/post. Я не могу использовать абсолютный URL, потому что боковая панель находится в статическом файле XDV, а я использую linguaplone. Как я могу создать уникальный URL?
Уникальные URL в plone
Ответы (1)
То, что вы видите, представляет собой комбинацию относительного URL-адреса (не начинающегося с /
или полного URL-адреса, включая протокол и имя хоста) и приобретения. Последнее означает, что sectionA
можно достичь еще после прохождения sectionB
. Вам придется использовать абсолютные URL-адреса на боковой панели.
Если вы используете метод шаблонов для создания боковой панели (шаблон страницы ZPT, XDV, Diazo и т. д.), вам необходимо убедиться, что вы создаете абсолютный URL-адрес, либо запрашивая pageA напрямую для его абсолютного URL-адреса, либо любого из его предков, а затем добавьте на URL оттуда. Вот три фрагмента TAL, которые помогут достичь этого:
<!-- query pageA directly -->
<a href="sectionA/pageA" tal:attributes="href sectionA/pageA/absolute_url"/>
<!-- start at sectionA and add to the URL from there -->
<a href="sectionA/pageA" tal:attributes="href string:$(sectionA/absolute_url}/pageA"/>
<!-- assuming sectionA is in the site root, use that as the start -->
<a href="sectionA/pageA" tal:attributes="href string:$portal_url/sectionA/pageA"/>
Если вы используете внешнюю систему шаблонов, такую как XDV, применяются те же принципы, но вы не сможете напрямую запрашивать абсолютные URL-адреса раздела A или страницы A, но у вас будут абсолютные URL-адреса для восстановления доступного URL-адреса к ним, например portal_url
в последнем примере.
pageA
шаблоном, зависящим от языка? Существует файл cookie I18N_LANGUAGE, который позволяет вставить язык в URL (site/en/sectionA/pageA), это решит это для вас?
- person Martijn Pieters; 21.04.2011