History for NamedDTMLInLoop
??changed:- Named DTML-In Loop Proposal Jim -- Note that this proposal applies to *all* dtml tags that introduce new variables (e.g. the tree tag). Poster Child:: <dtml-in SQL1 var=s1><dtml-in SQL2 var=s2> <dtml-if expr="s1.key == s2.key"> <dtml-var s1/name> is the same as <dtml-var s2/name>; </dtml-if> </dtml-in></dtml-in> Goals o Make DTML-In variables such as 'sequence-item' easier and more natural to use in expressions. o Allow namespaces of nested DTML-In tags to be easily separated and separately accessed. Proposed Changes Add an optional argument to DTML-In which declares a loop object. This wouldn't affect the standard ('sequence-item') syntax, but would add an object to the namespace through which all of the loop variables could be accessed. The attribute names of the loop object would use underscores (_) in place of hyphens. Implement PathNameTraversal. Result This would allow loop variables to be distinguished by prepending the loop object name to them, with a slash (/) in DTML names or a dot (.) in expressions. Example:: <dtml-in first_sequence var=outer>; <dtml-in second_sequence var=inner> The following should all produce the same result: <dtml-var sequence-item> <dtml-var expr="_!['sequence_item']"> <dtml-var inner/sequence-item> <dtml-var expr="inner.sequence_item"> We can also access variables from the outer loop, like so: <dtml-var outer/sequence-item> <dtml-var expr="outer.sequence_item"> </dtml-in> </dtml-in>