On Mon, 2001-10-15 at 13:35, Adrian Mugnolo wrote:
Hi,
I'm considering Zope for some upcoming projects and I have two architecture questions about the system:
1) Is there a way to code output filters in the Zope model? If yes, do they fit in the product model? Are they limited to Python code? Where can I get a running example? By "output filters" I mean a very last stage code processor. Let's say I need to run HTML validation, compression, macro expansion, etc., after all DTML processing and inheritance has happened.
Well, it sort of depends. The only example that I can think of offhand is the integration work some people have done to run Zope-generated pages through Roxen Challenger on the way out. If that's possible, then you can probably figure out a way to plug Zope into your page post-proccesor of choice. Searching for 'roxen' on the Zope mailing lists may be helpful.
2) Is Zope limited to dynamic page generation/caching/serving? What about having static pregenerated pages instead? If positive, where can I find an example? By "pregenerated" pages I mean "cook once, serve many times" static pages pushed to a standard httpd.
As long as you're careful with the URL's of links within your site, you can suck down a copy using wget quite easily, and replicate on as many static servers as you like. By 'careful', I mean that URL's that point toward folder objects should end in a '/', or wget will create a file with the name of the folder, instead of a directory that contains an index.html file, thereby preventing subfolders from being created (you can't have a folder and a file with the same name in a filesystem directory ). Similarly, links between pages should be site-relative (i.e. omit the machine identifier, and begin with a '/'), rather than absolute or relative links. This is to avoid the machine name of your server being hard coded into URLs, which would prevent you from deploying static servers named www1.yourdomain.com, www2.yourdomain.com, etc., and also prevent accidental masking of acquisition effects, which can sometimes lead to wget recursively finding and copying www.yourdomain.com/directory1/directory2/directory2/directory2/... You should also avoid passing parameters in the URL, since wget cannot replicate these URL parameters as file names. If you need to hard-code some parameter to generate another view of your data, consider setting it as a property on a folder which you can traverse it in order to pass it in. With these (minor) precautions, you should have no problem making a static copy of your site using wget, and deploying it on any number of servers. BTW, even if you decide to serve your site dynamically, these precautions are still a good idea, as it also makes your site very search-engine friendly. HTH, Michael Bernstein.