[Zope] Could Someone Clean This DTML Up?

Martin Gebert Murphy@members.netsolution-net.de
Mon, 06 Jan 2003 00:22:36 +0100


beno schrieb:

> Hi;
> Here's my code. I know there are all sorts of errors. But I'm not sure 
> where in the documentation to find the corrections (other than 
> somewhere in the Zope Book). Your help would be appreciated.
>
> <dtml-let lang="REQUEST.get('HTTP_ACCEPT_LANGUAGE')">
>  <dtml-in expr="context.objectsInTheFolder">
>   <dtml-if expr="&dtml-id==&dtml-lang">
>    <dtml-let approved="&dtml-lang">
>   <dtml-else>
>    <dtml-let approved="en-us">
>   </dtml-if>
>  </dtml-in>
> </dtml-let> 

First of all, terminate all &dtml entities by a semicolon.

Second, dtml-let needs a closing tag. This tag can't be outside of the 
DTML hierarchy the opening tag is in, which means that if you define a 
variable inside of a dtml-if, you have to close it inside, too, and the 
value is lost for further use. Shortly: this won't work, try another way.

Third, IMHO it doesn't make sense to extract values from variables 
inside a Python expression per DTML entities, try "id == lang" in line 
3, and correct line 4 accordingly (your DTML namespace will be correctly 
looked up inside the expressions, you don't need the &dtml-...; part).

Point four: would it be possible that this could be better done in a script?

Good night!

Martin