[Zope] metal Macros from PageTemplateFiles?
Dieter Maurer
dieter at handshake.de
Wed Jan 19 14:42:27 EST 2005
Robert Casties wrote at 2005-1-19 14:29 +0100:
>Is it possible (and how?) to use a procedure in a product to produce a
>PageTemplate that defines a macro, that can be used in another PageTemplate?
>
>I tried:
>
> class SomeClass(Folder):
>
> content_template = PageTemplateFile("/some/file/template.zpt")
>
>and the direct ssignment to a variable works, but it is not exactly what
>I need (I need to check with the actual instance).
>
>But when I try to do:
>
> def content_template(self):
> pt = PageTemplateFile("/some/file/template.zpt")
> return pt
>
>then the procedure is never called and I get an error in the ZPT that
>tries to use the macro:
>
> Error Type: AttributeError
> Error Value: content_templatemacros
Two errors:
1. as Tino already pointed out: you forgot the ".__of__(self)"
2. you must call your "content_template" method (contrary to your
"content_template" attribute).
The easiest way would be a "ComputedAttribute", something like
from ComputedAttribute import ComputedAttribute
...
def content_template(self):
...
content_template = ComputedAttribute(content_template, 1)
>Somewhere I read a vage reference to invoke "cook" but I don't know how.
PageTemplates get automatically "cook"ed, when necessary.
--
Dieter
More information about the Zope
mailing list