Stephen Simmons wrote:

> 1.)  How do you magically get the DTML context from '<dtml-var A>' without
> having to resort to '<dtml-var "A(_,REQUEST)">' in the templates?

Give your class a class attribute of isDocTemp=1. This tells the DTML 
method calling machinery that you want to receive the namespace as 
REQUEST as the third argument to your __call__ method.

There was a thread on this in zope-dev on and around 26 September, 
subject "more __call__ ..."

> In the __call__ methods of different classes, I've seen some code like:
>         'if REQUEST is None and not kw: REQUEST=self.REQUEST' (from

Your method will usually get called with its third argument as the 
namespace, or REQUEST. However, sometimes, it may just be called with a 
"self" argument. The code in is falling back on getting the 
REQUEST out of the self argument, if it is not explicitly passed a 
namespace to work with.

> I can't see any consistency in what these classes are doing, so I don't know
> what I need to do.

Most developers would like more consistency here :-)
I'm hoping that all this will be much much clearer for Zope 2.3. That 
doesn't help much for now though.

> 2.)  How to convert an arbitrary text string into rendered DTML inside a
> python product method?
> How do you get the object's properties, REQUEST and acquisition context all
> in the namespace?
> I've been trying code like:
>    template = '<span class="purpose"><dtml-var purpose
> fmt="structured_text"></span>'
>    dtml = HTML(template, globals())

If all you want to do is render some Structured Text, you can import and 
use the StructuredText module directly.

> P.S.  ChrisW, searching NIP for "__call__" returns every message with 'call'
> in it, which is not quite the same thing!

For cases like that, I have downloaded the plaintext mail archives as 
available from

I then use unix grep on them to search for just what I need.

Steve Alexander
Software Engineer
Cat-Box limited

Zope-Dev maillist  -  [EMAIL PROTECTED]
**  No cross posts or HTML encoding!  **
(Related lists - )

Reply via email to