Уникальные URL в plone

У меня есть внутренняя ссылка на раздел A/страницу A на боковой панели, когда я нажимаю на нее из раздела B, URL-адрес становится разделом B/разделом A/post. Я не могу использовать абсолютный URL, потому что боковая панель находится в статическом файле XDV, а я использую linguaplone. Как я могу создать уникальный URL?


person martino    schedule 21.04.2011    source источник


Ответы (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 в последнем примере.

person Martijn Pieters    schedule 21.04.2011
comment
Хорошо, отлично, но... Я установил linguaplone, и с абсолютным URL-адресом я не сохраняю правильный язык. - person martino; 21.04.2011
comment
@martino: Является ли pageA шаблоном, зависящим от языка? Существует файл cookie I18N_LANGUAGE, который позволяет вставить язык в URL (site/en/sectionA/pageA), это решит это для вас? - person Martijn Pieters; 21.04.2011
comment
Хорошо, но если у меня есть статический XDV html, я не могу использовать cookie. Я думаю, что единственный способ поместить это статическое содержимое в статический портлет, верно? - person martino; 21.04.2011