Drupal

Drupal is one of the most-used, open source CMS in the world. The core of Drupal is reduced down to the essentials, while the system is largely extensible with plugins and modules. Drupal sets a special focus on accessibility.

Drupal was initially developed by the Antwerp student Dries Buytaert and it was first published in 2000. One year later, the project went open source. Today, Drupal has a community of more than one million members and about 100.000 active contributors. A lot of well-known companies and organizations run their websites with Drupal.

Screenshot of the Drupal homepage

If you think that Drupal is a an old and old-fashioned system, then you are partly right. Drupal is an established system with a long continuity. But it is not old-fashioned. In fact, it is astonishingly clean and fresh. So read on …

Drupal for Content Managers

Drupal provides a clean and reduced interface for content managers. And the dashboard is completely responsive (mobile friendly) and fully accessible (for people with disabilities).

The look and feel of the control panel is probably not the freshest, but it is easy to understand and provides everything you need. The core installation supports two types of posts: static pages and dynamic articles. You will use a classic HTML editor for content creation. There is no digital asset management integrated into the core version. Instead, you can use the HTML editor to add your pictures or media files to the articles or pages (with an alternative text for accessibility, of course).

Screenshot of the Drupal dashboard

You also have a lot of options for “structuring” your website, depending on your themes. That means that you can add or move content to or from different parts of your website (like header, footer, sidebar, and so on). The interface is slightly more complex to understand, but, with a bit of training, you will certainly manage it. Similar to other CMS, you can “extend” your websites with a lot of modules (like plugins). And you will find a lot of other standard features, like a user administration (with permissions and roles), website configurations, and some standard reports.

Drupal for Developers

Drupal is based on the LAMP stack, so it usually runs with Linux, Apache, MySQL, and PHP. But Drupal can also work with other technology stacks (e.g. Windows, Nginx, IIS, PostgreSQL, SQLite).

The installation of Drupal is really easy. Just download the Drupal files, create an empty database, and go to your-url-or-local-folder/core/install.php. Fill out the forms for the installation routine and you are done! Other content management systems have successfully promoted their easy installation routine as a top feature. Remember the famous “less-than-five-minutes-installation” for WordPress? Not so with Drupal. It provides at least ten extensive articles about every detail behind the installation process (and even more). A special kind of understatement …

Another fancy feature: The core-installation ships with a (not-activated) “bare-bones” theme, which is a perfect starting point to learn about the HTML structure of Drupal or to start with your own theme development.

When it comes to theme development, Drupal shows another surprisingly fresh face. As of version 8, Drupal uses Twig as a template language and YAML files for configuration and settings. This is a pretty common combination among the juvenile systems today. So heads up!

A Drupal theme has a special folder structure and at least three main configuration files (YAML):

  • themename.breakpoints.yaml
  • themename.info.yaml
  • themename.libraries.yaml

A simple Twig template might look like this:

<div class="layout-container">
 {{ page.pre_content }}
 {{ page.breadcrumb }}
 <main class="page-content clearfix" role="main">
  <div class="visually-hidden"><a id="main-content" tabindex="-1"></a></div>
  {{ page.highlighted }}
  {% if page.help %}
   <div class="help">
    {{ page.help }}
   </div>
  {% endif %}
  {{ page.content }}
 </main>
</div>

The general coding standards of Drupal are pretty advanced and fresh. Drupal follows object-oriented programming (OOP), namespacing, autoloading, and you can work with composer as a dependency manager. If you want to learn more, just read the documentation linked in the fact sheet below.

Drupal for Non Coders

The basic website installation and administration of Drupal does not require any programming skills. The easy installation routine and the amount of free themes (more than 2000) are additional arguments for non coders to try out Drupal. Of course, the universe of Drupal is not as big as the universe of WordPress, and it is probably a bit more nerdy now and then (the themes are presented with a list of links). Drupal is usually good for more complex websites, so if you decide to use it, then you should probably have some developers in your company or organization.

Drupal might be a good starting point for code newbies. It is more advanced and complex than WordPress, with less hacks and helper functions. But it is also cleaner, more straightforward, and it follows a lot of good standards and best practices.

Pricing

Drupal is completely free and open source. Even the themes and modules are completely free. You will find a marketplace for services (agencies, consultants, and other services) on the Drupal website.

Recommendation: When to use it?

Drupal is a more complex and mature system. It is probably best for medium and complex business websites, news websites, or magazines. There are also several commerce plugins and extensions for online shops. If accessibility is a requirement for your project, then Drupal is a good bet!

Drupal is used by a lot of medium-sized and large-sized companies and organizations, like Fox, Oxfam, Lamborghini, Weather.com, the BBC store and the Government of Bermuda.

So you like PHP CMS for complex and medium websites? Then you might also like these CMS: Drupal, TYPO3,

Fact Sheet

Language:
Best for Websites:
Complexity:
Special-Features (Selection):
  • Full Accessibility of Drupal Core
Requirements:
  • Webserver (Apache, IIS, Nginx, Hiawatha)
  • PHP 5.5.9+
  • Database (MySQL, MariaDB, PostgreSQL, SQLite)
  • Minimum 15 MB of disk-space
  • Modern browser (FF, Chrome, Safari, Opera, IE9+)
  • 64MB of PHP-memory. Media-rich implementations more than 256 MB.
Pricing:
  • Open Source
Licence:
  • GNU General Public

Last reviewed: January 20, 2017

Leave a Reply

Your email address will not be published. Required fields are marked *