[Zope] is <dtml-unless someIndirectVariable> possible ?

Rik Hoekstra rik.hoekstra@inghist.nl
Sun, 27 Aug 2000 11:49:13 +0200


I have a lot of REQUEST like this one to check, depending on what
documents are in the folder.

<dtml-unless SOMEREQ>
<dtml-call "REQUEST.set('SOMEREQ','defaultvalue')">
</dtml-unless>


RH: this should work. It works with me

so i gave all documents concerned 2 properties
myPropName,myPropValue

(in our example
myPropName : SOMEREQ
myPropValue : defaultvalue)

So i'm able to iterate the documents and check the properties and
set the REQUEST.

<dtml-in "objectValues(['DTML Document'])">
<dtml-if "_.hasattr(this(), 'myPropName') == 1">
  <dtml-call "REQUEST.set(myPropName,myPropValue)">
</dtml-if>
</dtml-in>

this works OK.

But, I can't find a way to generate the
<dtml-unless SOMEREQ> tag.

Passing the value of myPropName seems to fail (erreur while
parsing the syntax, or check the 'myPropName' instead of his
value).
I tried a lot of things and syntax around <dtml-unless
myPropName>, but it failed.

RH: Um, as you describe it, you mix up the name of the  property and its
value (but that might be a matter of desciption). Try something like the
following
<dtml-unless "myPropName==SOMEREQ">
    <dtml-call "REQUEST.set('myPropName', defaultvalue)">
</dtml-unless>

note that 1) this will only work if there is a myPropName and a defaultvalue
variable in the namespace and 2) this won't change the value of the property

hth

Rik