On Tue, 27 Jun 2000, [iso-8859-1] Hamish Lawson wrote:
If a folder doesn't itself contain a required object or method, I'd like to have another folder looked in instead. The fall-back folder won't necessarily (and often can't) be higher in the hierarchy, so acquisition doesn't seem to be a solution.
We do something very similar with our customers, and are in the process of figuring out the best way to do this kind of thing in Zope. I assume your aim is to create a 'baseline' site with a number of customized copies. If you change the baseline, the changes are reflected in its instances, unless the instance has overloaded the changed aspect. We have a site (actually 109), built on our proprietary middleware that do exactly this (check out http://www.pgdc.net).
Inheritance from a folderish class seems to be one solution, but I fear this might lead to an explosion of classes.
Indeed, I believe the same.
The answer I think I need is to have a protoype mechanism (similar to that used in JavaScript and Self). A folder with the requirement to have its missing methods looked for elsewhere would be created as an instance of (say) PrototypedFolder with a pointer to the folder it wanted to use as a prototype. Does such a mechanism exist for Zope?
I achieved something similar to this by using a ZClass mix-in. My mix-in basically overloaded ObjectManager._checkId to allow me to overload aspects of a ZClass on an instance-by-instance basis. If the instance did not overload the method, Zope would fall back to the ZClass's method definition. Unfortunately, my attention has been focused elsewhere, lately, and I haven't had time to flesh this idea out. Getting this to work isn't the hard part. Getting it to work well, in a way that allows web developers to (easily) visualize what's going on is, unfortunately, much harder. I would be interested in pursuing and contributing to an effort to do the Hard Thinking this will require, done correctly.
Hamish Lawson University of St Andrews, Scotland
--Jeff --- Jeff K. Hoffman 704.849.0731 x108 Chief Technology Officer mailto:jeff.hoffman@goingv.com Going Virtual, L.L.C. http://www.goingv.com/