[Zope] calling zpt from a script with options

Dieter Maurer dieter at handshake.de
Thu Jan 6 13:47:18 EST 2005


Haim Ashkenazi wrote at 2005-1-5 20:55 +0200:
>forgive me if it's trivial, but I'm a complete zope newbie....

You must also learn how to formulate questions :-)

> ...
>I read in the zope book that if I want to call zpt from a script (in my
>case, to render errors in a form) I do something like this:
>
>--
>script:
>
>pt = context.body_content
>s = pt(zerror="This is an error")
>return s
>
>zpt:
>
><i tal:content="options/zerror | default">error</i>
>--
>
>This works without a problem, but it only shows the "body_content" file.
>this file is part of a layout (inside a folder) and I want to call the
>folder as the url, so it will acquire the index_html in an upper directory.

I do not yet understand what you want...

Usually, the overall layout is defined in a macro
and individual page templates use this macro and fill slots of it.
Maybe, you read about "metal:define-macro", "metal:define-slot",
"metal:use-macro" and "metal:fill-slot" in the Zope Book.

Otherwise, if you do not want to call "body_content" but
"index_html", then you simply use "pt = content.index_html" (provided
it is a ZPT, too).

>I tried changing the "pt" variable to context.index_html and calling
>"here/index_html/options/zerror" in the template but it didn't show. 

In "index_html", you would access "zerror" also via "option/zerror".

When your "index_html" would call "body_content", you would
need to pass "zerror" again.

-- 
Dieter


More information about the Zope mailing list