jasonic@nomadicsltd.com said:
That sound just like what I am looking for.. and for similar reasons. Is your product posted anywhere?
Nope. When things get quieter here, I'm planning to separate out a bunch of goodies I wrote the last half year and post them, but at the moment I'm too busy for that. It's not that it is much code: # # $Id: VirtualHostFolder.py,v 1.2 2001/05/03 13:24:04 cg Exp $ # from Globals import HTMLFile from OFS import Folder from Products.ZCatalog import CatalogAwareness from Products.SiteAccess import SiteRoot import string class VirtualHostFolder(Folder.Folder, CatalogAwareness.CatalogAware): """A virtual host folder""" meta_type = 'TIO Virtual Host Folder' def __init__(self, sitename): self.id = sitename.lower().replace('.', '_') self.title = sitename self.default_catalog = 'sites' def manage_beforeDelete(self, item, container): print "Deleting stuffsky..." Folder.Folder.manage_beforeDelete(self, item, container) self.unindex_object() def manage_add_virtualhostfolder(self, sitename, REQUEST=None, submit=None): 'Add a Virtual Host Folder' o = VirtualHostFolder(sitename) self._setObject(o.id, o) SiteRoot.manage_addSiteRoot(o) getattr(self, o.id).index_object() if REQUEST is not None: self.manage_main(self, REQUEST, update_menu=1) manage_add_virtualhostfolder_form = \ HTMLFile('manage_add_virtualhostfolder_form', globals()) -- and using it from an AccessRule: def vhost(self, REQUEST): hostname = string.split(REQUEST['HTTP_HOST'], ':')[0] r = self.sites({ 'id': string.replace(hostname, '.', '_')}) if len(r) == 1: path = string.split(r[0].getPath(), '/')[1:] path.reverse() REQUEST['TraversalRequestNameStack'].extend(path) REQUEST.set('SiteRootPATH', '/') else: # I look into a SQL database here to do things like business cards # and redirects as you can see, still SiteRoot based. I don't even have the time to subject VHM to a decent evaluation yet :=) -- Cees de Groot http://www.cdegroot.com <cg@cdegroot.com> GnuPG 1024D/E0989E8B 0016 F679 F38D 5946 4ECD 1986 F303 937F E098 9E8B