Форум сайта python.su
Может кто-нибудь попродробней объяснить механизм получения макросов?
описанное тут
http://wiki.python.su/%D0%94%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D0%B0%D1%86%D0%B8%D0%B8/Bluebream/%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE#A.2BBBwEMAQ6BEAEPgRBBEs-
не даёт полного понимания.
Пример:
<b metal:use-macro="container/master_page/macros/copyright">
Macro goes here
</b>
<metal:block define-macro="master">
<html metal:use-macro="container/index.pt/macros/master">
<html metal:use-macro="index.pt/macros/master">
<p metal:define-macro="title"
tal:content="template/title">
template's title
</p>
Отредактировано (Сен. 22, 2010 17:30:48)
Офлайн
сделал через вид
файл macro_main.pt:
<metal:block metal:define-macro="master">
<browser:page
for="*"
name="macro_main"
permission="zope.Public"
template="macro_main.pt"
/>
metal:use-macro="context/@@macro_main/macros/master"
metal:use-macro="macro_main.pt/macros/master"
Отредактировано (Сен. 22, 2010 20:50:30)
Офлайн
Посмотрел репозиторий astoon'a “bbru”: там совсем не как в документации к BlueBream.
Регистрация макро через zcml-директиву macro.
Вызов в шаблоне тоже не из учебника =) <metal:block use-macro=“macro:poster”>
Попытался сделать по аналогии, но видать ещё слишком зелёный для этого. Директива zcml не проходит ('Unknown directive', u'http://namespaces.zope.org/z3c', u'macro')
(namespace z3c включил)
Хоть кто-нибудь, уделите пожалуйста 5 минут времени, опишите наконец решение =)
Офлайн
Есле не использовать решения от z3c, то вы все правильно написали до момента использования макроса.
metal:use-macro=“context/@@macro_main/macros/master” - должен иметь следующий вид:
<metal:block use-macro=“context/@@<имя_вида>/<название_макроса>”></metal:block>
В вашем же случае:
<metal:block use-macro=“context/@@macro_main/master”></metal:block>
Офлайн
Господи, оно заработало =)
Вы мой спаситель.
P.S. упало доверие к офф.документации
Офлайн