Concepts in Mambo CMS / Joomla

Submitted by Frederic Marand on

Mambo CMS (Mamboserver, Joomla) is an important Open Source CMS these days, and it is built on a complex data model. So I tried to abstract the main entities and model them in the form of an abused UML class diagram. Have a look.

As the upcoming sites for OSInet, Riff News and a few others will be based on an CMS, and probably an Open Source one for future-proofing reasons, I've looked into the Mambo CMS data model, as this seems to be the currently most visible CMS.

As any aspirant webmaster for a Mambo-based site will soon notice, to implement all of its eye-candy, Mambo relies on a rather sophisticated data model, and introduces lots of concepts, some of which are common to any CMS and some of which tend to be Mambo-specific. At least, that's how it feels from here.

Thumbnail for UML class diagram for the concepts in Mambo CMS 4.5.2.x So, as I had to explain all of this to myself and to the designer in charge of the future UI of the sites, I used a familiar tool to map the concepts in Mambo CMS, which is the current version these days: a UML class diagram. The thumbnail is on the right, click for the full view.

As this is very much an initial effort, the diagram may contain errors. Use at your own risk ! The diagrams are based on the code base, and are subject to change.

Note that the diagrams represent an object-oriented view of the Mambo CMS entities, but the code does not make use such an explicit object model in PHP. This means that the diagrams do NOT represent the actual physical database implementation, but a higher-level view.

This is apparent in the UML interfaces. These are not part of the actual Mambo code, but represent features implemented by the abstracted entities from which actual Mambo CMS code derives.

I've also looked at Typo3, which is very impressive, to the point of seeming unwieldy, but in the end it looks that my choice might well rest on Drupal, particularly due to its intrinsic taxonomy-based logic, which makes it a good fit for the basic model of both Riff News and OSInet.

Note that this is tagged for , , , , and in Technorati.

Blog is now on Drupal, just like my other sites.

To be quite candid, I still think that, to just maintain a blog, Dotclear is a better choice than Drupal. It's a typical case of highly specialized tool being a better fit for a specialized need. But OTOH, having been working on Drupal core and modules for months, I now know how to maintain/fix a Drupal site far better than I would know the equivalent for Dotclear and, although I'm definitely not a graphic type, I could probably design a theme for it. So...