You are not logged in Log in Join
You are here: Home » Members » 4AM Productions (Evan Simpson) » DTMLWiki » NamedDTMLInLoop

Log in
Name

Password

 
 

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>