The next thing is working, but it is not nice: the call to __getitem__() returns the content of a file to the browser. But Zope misses the docstring of the string. I solved by adding the content to the request object and returning a function which returns this, but a nicer solution would be better:
request._return_file=self.download(key, REQUEST=request) def return_wrapper_with_docstring(REQUEST): "docstring" return REQUEST._return_file return return_wrapper_with_docstring
I found a better solution, maybe someone likes urls like this "..../foo.myextension", too:
def __getitem__(self, key): print "Document.__getitem__: key=%s" % ( key) if hasattr(self, 'REQUEST'): request=self.REQUEST else: request=None ... request["file"]=key return self.download
def download(self, file, REQUEST=None): <<< This way /foo.txt will be wrapped to /download?file=foo.txt thomas -- Thomas Guettler <guettli@thomas-guettler.de> http://www.thomas-guettler.de