The approach for the multi-site project is to enhance a single Joomla installation to handle calls from multiple different domains. This has the advantage that data can very easily be shared between sites. The ability to restrict specific data access between sites will then be added. The project can be further expanded following the summer to add various combinations of multi-site support, examples include: one codebase w/multiple databases, multiple codebases w/shared database.
This will make it easier to make several sites for a company or organization, with less time spent for maintenance etc.
How it will work:
- A super administrator can create a new site in the multisite component and specify what URL and table prefix is associated with by a siteid
Which will trigger the following:
- During the creation of the multisite the super administrator will have options on which tables are to be shared if any (users, sessions, content, components etc..)
- The new site install will trigger a mysql query that will create the database structure using the table prefix defined. If tables are being shared this new table will point to that of the shared site.
- A configuration file similar to the main site will be assigned to a specific siteid, allowing super administrators to change options to their site
- Super administrators will be able to go to a section of the multisite component to choose if they would like to share specific components between the sites and keep others separate
- On the frontend JRoute will handle URL detection and use the appropriate configuration file to load the proper site.
Outline of planned approach:
Step 1: Build component that can be used by super administrators to create/edit multi-sites
Step 2: Create installer to deploy separate multi-sites
Step 3: Create installer to deploy shared multi-sites
Step 4: Create configuration loading scheme for sites
Step 5: Add modifications to the core installer for multi-site
Naveen has completed the administrator component and I am currently working on the installer for non shared sites. He has also updated the original project page with the new approach.