This review follows on from my previous article, which outlined the criteria I applied to many of the main open source CMSs to determine their suitability for a developer. Mambo is an established product which has received many industry awards (e.g. Best of Show and Best Open Source Solution at the LinuxWorld Conference and Expo Feb. 2005; Best Free Software Project of the Year, Linux Format Awards 2005). It is ideal for small, simple websites with a straightforward structure.
Homepage: http://www.mamboserver.com/
Version evaluated: 4.5.1
License: GPL
Platform: PHP + MySQL (should run on any standard ISP space supporting these)
Commercial support: available from Miro International, including per-incident support and service level agreements
Example sites:
Mambo would provide a good foundation for a web development company looking to provide simple managed-content websites. It can be easily configured to allow registered users to log in and edit pages via the web: the tools made available for authors are straightforward and require little training. From a developer perspective, some decent documentation is available at http://docs.mamboserver.com/ (though some of it is annoyingly incomplete).
Mambo is probably the simplest to install of the CMSs covered in this review. The only preparation needed before installation is creation of a MySQL database and user; the rest of the installation is carried out through a wizard interface via the web browser. This includes thorough checking of the required directory permissions and PHP settings, so if anything is incorrect in your PHP + MySQL setup, you are alerted before installation is attempted.
Once installed, the default set of features is focused on providing ease of use for the website author:
While Mambo has many excellent features and is generally easy to configure, there are a few areas where I feel it is lacking:
Additional extensions are available from MamboForge. While testing Mambo, I installed a couple of these to add the functionality I needed:
There are many extensions covering a wide swathe of functionality. The developer community seems very vibrant.
One caveat about extensions is that they tend to be of variable quality, with several that are simply unsuitable for use on a production website (e.g. they produce buggy output or simply don't do what they are supposed to).
The templating system in Mambo is not particularly elegant, and relies on PHP programming experience. So it could be difficult for a designer without PHP experience to make significant changes to the default templates. Having said this, some minor changes can be made by moving page elements around through the administrator interface, and by altering the CSS for the site.
The Mambo source code seems to be very low-level: there is a lot of manual string formatting, HTML embedded in PHP, and large tracts of procedural script (rather than function calls). There is no clean separation between presentation and logic, and careless changes to the HTML layout of a page could easily impact on PHP code.
There also seems to be little in the way of an API which modules can call: instead, a component or module seems to simply act as a script which is loaded and run by Mambo wherever it is to included. Compare this to Drupal, where a single module could affect multiple parts of the page, inserting HTML into the header, footer, side menu, content pane, etc.. A Mambo module has very localised effects by contrast.
In summary, Mambo seems less "hackable" than some of the other systems covered here, and less open to developers: an experienced PHP programmer would be able to make changes, of course, but Mambo does little to make this easy.
Related articles: