[Zope] Zope bug or my stupidity?
Peter Hernberg
petehern@yahoo.com
Tue, 15 Aug 2000 06:35:39 -0700 (PDT)
...I'm betting on the latter :)
The problem in a nutshell is that a dtml method seems to be returning itself
(that is, the dtml source of the method), rather than what it ought to be
returning. I have two classes, a "Topic" class, derived from ObjectMananger, and
a "Story" class. The Topics contain Stories. As you might imagine, I wanted a
method that would dig up the most recent stories in a Topic. So I wrote one and
put it in the the methods of the Topic class. Done with that, I wanted a method
that would decide which of the Stories from each topic to put on the main page.
But a weird thing happened. I got errors telling me that my function was
returing a string (I was trying to use it in a dtml-in tag). That's odd, I
thought, so changed the function to simply spit out the results of the method
call with a dtml-var tag. I discovered that it was spitting out the source of my
dtml method. Yikes! Aren't all variables supposed to be rendered?
Here's the method (named get_storys) in the Topic's methods:
<dtml-call "REQUEST.set('stories', [])">
<dtml-in "objectValues('Story')" reverse sort=Date>
<dtml-if numStories>
<dtml-if "sequence-index < (numStories - 1)">
<dtml-call "stories.append(id)">
</dtml-if>
<dtml-else>
<dtml-if "sequence-index == 0">
<dtml-call "stories.append(id)">
</dtml-if>
</dtml-if>
</dtml-in>
<dtml-return stories>
Here's the method that calls that method:
<dtml-in "objectValues('Topic')">
<dtml-with sequence-item>
<dtml-var "get_storys">
</dtml-with>
</dtml-in>
<dtml-with "Economic.ColdFusion">
<dtml-var id>
</dtml-with>
In case you're wondering, I'm running zope 2.2.0.
=====
Peter Hernberg
An all-purpose, antibacterial, lemon-scented geek/nerd
"If there were a nation of Gods,it would govern itself
democratically. A government so perfect is not suited to
men."
--Jean-Jacques Rousseau
__________________________________________________
Do You Yahoo!?
Yahoo! Mail – Free email you can access from anywhere!
http://mail.yahoo.com/