[Zope] Generating products that perform a smart clone of a master site?

R. David Murray bitz@bitdance.com
Mon, 26 Jun 2000 14:12:46 -0400 (EDT)


On Mon, 26 Jun 2000, [iso-8859-1] Hamish Lawson wrote:
> What I think I need to do is to develop a facility that makes a 
> tutor's site into a product. Instantiating such a generated product 
> should make a smart clone of the master site, smart in the sense that 
> only active objects are actually cloned, but static files are shared 
> among all instances of the site. I suspect that ZClasses might be 
> involved to achieve this, but are there any issues with the fact that 
> a master site could contain folders? Furthermore I'd like a tutor to 
> be able to visit their productised site to update it, without seeing 
> a lot of alien stuff; changes to the master site should be reflected 
> in all instances of the site.

You've got a couple of problems, given the way ZClasses and Python
products currently work.  Either on one of them would allow you
to set up the static pages in a shared, updateable way; the catch
comes in how the updates get done.  For changes to be reflected in
a python product, you'd have to give the faculty member the ability
to change files in the server filesystem hierarchy.  This is problematic.
With ZClasses you can use the Zope security support to control who
updates what.  However, currently ZClasses can only go in the
Control_Panel/Products folder.  This means that all tutors will see
the products/classes used by all other tutors, which you say you wish
to avoid.

I think the best solution to this would be if you could have ZClasses
stored in a mountable storage.  Then you could have one storage per
tutor.  I don't think that is currently supported, though.

Another approach would be to have a separate Zope instance per
tutor.  This has the disadvantage of making code shared between
tutors harder to maintain.  If *that* code is in a python
product, though, you could use the INSTANCE_HOME support to have
the python product code shared between all the instances.

In short, I do think you are on the right track, but you've got
some hurdles to get over to achieve exactly what you want.

--RDM