To Drupal or not to Drupal, that is the question. Drupal is one of several open source Content Management Systems (CMSs) out on the market right now, and for many, it’s a great choice. Drupal is also built using PHP which is well known for its robust web application development. Web projects large and small have used Drupal for their web application needs, including a couple very popular websites:
Why Use Drupal
- Drupal is Free – With many proprietary CMS’s you will get charged a significant amount of money to use the CMS, not to mention the fees to add on additional modules. With Drupal there are no fees and add-ons are also free.
- Drupal is open source – Not only is Drupal free, but it is also open source. This means that you have access to all of Drupal’s code, which is good because you can fully customize Drupal. As a developer, if something in Drupal’s core framework doesn’t work the way I expect, I can go into the code and totally customize it.
- Drupal is based on PHP – Not only is PHP known as a solid framework to build web applications, but not having to compile code (RAD – Rapid Application Development) makes working with PHP fast and easy. For example both Facebook and Wikipedia use PHP.
- Drupal is extremely flexible – Drupal has more than 16,000 available modules. Many of the modules you might find are production ready, and take seconds to install and use. Many common website requirements can be taken care of by using a module, preventing you from having to re-create the wheel. You can use modules for most of your website’s requirements, but you can also create new modules for others to use.
- Community based – Since Drupal is a community based CMS, it is evolving constantly. Getting support from the community doesn’t cost a dime and responses from the Drupal community are rapid and extremely helpful.
- Well Documented API – When working with a CMS, it is crucial to understand how to use the CMS’s API just in case custom development needs to happen. Drupal API documentation is clean and easy to understand which makes finding and implementing methods very easy. (https://api.drupal.org/api/drupal)
When to Consider Another CMS
- Lack of official support – Since Drupal is open-source and not owned by any single company there’s no support that comes with the CMS. Unless you have experience with Drupal, you have to rely on your partner (e.g. Primacy) to provide CMS and solution support.
- Version wars – There are multiple versions of Drupal out there and, often, it is not clear which one should be used. This may be confusing for new users who have to choose which version of Drupal to use and need to consider compatibility with your current hosting provider and development environment.
- Too many modules – Many modules that can be used to customize a CMS can be a blessing or a curse. There are literally thousands of community built modules that may or may not work for your product. Some modules require older versions of PHP and the CMS software, which the current build may not be compatible with.
- Free as in “Free Speech”, not as in “Free Beer” – The Drupal CMS may be free to download and look through the source code, but it’s really not free when it comes to running a production website that your business may depend on. The CMS will need to be customized and programmed in order to make it work for your project needs and business objectives. Meaning either you or your agency partner will need to have in-depth knowledge of Drupal to get a website up and running on it.
The Case for Drupal: Development
Let’s assume you decided to use Drupal for your web project. Developing in Drupal is a snap. There is a module for virtually every need and accessing data from fields is also very simplistic, yet powerful. Let’s explore the scenario below as an example.
You want the ability to add extensible content on a webpage. Each individual piece of content needs to have its own summary section, and it also needs to have a thumbnail image as well. Furthermore, each piece of content on the page needs to link to a page of its own that will display a “Full View” of the content.
Drupal can be very flexible with types of content. Think of a “content type” as a piece of information on your website, for example, an article or a news page. In the scenario above the first step is to install a module that would allow me to link nodes (name given to content on a Drupal website).
I found a nifty Drupal module that allows node references to be added to other nodes. I was able to get the References module installed in seconds and start using it right away.
Next I had to create a new content type. Drupal makes adding new content types and fields to content types very simple. Some example fields for an article might be Date Published and/or Location, but since Drupal is flexible, I was able to make other fields that relate to the scenario above.
- Main Content Image – This field has a field type of Multimedia asset. It allows the user to add or upload a header image from the media gallery.
- Summary Image – This field also has a field type of Multimedia asset. It allows other nodes added to the Content Reference field to use a summary image instead of the Main Content Image.
- Content Reference – Field type of Node Reference. This field allows users to link nodes to other nodes.
- Body – Field type long text and summary. It includes the main content area for a page, but also a place for summary content.
Once the content type was set up, I was able to add a new node of the content type I just created. Since my content type has a field of type Node reference, I am able to link other nodes to the node I created using the Content Reference field.
The setup in Drupal is complete, now in your php tpl page, you have access to the nodes set in the Content Reference field. With a little bit of code you can grab that data and display it on your website however you would like.
The Final Result
Drupal is a simple yet powerful CMS that can handle many of your content management needs. It runs on PHP, one of the best web application frameworks in the market, and it also is flexible enough to accommodate almost every web application need with over 16,000 available modules to choose from. For all of its strengths, Drupal may not always be the best choice due to lack of official support and many versions and modules to choose from. At the end of the day, if you are looking for an open source solution for your web application needs, Drupal may just be the CMS for you.
For additional Drupal features that weren’t covered in this post please visit:
Other Posts from the Primacy CMS Series:
- Improving the Efficiency of Web Content Management
- Sitefinity: A Focus on Personalization and the Mobile Web
- The CMS Search Quandary