What is Drupal?

by

Drupal is a free, open source platform that can handle just about anything you can dream up. It can serve as either a basic content management system (CMS), or a content management framework (CMF), depending on the user’s experience with programming. Built on a LAMP stack (short for Linux, Apache, MySQL and PHP) Drupal offers one of the most extensible and leanest frameworks of all the open source content management systems. Drupal web design allows users the flexibility to build basic websites or expand into user-defined, customizable communities with social publishing capabilities, and virtually anything in between. Even the White House understands the benefits of the Drupal content management system, choosing it as the platform for the official White House website.

The primary difference between other content management systems and the Drupal CMS is the use of modules, rather than plugins or extensions. Modules function like building blocks, adding to the flexibility of Drupal core and allowing the user to create a site specifically designed to meet their own needs. Instead of using cookie cutter plugins to piece together an online presence based on developer assumptions, Drupal users can make their own cookie molds.

The Drupal Overview

You take a much different approach to Drupal web design than other platforms. Information is structured into nodes, with menu systems and views determining how nodes are structured and displayed to site visitors. Tags, known as taxonomy in Drupal lingo, further help the system and the user classify, organize and display various types of content. Using these tools, as well as others, allows the user to define different experiences for different site visitors. Flexibility is the key to Drupal, and nodes are the secret to that flexibility. JavaScript libraries such as MooTools, Prototype, jQuery, YUI and Dojo are all supported, although you may want to be aware of existing conflicts depending on the scripts you are using.

Installation of Drupal is simple, with files uploaded via FTP. Some hosting companies even offer the capability for one-click installation. Once installed, the user simply answers a few questions regarding configuration, selects a theme and starts uploading content. Themes are based on PHP, with no tables, for a clean, standards-compliant markup. Collaboration with other users is easy to set up, simply by defining permissions for any number of collaborators. Numerous tools are included with Drupal core and can be chosen by simply turning on a module.

How Information Flows in Drupal

Information is organized in Drupal CMS based on five primary layers; data, modules, blocks, user permissions and the template. Each layer builds on the previous, ultimately reaching a highly customizable experience for site visitors. Data, or nodes, serve as the foundation, since without data, there is no website. Modules form the next layer, allowing site owners to install e-commerce functionality, blogs, social publishing features, and other predefined site features. Blocks and menus build from modules, placing various nodes within the site’s layout. User permissions are then set by the site owner, determining how each visitor sees the website and what they are allowed to do while on the site. Finally, the template gives the site its overall look and feel.

Nodes, Data and Site Content

All content on a Drupal site is treated equally, with each piece of content creating its own node. For example, blog posts, discussion board threads, pages, articles and other items of content are classified as individual nodes. Each node is assigned an ID, as well as other properties assigned by the user. The content is tagged, or entered into the Drupal taxonomy, and stored for use according to various settings in future layers.

Modules

Similar to, but more flexible than plugins, modules are pieces of PHP code with standard functions, based on the developer’s intended purpose. Drupal core includes several modules for common features and functions, although the Drupal community offers thousands of additional free modules. Modules extend functionality for things such as file uploading and storage, third party site analytics, site skins and site security features.

Blocks and User Permissions

Blocks and menu structures let the site owner define where various nodes will appear on the finished site. Since Drupal pages are based on regions such as header, footer or main section, blocks help the site owner determine what region will hold what information. User permissions are then set by the site owner, determining how each user will see content and how they can interact with the website. According to the modules and blocks used, the site owner can allow certain users to customize where blocks display and what content is displayed in those blocks.

Theme

As with most content management systems, Drupal uses themes to determine the overall look and feel of the website, from the visitor’s point of view. Colors, layout and similar attributes are controlled by the theme. Most themes are based on a mix of PHP and CSS.

The Pros of Drupal

Drupal offers serious flexibility, beyond the traditional hierarchy-tree approach to site pages. This is what allows Drupal to serve as both a CMS and a CMF. Rather than building static pages and using plugins to create added features, Drupal lets the site owner build a framework of information that can be displayed in any number of ways, based on permissions.

Drupal works on LAMP, MAMP or WAMP

Drupal is stable, free, open source and has a large, active community of developers. Between core modules and the developer community, users have access to more than 4,000 modules for increased customization.

The Cons of Drupal

Unfortunately, Drupal has a steep learning curve. Users should have a strong understanding of programming, API, and PHP to fully utilize all of Drupal’s capabilities.

Since many modules are offered by the community of Drupal users, documentation on some modules is lacking. In particular, information regarding updates and abandoned development for individual modules is often not available.