[Zope-dev] accessing DTML variable namespace outside DTML

Service Informatique CHSR chsrinfo@guetali.fr
Fri, 2 Apr 1999 15:06:48 +0400


Hello.

I just posted this to the collector. What do you think?

-----------------8<-------------------------
DTML variable namespace is not available from eg External Methods, ZSQL
Method, etc... Only the variables defined in REQUEST are available. Because
of this feature, <!--#with "_.namespace(...)"--> construct are useless when
used in conjunction with Z* Methods.  For example, in

<!--#with "_.namespace(cookedvalue=somefunc(somevar))"-->
<!--#in query-->
...
<!--#/in-->
<!--#/with-->

cookedvalue is not available from query, even if the name "cookedvalue" is
among the ZSQL Method parameter. However,

<!--#call "REQUEST.set('cookedvalue', somefunc(somevar))"-->
<!--#in query-->
...
<!--#/in-->

works great. But it is sometimes indesirable to leave the variable
'cookedvalue' in the namespace. I had to patch my Zope to implement
REQUEST.unset, but I'd like to use as few patches against pristine Zope as
possible.

Also, a DTML Method calling an External Method (or ZSQL Method, or whatever
method) that is evaluating another DTML Method (or ZSQL Method, or whatever
method) often do not render as expected because only the variables stored in
REQUEST are kept.

I suppose this feature would require a rewrite of the REQUEST variable
handling, causing it to also 'carry' the current DTML namespace along with
it.

Anyway, I think it would be useful. It would also allow me to simplify some
of my code :-)
-----------------8<-------------------------


Regards,
Jephte CLAIN
Service Informatique CHSR