Wow -- this list has been so immensely helpful, it at once demonstrates how wonderful the open source
community is.... and what an idiot *I* am.
I have a dtml script which receives a form variable "field_topic", which is a list of the topic property or
properties of the document or documents within a folder, and performs actions based upon the values
in this list. The code is thus:
<dtml-with REQUEST>
<dtml-in field_topic>
<dtml-let topik=sequence-item>
<table border="1">
<dtml-in expr="PARENTS[0].objectValues(['STX_Document'])" sort="topic,title">
<dtml-if "topic == topik">
........
If there are two or more elements in "fileld_topic", all is well. However, if "field_topic" contains
only one element, I get the following error message:
Zope Error
Zope has encountered an error while publishing this resource.
Error Type: InError
Error Value: Strings are not allowed as input to the in tag
??? So my list is interpreted as a string if it is only one element in length.
What is the simplest way to deal with the possibility of a one element (or *zero* element)
list being returned?? I tried <dtml-if expr="len(field_topic) <
2"> DO <dtml-elif expr="len(field_topic) >= 2"> DO
OTHER </dtml-if>.
It didn't work. The <dtml-in> loop still gets called, even though the if loop should never reach it. Unless I've
designed the loop incorrectly. I call upon those of you who actually understand the inner intracacies of Zope
for your help. And I thank you in advance.
peace