On Sat, 2003-11-29 at 12:11, Brad Allen wrote:
This sounds interesting, but I'm a newbie and am not clear on what you mean here. How do you wrap all non-Python script objects?
*How* is easy. If you have an object my_object you want to "wrap" with the Python Script call_my_object, you'd do this:
call_my_object: ----- # do other stuff return context.my_object(arguments) -----
As for *why* you might do this, there any many possible reasons. Sometimes it's just cleaner to put scripts in charge of templates than vice versa. It's also a good way to ensure that templates are being passed sane/validated/correctly-typed arguments. It's much easier to do validation work in a script than a template.
HTH,
Dylan
This idea is a big help to me, and I'll probably restructure my current project as a result. I found a similar example of what you're talking about in the Zope book, p247 under "Calling DTML from Scripts". It fleshes out what arguments need to be passed to a dtml object. # grab the method and the REQUEST from the context dtml_method = context.a_dtml_method REQUEST = context.REQUEST # call the dtml method, for parameters see below s = dtml_method(client=context, REQUEST=REQUEST, foo='bar') # s now holds the rendered html return s The Zope book goes on to say that you can add any number of additional "keyword" arguments. In this case, I presume foo is a "keyword" argument. I've been wondering how to pass arguments to dtml documents, since the Zope Management Interface doesn't provide a way to explicitly do it. So, this is how...I don't fully understand all the arguments, but it did work when I tried it. This idea of using scripts to return DTML documents also helps me understand a naming convention I've seen others use: "filename_html" instead of the more traditional "filename.html" for web page files. I guess ".html" would cause a problem for a Python script, wouldn't it? dtml_method = context.a_dtml_method.html The Python script would interpret the "." in ".html" as a object hierarchy separator. So what about naming conventions for graphics file types? Should we still use names like "picture.gif" or "picture.jpg" in the context of Zope? Web page templates can obviously still make use of files with these names, but what if I want to refer to a picture from a Python script? On the other hand, if we start using "picture_jpg" and "picture_gif" will web browsers still "know" what graphics format is in these files and how to process them?