In the first article in this series, I introduced Drupal. In the second part part I introduced Drupal as both a content management system (CMS) and a content management framework (CMF). In this third incarnation we will examine what makes Drupal Drupal and what sets it apart from other rapid web sites/applications development platforms out there.
First of all I must apologize for the long break in this series. I got lost doing, well Drupal work that I didn't have enough time to write. Thankfully I am here to complete what I started (am never one to quit) and I promise not to allow this long between articles.
In the Drupal world there are two broad categories of users: Site builders and developers. Both of these constitutes the vibrant Drupal community. You may say that both feeds off and empowers the Drupal ecosystem respectively. But it is the contributions of both that keeps Drupal alive and moving forward. Site builders will leverage the power of Drupal to create awesome web experiences while developers in finding solutions to their own or clients challenges enriches the Drupal system. Site builders articulates challenges they faces while creating websites while developers take on these challenges and provides reusable solutions.
So in essence Drupal is Drupal because of its community. Being a open-source project the Drupal community is such that every member play an important role regardless of their level of expertise. At the low level members may simply report bugs, request new features or help improve the documentations. At the high level developer members may create and contribute modules or themes. And at the top most level super-experts may commit patches to the Drupal core and even determine the directions of the next incarnation of the project.
Technically the Drupal project is composed of a core, modules, themes, documentations and distributions sub-systems.
The Drupal core contains the essential building block giving you the backbone upon which other systems are build.
Features and functionality like blogs, forums, SMS, user management, etc are realized through modules. The core comes with a set of standard modules that will get you started. You can then extend the functionality of your Drupal website by downloading and installing extra modules (contributed modules) from the drupal.org website. If the above does not satisfy your requirements you may make your own modules and plug it into the core and perhaps contribute it to the community.
In Drupal functionality and presentations are separated into different layers within the system. While functionality are realized through modules presentations are realized through the theme layer. The theme deals with the look and feel of your web site or application. The core comes with a few number of themes while hundreds maybe downloaded and installed free of charge from the drupal.org site. Just like modules you have the choice of making and using your own theme. You may even customize an existing theme to fit your own purpose if you wish.
Drupal distributions pre-packages the core Drupal with select contributed modules and themes as already configured installations that lets you quickly setup a fully functional Drupal site of a particular type. This will save a lot of time and effort if you could find a distribution that would fit your purpose closely enough.
Drupal sub-systems are well documented and being a community effort it is being improved on a constant bases. As a developer you would leverages this excellent aspect of Drupal to get you through most challenges you would face in you quest towards a Drupal mastery.
As a developer Drupal offers your a variety of ways you may leverage it to meet your requirements.
In the next article we would look at the necessary mindset that would make you truly a Drupal developer.