In summer of 2003, I started looking for a Content Management System that would help make the task of putting content on my web sites easier, and less time consuming.
Read below for how the journey started.
My requirements were fairly straight forward, yet unique. These were not clear from the beginning, but evolved gradually as I evaluated various alternatives.
- It has to be able to use MySQL database as its data store. Not because it is a superior database, but because it is available at hosting accounts, and is simple and easy.
- It has to be in a language that I am comfortable with, poweful, yet simple, so I can modify it myself if need be. PHP fit here nicely. No Perl please.
- It has to be able to support several domains on a single hosting account. The reason here is saving money, since I do not want to pay for several accounts, but only one.
- It has to use clean URLs. In other words, it should not have excessive use of special characters, like ? & and the like. The reason is that these confuse search engines sometimes. Even to a human, the URL http://baheyeldin.com/linux is much better than http://baheyeldin.com/index.php?module=news§ion=linux
Evaluating what is available
I first evaluated PHP Nuke, by downloading it and installing it on my home test server. Although it had lots of add-on modules, and themes, it suffered from severe security problems.
Then, I evaluated Post Nuke, which was a spinoff of PHP Nuke. It is more secure, and has lots of modules written for it too.
There are lots of other CMS around, and Open Source too. These include Xoops, Mambo, Xaraya and much more. You can check how they all compare at OpenSourceCMS.
I can't remember how I stumbled across Drupal's web site. It was sometime in the summer of 2003, and either through checking Hotscripts or some other program repository, or some other link.
From checking my emails, it was by 13 Sep 2003 that I had test sites up and running and showing them to friends.
For a quick overview of Drupal from a non-technical point of view, check Wikipedia's article on Drupal.
Quickly, I realized how powerful it is as a framework, and how modular its design is. Although other CMS had more modules for it, Drupal was growing fast, and modules were added every day. That power was tempting, and I started to contribute to Drupal. My first contribution to Drupal was on 29 September 2003.
Converting My Old Content
Years ago, I had developed my own handcrafted rudimentary Content Management System to host my web sites.
It used MySQL only for statistics, page counts, and the like. The content itself was in .phtml files, which were PHP files with an include for the header, side menu and footer.
The includes were a set of functions that did various things such as read configuration files, redirect to the appropriate domain, display the standard components, such as the stylesheet, the logo, the top pane, the side menus and the footer. It would also insert statistics and hit information to the database.
Needless to say, this system has outlived its usefulness.
Since I was moving to a new CMS, viz. Drupal, I needed to convert the old stuff to Drupal, and preserve the counters, creation date, and the like.
So, I wrote a combination of shell scripts and PHP scripts that takes the .phtml files, and inserts them in the Drupal database. It also preserves the URL Alias, the visit counts.
I had custom developed PHP stuff way back when, and it worked like this:
- Each web page was a physical file with .php extension.
- Every page called a header function and a footer function.
- There was some PHP code interspersed in the HTML of the content
In order to convert that to Drupal, I created some special migration function that would replace the header and footer, and output HTML, then feed that HTML directly to the database that Drupal would use , thus creating nodes.
I also preserved the URLs using the URL aliasing feature of Drupal, so anyone linking to me would still get the same page.
For images, I created a new directory called "ex/images" under my public_html directory, and changed the old links to this one.
The cutover for the conversion was completed in January 2, 2004, and I have been on Drupal ever since.
I have also written several Drupal modules, and contributed them to the community. Check the Drupal section on this web site for more.