The following steps worked for me when installing the
Silverstripe Subsites module:
1. Create a directory in your root silverstripe installation.
'~/Sites/silverstripe/subsites'Download, and unzip the code into this directory. I deleted the 'trunk' directory to keep things tidy.
2. Ensure every folder in your silverstripe hierarchy has the user '_www' read/write access
3. There is a problem linking the Group table in the database, so for now comment it out in
'silverstripe/subsites/_config.php' so it looks like this:
<?php
Object::add_extension('SiteTree', 'SiteTreeSubsites');
new SiteTree();
Object::add_extension('ContentController', 'ControllerSubsites');
Object::add_extension('LeftAndMain', 'LeftAndMainSubsites');
Object::add_extension('LeftAndMain', 'ControllerSubsites');
Object::add_extension('File', 'FileSubsites');
?>
Then visit
http://localhost/silverstripe/db/build?flush=1 This will set up the initial database tables for the subsites module.
5. We need to manually modify the
Group table using the following SQL. Note that 'Group' is a reserved keyword in mysql so make sure you wrap it in backquotes:
alter table `Group` add SubsiteID int(11) not null default 0;
6. We also need to manually insert the first 'Template' into the
Subsite table:
insert into Subsite (ID, ClassName, Created, LastEdited, Subdomain, Title, Domain)
values ("", "Subsite_Template", NOW(), NOW(), "newsubdomain", "newtitle", "mysite.com");
7. Now you can uncomment your
'silverstripe/subsites/_config.php' file and add the following two lines so that it looks like this:
<?php
Object::add_extension('SiteTree', 'SiteTreeSubsites');
new SiteTree();
Object::add_extension('ContentController', 'ControllerSubsites');
Object::add_extension('LeftAndMain', 'LeftAndMainSubsites');
Object::add_extension('LeftAndMain', 'ControllerSubsites');
Object::add_extension('Group', 'GroupSubsites');
Object::add_extension('File', 'FileSubsites');
Director::addRules(100, array(
'admin/subsites/$Action/$ID/$OtherID' => 'SubsiteAdmin',
));
Object::addStaticVars( 'LeftAndMain', array( 'extra_menu_items' => array(
'Sub-sites' => array("intranets", "admin/subsites/", 'SubsiteAdmin')
)));
?>
For good measure, visit
http://localhost/silverstripe/?flush=1 to make sure any database changes have been picked up.
8. Then visit http://localhost/silverstripe/admin?flush=1 to reload your CMS. You should now have the 'Sub-Sites' tab in the Silverstripe admin CMS along with a dropdown in the top right hand corner that allows you to select which subsite you are currently working on.
Documentation for this module is in alpha ;-) , so if anyone has any tips on refining these installation instructions please let me know.