[Zope] How to render a HTMLFile in a method in a product

Max Møller Rasmussen maxm@normik.dk
Fri, 27 Oct 2000 14:25:05 +0200


>From: Chris Withers [mailto:chrisw@nipltd.com]

I got this answer to my question about how to render a dtml document from a
method.

>testisDocTemp = 1
>def test(self,ignored,md):
>    " A simple test method "
>    return HTMLFile('skins/' + self.skin, globals())(None,md)

And I have been busy trying to read the source code to understand the
advise:

As far as I understand the story goes a little like this:

HTMLFile returns an object (through inheritance) "String" in file
"DT_String.py" that has "__call__()" implemented, which means that the class
can be called as a function... Hmm ... I had actually not seen this method
used in Python before.

def __call__(self,client=None,mapping={},**kw):

This method accepts an object in which it will look up values to insert in
the dtml file, and a mapping object (dictionary) that also will look up
values to insert.

So i guess that is what (None,md) does.

But I dont understand what "ignored" does in  my method, as it is unused,
unless it is used by md

>def test(self,ignored,md):

Furthermore I dont understand what md is. Some kind of mapping object
naturally, but where does it come from?

Also what is testisDocTemp supposed to do?

If I grep the source a "isDocTemp" shows up but is isn't easy to see what
this does either.

Regards Max M