[Zope-dev] Custom dtml tag

Andy McKay andym@ActiveState.com
Tue, 12 Sep 2000 17:43:17 -0700


Really? Ive looked up this and get nothing (an attribute error actually) and
its not in globals. If that would work that would be great - but a it
certainly doesnt seem to on a standard DTMLDocument / Method.

----- Original Message -----
From: "Brett Carter" <brett@kavi.com>
To: "Andy McKay" <andym@activestate.com>
Cc: <zope-dev@zope.org>
Sent: Tuesday, September 12, 2000 4:17 PM
Subject: Re: [Zope-dev] Custom dtml tag


> Andy: here's what I've gleaned - in a dtml tag's render() method, you
> get passed in self and a template dict, in my example let's call it
> 'md'.  md is essentially a stack/dictionaryish object of the *current*
> namespace - and one of the handy things that's always around in the
> namespace is the 'this' function, which returns the object on the top
> of the stack.
>
> Just lookup 'this', run it, and there you have a reference to the
> calling object!  Ex:
>
> def render(self, md)
>   this = md.getitem('this')
>   callingObj = this()
>   return "Calling object was %s" % (callingObj.id())
>
> Note I haven't tested this code.  Good luck!
> -Brett
>
> >>>>> "Andy" == Andy McKay <andym@ActiveState.com> writes:
>
>     Andy> I can see how this would be useful in a situation where I dont
have an
>     Andy> instance of self. But in this case I do, so Im not sure how this
helps.
>
>     Andy> I guess you're saying once I have self I can find out what
called the
>     Andy> function. More fiddling I guess.
>
>     Andy> ----- Original Message -----
>     Andy> From: "Martijn Pieters" <mj@digicool.com>
>     Andy> To: "Andy McKay" <andym@activestate.com>
>     Andy> Cc: <zope-dev@zope.org>
>     Andy> Sent: Tuesday, September 12, 2000 11:29 AM
>     Andy> Subject: Re: [Zope-dev] Custom dtml tag
>
>
>     >> On Tue, Sep 12, 2000 at 09:26:49AM -0700, Andy McKay wrote:
>     >> > Hmm well ive found i have <TemplateDict> object and of course my
self.
>     >> > Perhaps there is a pythonism I have to research here.
>     >> >
>     >> > ----- Original Message -----
>     >> > From: "Andy McKay" <andym@ActiveState.com>
>     >> > To: <zope-dev@zope.org>
>     >> > Sent: Monday, September 11, 2000 4:03 PM
>     >> > Subject: [Zope-dev] Custom dtml tag
>     >> >
>     >> >
>     >> > > Im playing with a custom dtml-tag along the lines of <dtm-query
foo>
>     >> > > constructs a url to a catalog query. It works fine, I would
just like
>     Andy> to
>     >> > > extend it a bit and for this I would need to get to the calling
>     Andy> object.
>     >> > >
>     >> > > For example, there will be a different query depending upon the
object
>     Andy> the
>     >> > > dtml-query tag is contained in. Does this make sense, does
anyone know
>     Andy> the
>     >> > > answer?
>     >> > >
>     >> > > Thanks in advance.
>     >> > >
>     >> > > --
>     >> > >   Andy McKay, Developer.
>     >> > >   ActiveState.
>     >>
>     >> The namespace just reflects the attributes of the current object,
plus
>     >> whatever other tags push onto that stack (such as the in tag, which
pushes
>     >> the current element of the list it iterates over on top).
>     >>
>     >> If you retrieve the 'this' method from the stack, and call it,
it'll
>     >> return the topmost object on the stack. It is implemented in
>     >> SimpleItem.Item:
>     >>
>     >> def this(self):
>     >> # Handy way to talk to ourselves in document templates.
>     >> return self
>     >>
>     >> --
>     >> Martijn Pieters
>     >> | Software Engineer            mailto:mj@digicool.com
>     >> | Digital Creations          http://www.digicool.com/
>     >> | Creators of Zope               http://www.zope.org/
>     >> | ZopeStudio: http://www.zope.org/Products/ZopeStudio
>     >> -----------------------------------------------------
>     >>
>
>
>     Andy> _______________________________________________
>     Andy> Zope-Dev maillist  -  Zope-Dev@zope.org
>     Andy> http://lists.zope.org/mailman/listinfo/zope-dev
>     Andy> **  No cross posts or HTML encoding!  **
>     Andy> (Related lists -
>     Andy> http://lists.zope.org/mailman/listinfo/zope-announce
>     Andy> http://lists.zope.org/mailman/listinfo/zope )
>
>
> _______________________________________________
> Zope-Dev maillist  -  Zope-Dev@zope.org
> 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 )
>