I run three or for different set ups where the sites share common
code, but the look and feel is different to some extent.

each of the two examples below run about 12 differnet sites, with
varying degrees of shared content - i wont post all the ULR's or it
will look like i'm link spamming, but a couple of instances are

http://savewatersavemoney.co.uk
http://st.savewatersavemoney.co.uk
http://awdirect.savewatersavemoney.co.uk

(these all share a common domain, and have different branding based on
the subdomain, as you will see, the first two are very similar - the
last is very different.

a seperare set up is.

http://www.northwestitjobs.co.uk
http://www.southeastitjobs.co.uk

these are very similar - but have different domain names,

i have a couple of other requirements, in that its possible to add new
domains on the fly, so i store my site data in a db table - you dont
have to, its just easier for the way i need to do things. the example
below is for symfony 1.0, and im doing this from memory, so i dont
have al the details to hand, but its enough to get started - i can
provide more details tomorow if you wanrt though.

so a table, called site.

id,
site_name
url_map.
branding_folder
site_title

etc etc

each of  my actions has a preExecute method like so. (though if i was
re writing i'd probably use a filter i guess)

public function preExecute()
    {
        siteBranding::getSiteBrandingDetails($this);

    }

the method matches the current request url to the url_map column, if
it finds a match it changes the template to be a customised one.


 $site = SitePeer::retrieveByURL($_SERVER['HTTP_HOST']);  // basically
just does a simple SitePeer::doSelectOne()

if($site){

     $action->site=$site;   // $action is the $this we passed in
above,
     sfContext::getInstance()->getResponse()->setTitle($action->site-
>getSiteName());
     sfContext::getInstance()->getUser()->setAttribute("current_site",
$site);  // i store this in the session so that i dont have to do the
look up every time - if the value is set, it just returns the existing
site.
     $action->setLayout(sfConfig::get('sf_web_dir').$site-
>getBrandingFolder()."/layout"
             );
     }else{
             $action->setLayout(
                sfConfig::get('sf_web_dir').
                "/branding/sites/generic/layout");
    }



sorry thats all a bit messy, but as i say  - shout if you want to see
the proper code (or feel free to post about why my method of doing it
sucks - always happy to see other view points ;-)


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"symfony users" group.
To post to this group, send email to symfony-users@googlegroups.com
To unsubscribe from this group, send email to 
symfony-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/symfony-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to