Friends,

I have an external method that returns a string containing dtml, but 
I want it to evaluate the dtml and return the result. How do I do 
that?

I noticed in, say, 
/usr/share/zope/lib/python/Products/ExternalMethod/ExternalMethod.py, 
that dtml-containing *files* are used as object methods like this:

        from Globals import HTMLFile
        manage_main = HTMLFile( 'methodEdit', globals() )

so I figured I could do a similar thing with a dtml-containing string 
and an external method:

        from Globals import HTML
        dtml_string = '<dtml-let x="it works"><dtml-var x></dtml-let>'
        external_method = HTML( dtml_string, globals() )

This in fact works, but if I try to reference anything in the current 
object, like

        dtml_string = '<dtml-var id>'

I get KeyError: id.

Apparently I'm getting dtml evaluation but not in the context of the 
current object. What am I doing wrong, and (for extra credit) why 
doesn't ExternalMethod.py have this problem using HTMLFile?

TIA,
Scott

PS: I know I can get the id with

        def external_method( self, REQUEST = None ):
                return self.id

but the real dtml_string I need to evaluate is much more complicated 
than '<dtml-var id>'...

_______________________________________________
Zope maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope
**   No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope-dev )

Reply via email to