At 02:02 PM 9/8/99 -0500, John Goerzen wrote:
Heh, feels strange to reply to myself, but as I got no replies before, maybe I need to elaborate a bit. The original question is below.
My main confusion is just how do I set a variable that is dynamically scoped without having to use dtml-with or dtml-let, both of which require matching closing tags?
FYI, I have just written a patch for DT_Let.py that adds two new tags, 'local' and 'set'. They are used like this: <!--#local myvar1="0" myvar2=somevar--> <!--#set myvar1="myvar1+myvar2"--> ... <!--#set myvar2="myvar2+1"--> <!--#/local--> Both <!--#local--> blocks and <!--#set--> tags are dynamically scoped and <!--#set--> can be used anywhere as long as there is an enclosing <!--#local--> block defining the variable you want to set. You can only set variables which are defined by the innermost <!--#local--> block, but you can reset their value any number of times, even within the same <!--#set--> tag. I am currently testing this code in an alpha app, but will be submitting it some time in the near future to Digital Creations for consideration of inclusion in future Zope versions.