Alright, I’ll explain. I have chosen to use the PHP based content management system (CMS) Drupal for one of my projects. This may not seem like a big deal to you but it is for me. You see, I have a small problem. I end up spending massive amounts of time trying to figure out what tools I should use for each project. This was no exception.
The project is a gaming related site with a specific focus. I admit I was able to create a shortlist right off due to continued research on CMS’s and PHP Frameworks. The shortlist consisted of: Drupal, Joomla!, CodeIgniter or MODx.
I will introduce each and explain the major factors that lead to my decision.
MODx CMS and PHP Application Framework
MODx is a very interesting project which is targeting the Web 2.0 audience with an AJAX library, SEO focus, web standards compliance and cross browser compatibility among other things. It is an open source project with the standard no-nonsense GPL.
The decision against MODx was mostly due to the current rewrite of the core code. As of writing the official release is 0.9.6.1. There is a newly rewritten core on the way and slated as version 0.9.7. In my opinion this is a major problem with many CMS’s and Frameworks. Often these open source projects are in constant flux due to major revisions.
The small part of me that is a geek feels excited about MODx but I don’t feel comfortable starting a project with what could be an outdated and unsupported code base ala 0.9.6.1. Further, who’s to say how long it will take 0.9.7 to become stable and what kind of backwards compatibility will it have? I’m not sure this was a great plan right after winning the most promising CMS award.
Joomla! took “Best PHP Open Source Content Management System” and came in second for “Overall Open Source Content Management System Award” in the aforementioned Packt Publishing Awards. Joomla! started as a fork of the Mambo CMS and has been working at making a name for itself ever since. Joomla! has two versions available at this time: 1.0.15 and 1.5.1. Both are licensed under GPL.
Version 1.0.15 maintains a certain compatibility with Mambo to allow for use of the large assortment of Mambo/Joomla extensions. A large focus on the project has been a steady move away from its Mambo beginnings. That move has resulted in Joomla! version 1.5.1. The latest version includes an object oriented API, split of logic from presentation, search engine friendly URL’s out of the box (about time) and several other changes, additions and goodies.
Again, therein lays the big problem. 1.5.1, in comparison, is a new code base with limited usable extensions. Even some die hard Joomla! fans recommend staying away from 1.5.1 until the community can catch up and provide ample offerings for it. Starting a major project with 1.0.15 may cause additional problems and considerations if the need to upgrade arises.
I do like Joomla! for its sheer simplicity and ease of use. You can have a good solid working CMS up and out the door in no time. It reminds me of a new generation of the old Nuke CMS’s where there is a large user base constantly adding to the project. The Joomla! project is a beast that is only going to get bigger and better.
CodeIgniter PHP Application Framework
CodeIgniter is not a CMS. It’s an open source library type framework for PHP programmers with a very liberal BSD like license. CodeIgniter (CI) is a great framework with excellent documentation that provides a simple and lightweight collection of libraries. It is not overly abstracted, has a very short and easy learning curve, needs minimal server requirements and moves like greased lightning compared to many other PHP frameworks. The CI team does its best to maintain backward compatibility to allow for easy transitions to new releases. This, to me, is a major plus that many open source teams are missing.
I really don’t have anything bad to say about CI. The main reason I decided against it is the amount of time involved to build the application. There are a few CI based CMS’s that are just surfacing. I will keep a close eye on them for this and future projects. Until then, I’ll be working with Drupal.
Finally, that leaves us with my decision. Drupal is a PHP based CMS which was awarded “Overall Open Source Content Management System Award” and took second for both, “Best PHP Open Source Content Management System” and “Best Open Source Social Networking Content Management System” in the Packt Publications 2007 contest.
Drupal is currently offering two versions, 5.7 and 6.1, both under GPL. I have opted for the older 5.7 due to module compatibility. Drupal provides a way to upgrade from 5.7 to 6.1 so instead of trying to run 6.1 with legacy code I will upgrade as the modules do. I am confident Drupal will continue to provide a solid and reliable way to move forward.
That leads to a serious plus for Drupal. The team is dedicated to a rock solid core and they seem focused with a steady development plan. I don’t have to worry about newly rewritten cores or drastic changes every few months. The Drupal project has that ‘old reliable’ feeling, one that is not riddled with surprises and upsets.
What has kept me away from Drupal is the learning curve. Drupal does things its own way using its own terminology. I’d say it is very unlikely someone new to Drupal could churn out a fully featured website in the same time a new Joomla! user would. What may take a new user one day in Joomla! may take a week in Drupal.
On the flip side, after that week with Drupal you are left with a sense of awe at its flexibility and potential. Sure, it is still awkward in many ways but it can be a powerful system to work with.
Another plus for Drupal is reports of an excellent API. I haven’t dove into that yet but expect I will soon.
A note for developers and designers both Drupal and Joomla! can open doors to additional opportunities. I often see local contracts for developers and designers familiar with Drupal or Joomla!. Sometimes both.
If you’re looking for a flexible and reliable CMS I would strongly recommend giving Drupal some time. I have found the online documentation to be spattered throughout the site. Often it is not very enlightening especially for modules. If you want to give Drupal a shot I would recommend checking out a Drupal book from your local library to help you along.