gpgreen@olywa.net wrote:
On Sat, Apr 22, 2000 at 04:04:58PM +1000, Malcolm Tredinnick wrote:
The syntax you want, if I've understoof the question, is (untested): <dtml-var "the_other_dtml_method(_['sequence-item'])">
You need to do it this way because the stuff inside the quotes is a python expression and hyphens are not permitted in Python variable names. So you use the magical _ namespace, which contains things like sequence-item as a key.
Very nice. Now how do I reference the variable in the_other_dtml_method? I assume it is in the other methods namespace, but what name does it have?
-- Greg Green e-mail: gpgreen@olywa.net http://www.olywa.net/gpgreen/
_______________________________________________ Zope maillist - Zope@zope.org http://lists.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope-dev )
It doesn't need a name. It will be the only variable available. Call it whatever you want. Declare the external method as 'def otherExternalMethod(self, my_var):', and the sequence-item is available in my_var, and you can access the current folder in self. You can always call the second method as <dtml-var "otherExtMethod(my_var=_['sequence-item'])"> (I think, untested). Just a note... loops in dtml are relly inefficient. If it is at all possible, pass the entire list into the second method, and iterate through the list in python. It will be MUCH faster. --sam