[Zope] Extracting just the string of the zope file or dtml object
Dieter Maurer
dieter@handshake.de
Mon, 10 Sep 2001 22:34:53 +0200 (CEST)
Andy Bulka writes:
> How do I ensure that the string *contents* of my Zope object is passed to an
> external method, rather than passing the zope object itself?
>
> E.g. if
> mydtmldoc is a DTML document with plain text inside it
> myFile is a file object with content-type plain text
> then when I call
>
> <dtml-call "ProcessAstring1('a literal string')">
> <dtml-call "ProcessAstring1(mydtmldoc)">
> <dtml-call "ProcessAstring1(myFile)">
The easiest way is to work in your external method
and let DTML pass what it likes:
def extMethod(string_or_object):
s= string_or_object
if hasattr(s,'read'): s= s.read() # now "s" is a string
In DTML, it is much more difficult, as "read" is private
for DTML objects. However, "PrincipiaSearchSource" is
an accessible synonym for the "read" of DTML objects.
I did not check the permissions of "OFS.File.read".
You can use my DocFinder product
<http://www.dieter.handshake.de/pyprojects/zope/DocFinder.html>
to find out about it.
Dieter