[Zope] <dtml-in> problem with defined or not defined variable as parameter

Johan Carlsson johanc at easypublisher.com
Tue Sep 7 05:59:15 EDT 2004


Patrick Ulmer wrote:

> Hi,
> 
> I want to do something like that:
> 
> <dtml-if id_historie>
> <dtml-in expr="dbSelect(id_historie=_.str(id_historie))">
> <dtml-else>
> <dtml-in expr="dbSelect(id_historie=_.str(0))">
> <dtml-if>
> 
> [...]
> 
> </dtml-in>
> 
> but I get the error " unexpected end tag, for tag </dtml-in>". How can I 
> query my database depending on having id_historie defined or not? Can 
> somebody give me a hint?

You can't put <dtml-in> in a dtml-if. You must include the </dtml-in>.

This is because <dtml-in> and <dtml-if>, and all other dtml-tag that 
comes in pairs, defines a DTML block in between them and you can't
have overlaping blaocks.

When the DTML "page" is rendered the DTML blocks are executed as a whole
with it's local context.

In the exaple above I would set id_historie in a <dtml-let> tag:

<dtml-let id_historie="id_historie or 0">
<dtml-in expr="dbSelect(id_historie=_.str(id_historie))">
...
</dtml-in>
</dtml-let>


Best Regards,
Johan Carlsson



-- 
Johan Carlsson          Tel: + 46 8 31 24 94
Colliberty              Mob: + 46 70 558 25 24
Torsgatan 72            Email: johanc at easypublisher.com
SE-113 37 STOCKHOLM


More information about the Zope mailing list