Why we selected Drupal as our CMS?

drupal.orgWell, here we go – our brand new website and blog is up and running. We’re using Drupal, a well-known CMS. We’ve worked with a wide range of CMS’s before but we selected Drupal because we thought:

  • it suited our needs
  • it is PHP based
  • it is under very active development
  • it has a huge (and ever-growing) user-base, which means great support
  • it has a great number of well-written plug-ins

If you have never used Drupal, let me tell you a little about the learning curve – it’s steep. You are guaranteed a few sleepless nights (or maybe even weeks) trying to get your head around it, but once you do, oh boy is it worth it. Well, at least that’s my opinion.

I won’t get into a detailed overview of how Drupal works or how to get things happening using it. I will, however, say this: Drupal is constructed in a way that you can override almost anything (providing you know your PHP stuff). You can define “custom objects” and wrap your representation pages around it. I am sure the last sentence was “very clear”.

So let me give you a quick example:

Say, you want to have a page that allows the visitors of your site to enter the specs of their PCs so you can build up a database of what computers your users use. You also want to have a page that lists entered computer systems in some way.

Here’s how you could do this with Drupal (in a very rough approximation):

  • Create a custom “content type” (object that will define a single computer system) that will hold users’ computer system’s parameters like processor, CPU, RAM, HDD, etc.
  • Create a page where you have a form that users enter their computer specs. The good thing about Drupal is that you won’t have to actually create this page i.e. you won’t have to add all those form fields manually. Instead, the form will be generated automatically using the custom content type you created.
  • Create a page that will read all entered computer systems’ specs from the database and display it in the way you want. This will also be pretty easy because, in a nut shell, all you need to do is select what “computer specs you want to display” and select “where (on the page) you want to display them”.

Described above is a very simple example and, of course, it can be done numerous other ways using Drupal or another tool. In case you are interested, for the example above you will need to install CCK and Views both of which are contributed modules.

Which conveniently leads me to the next great thing about Drupal, the contributed modules. There are loads of contributed modules to chose from, each of which can override the existing core to add the functionality you require. You can even write your own. Once you master writing your own modules you will be able to do just about anything with Drupal.

I hope this post tempts you into to taking a look (or maybe even a second one) at Drupal.

Update: Upon the completion of Border Crossing TV, we decided to develop a custom PHP framework which this site now uses. Working with Drupal was great and we look forward to doing so again.

Comments are closed.