For the record, by following the same pattern it should be possible to implement a class that responds to <dtml-in content> too, by implementing __getitem__
On Wed, 2003-01-15 at 06:00, Bjorn Stabell wrote: > Thanks Leo, this is very helpful. It should probably be in a HOWTO > somewhere. :) > > > -----Original Message----- > > From: Leonardo Rochael Almeida [mailto:[EMAIL PROTECTED]] > > > > On Tue, 2003-01-14 at 01:01, Bjorn Stabell wrote: > > > > Bjorn Stabell wrote: > > > > > > I would like > > > > > > <dtml-var content> > > > <dtml-with content>... > > > <dtml-if content> > > > > > > to call different functions. The first renders the object, > > the second > > > returns a mapping of the content's attributes/properties, the third > > > checks for "trueness" of the content. Rendering a content > > could be an > > > expensive operation and I don't want to do it when doing > > dtml-with and > > > dtml-if. > > > > > > you can do that by having your object be non-callable (or > > returning self on __call__) and implementing __str__ where > > you can have access to the REQUEST thru self.REQUEST. > > <dtml-with content> works as expected because you're getting > > the object itself. To make <dtml-if content> work you should > > implement __len__ (if your object implements sequence or > > mapping, which it probably doesn't) or __nonzero__. Read the > > python docs for details on the implementation of these methods. > > > > Cheers, Leo > > > > -- > > Ideas don't stay in some minds very long because they don't > > like solitary confinement. > > _______________________________________________ > Zope-Dev maillist - [EMAIL PROTECTED] > http://lists.zope.org/mailman/listinfo/zope-dev > ** No cross posts or HTML encoding! ** > (Related lists - > http://lists.zope.org/mailman/listinfo/zope-announce > http://lists.zope.org/mailman/listinfo/zope ) > -- Ideas don't stay in some minds very long because they don't like solitary confinement. _______________________________________________ Zope-Dev maillist - [EMAIL PROTECTED] http://lists.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope )