Google Summer of Code is a global program that offers student developers stipends to write code for various open source software projects. One of the students accepted into the program was Naveen Gavini, an undergraduate Computer Engineering and Computer Science student at New Jersey-based Rutgers University.
Naveen's project -- focused on multi-site functionality for the popular Joomla! (news, site) Web CMS -- is on schedule and going well. But what does multi-site support for mean for you? Let's take a look.
Native Multi-Site Support
Gavinis project during Google Summer of Code is to develop native multi-site support for Joomla! CMS. Businesses and organizations of all sizes use Joomla! as a tool for creating websites. Using one content management system to manage several websites is valuable for these organizations. Such functionality will equal easier administration and painless upgrades, as extensions and settings are managed centrally for all sites.
A Large Project
According to Gavini, developing multi-site support is a very large undertaking with many subsets of the problem. The main goal in this development cycle is to enable a single Joomla! installation to handle calls from multiple domains, the obvious benefit being data sharing between sites. This represents a manageable task for Google Summer of Code, and will provide the following functionality:
- A simple interface to install multi-site configuration.
- One code base using one database
- A system which is compatible will all existing modules, components and plugins
- Sharing of users, sessions, modules, components and content between sites
- Full control over Joomla URLs giving the user the ability to make your URLs shorter
(Example: www.yourdomain.com/index.php?option=com_forum&itemid=54 to forum.yourdomain.com)
The first implementation of Joomla! multi-site support will be quite basic, but the project may be expanded after Google Summer of Code has ended.
Future iterations might give us various combinations of multi-site support. For example one codebase using multiple databases, or multiple codebases sharing a database.
Ease of Use is a Must
One goal of the project is to make setting up and managing multi-site Joomla! installations easy enough so that any user can do it. It must be easy to install and manage multiple sites for users without knowledge of databases and programming.
There are some Joomla! multi-site extensions on the market already. However, the ones I've found require hacking the Joomla! core. Even though measures have been taken to back up core files when installing the extensions, hacking the Joomla core has been strongly advised against. It makes updating the site harder and may represent a security risk. The solutions I found are commercial products.
[Editor's Note: See our previous coverage including Joomla Multi-Site Single Interface Management and Multi-site Management with Drupal, Plone and Joomla!]
Joomla 1.6 and MySQL 5 Only
The multi-site functionality will be provided for Joomla 1.6 only, and demands MySQL v5+. The developer states he will try to keep changes to the core at a minimum, and keep the changes as non-invasive as possible.
Multi-site support for Joomla will in my opinion, represent a significant upgrade in functionality. It can provide an opportunity for Joomla! to compete in even more areas, such as Enterprise Web CMS arena where managing multiple websites is a common use case.
Multi-site management functionality will open the door for larger organizations to adopt Joomla! as their primary web content management system. This will, in my personal view, benefit the Joomla! project and the free/libre open source movement as a whole.
Will you be using multi-site with Joomla? And if so, how will it impact you?