[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