Как получить вьюлет по URL-адресу объекта plone

Я пытаюсь получить виджет ниже содержания для объекта по его URL-адресу. Что-то вроде ниже, но с использованием URL-адреса объекта вместо 'plone'.

id="viewlet-below-content-title" tal:content="structure provider:plone.belowcontenttitle"

Могу ли я сделать это с помощью limitedTraverse?


person Matheus Pereira    schedule 04.02.2013    source источник


Ответы (1)


Лучше всего создать новое представление для вьюлета belowcontenttitle; шаблон:

<div tal:content="structure provider:plone.belowcontenttitle"/>

зарегистрирован с:

<browser:page
    for="*"
    name="belowcontenttitle"
    permission="zope2.View"
    template="template_shown_above.pt"
    />

Затем вы можете использовать этот вид с помощью простого обхода:

<div tal:replace="structure context/path/to/other/object/@@belowcontenttitle" />

Это ищет представление в контексте другого объекта; шаблон визуализируется и возвращается, заменяя div.

person Martijn Pieters    schedule 04.02.2013
comment
Спасибо, работает отлично. Но я все еще не могу объединить свои пути с «контекстом/». У меня есть динамические пути в список. - person Matheus Pereira; 05.02.2013
comment
Мне удалось объединить путь, используя: <tal:block tal:define="commentaryPath news/path"> <div tal:replace="structure context/?commentaryPath/@@commentaryView" /> </tal:block> - person Matheus Pereira; 05.02.2013
comment
@MatheusPereira: я искал для вас использование ?variable в выражениях пути. :-) - person Martijn Pieters; 05.02.2013