On Tue, 27 Feb 2001 10:01:18 +1100, Curtis Maloney <curtis@cardgate.net> wrote:
Now, I know a lot of people think DTML should be left to die, but personally I think it is not given enough credit. DTML is a wonderful language, and can greatly ease peoples transition from other systems into Zope.
dtml is good enough for document templates, however there are serious quality issues for anything involving logic. Lets analyse this
<dtml-in ... prefix="outer"> <dtml-in ... prefix="inner"> <dtml-var expr="outer_item * inner_item"> </dtml-in> </dtml-in>
By the time it gets to evaluating the dtml-var, the namespace stack contains: 1. an element from the inner sequence 2. inner_stuff 3. an element from the outer sequence 4. outer_stuff 5. the namespace provided by the caller The dtml-var is looking up two names in the namespace. We know it expects to find the values that were provided by the dtml-in tags, however it is possible for something higher up the namespace stack to provide a different value under the same name, breaking your dtml-var expression. Where can it go wrong? a. If an object which is an element of the inner sequence has an attribute outer_item. b. If anything in the acquisision context of an element of the inner sequence has an attribute outer_item. c. If an object which is an element of the inner sequence has an attribute inner_item. d. If anything in the acquisision context of an element of the inner sequence has an attribute inner_item. e. If an object which is an element of the outer sequence has an attribute outer_item. f. If anything in the acquisision context of an element of the outer sequence has an attribute outer_item. On Tue, 27 Feb 2001 09:56:17 +1100, Itai Tavor <itai@optusnet.com.au> wrote:
citing some irrelevant concern about polluting the namespace.
namespace pollution is less serious if you have a greater number of namespaces, and more serious if you have fewer. dtml is the only language I know which only provides *one* namespace. Toby Dickenson tdickenson@geminidataloggers.com