Web Design & Development Guide
pronunciation: [druː pʰʊɫ])
is a free and open source modular
content management system written in the programming language
PHP. A content
management system (or CMS for short) is a web application that handles the
displaying of content without any special knowledge (or in some cases none) of
the language the system was programmed in, which in this case is PHP.
Drupal is able to run on a number of different platform environments,
assuming the system can run one of the two web server systems, Apache, or IIS.
Since Drupal, like other content management systems, uses a database to store
content and settings, it requires a database package such as MySQL or PostgreSQL.
As of July 26, 2007, the current
version of Drupal was 5.2.
Originally written by
Dries Buytaert as a bulletin board system, Drupal became an open source project in 2001.
Drupal is an English
transliteration of the Dutch word “druppel,”
which means “drop” (as in “a water droplet”). The name was taken from the now
defunct Drop.org website, whose code slowly evolved into Drupal. Buytaert wanted
to call the site “dorp” (Dutch for “village”, referring to its community
aspects), but made a typo when checking the domain name and thought it sounded
Over the years, Drupal has gained popularity. From May 2006 to April 2007,
Drupal was downloaded from the Drupal.org website more than 600,000 times.
A large community now takes part in Drupal's ongoing development.
Content Management System
Drupal has a basic layer, or "core", which provides essential features
and supports pluggable
modules that add additional functionality.
Modules included in Drupal's core enable users to:
- Post, revise, and categorize content
- Conduct searches
- Post comments
- Take part in forums
- Vote in polls
- Work on collaborative writing projects
- Post and view personal profiles
- Communicate among themselves or with the managers of a site
- Change the look of a site with off-the-shelf or custom-made themes
- Build multi-level menus
- Provide users with an interface in their local language
- Provide RSS
- Gather content from the RSS feeds of other sites
- Register and manage user accounts
- Assign fine-grained user roles, granting users permission to use
selected features of a site
- Use access rules to deny site access to specified usernames, e-mail
addresses, and IP addresses
- Provide statistics and reports for administrators
- Manage caching and throttling to improve how a site performs in heavy
- Construct and specify various input filters and content types
- Generate user-friendly, easy-to-remember URLs (for example,
"www.mysite.com/products" rather than "www.mysite.com/?q=node/432)
The version control system, also a core feature, tracks the details of
content updates, tracking who changed it, what was changed, the date and time of
changes made, and so on. The system provides for a comment log and enables users
to roll back content to an earlier version.
Users and administrators can employ core features without needing to know PHP
Drupal's modular design allows people with knowledge of PHP to write modules
to implement additional features. The Drupal website provides many hundreds of
free modules written by Drupal users.
These modules provide, for example,
systems, workflow features, photo galleries, organic groups, Google sitemaps,
mailing list management, and integration with a CVS.
Integrating the modules with the core via a system of hooks, or
callbacks, allows modules to insert functions into Drupal's path of execution.
Drupal core provides protection against many of the usual security problems,
like SQL injection.
Most themes for Drupal are written in the
Earlier templates used hard-coded PHP.
Earlier versions of Drupal's theming system were criticized
as being less design-oriented and more complicated than the systems for Mambo
and Plone. The inclusion of the PHPTemplate and XTemplate engines in Drupal has
addressed some of these criticisms.
As of August 2007, translations for Drupal's interface were available in 37
languages other than English (the default).
Supported languages include some that read right to left, such as Arabic and
The installation of Drupal (and its modules) requires access to a database as
well as certain high-level privileges, including the ability to use SQL commands such as
SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, and LOCK TABLES.
Some Web hosting providers, however, do not offer these features. Anyone who
wishes to use Drupal should ensure that their host offers these features before
they begin installation.
As with other content management systems, one can set up the initial database
by using the command line
or with phpMyAdmin/PhpPgAdmin.
But since version 5.0 one can install Drupal and set up the database almost
entirely from a web-based interface.
have considered Drupal more difficult to learn and slightly more difficult to
install than some simple CMS programs or basic blogging tools such as
Drupal 5.0, released January 15, 2007, is packaged
with a web-based installer to partly answer these criticisms, and Drupal 6.0,
which may be released in September, goes even further.
Some programmers critize Drupal because they perceive it as not being
Drupal programming from an object-oriented perspective explains how OOP and
AOP principles apply to Drupal.
the basis for DeanSpace, a content management system used to power many
independent websites supporting the 2004 presidential campaign of Howard Dean.
After the Dean campaign ended, the DeanSpace project grew into CivicSpace, a Drupal-based "grassroots organizing platform that empowers collective action
inside communities and cohesively connects remote groups of supporters."
includes CiviCRM and other features useful on websites for nonprofit
organizations and political campaigns.
There are several other customized Drupal distributions. Most are simply
Drupal repackaged with third-party modules, but some also include modifications
to the core. An example of such a distribution is
vbDrupal, which is Drupal integrated with vBulletin.
Drupal has been discussed in several books:
- Pro Drupal Development (April 2007) by John K. VanDyk and Matt
- Drupal: Creating Blogs, Forums, Portals, And Community Websites
by David Mercer (ISBN
- Building Online Communities With Drupal, phpBB, and WordPress by
Robert T. Douglass, Mike Little, and Jared W. Smith (ISBN
The revolution will not be televised: democracy, the internet, and the
overthrow of everything by
- The power of many: how the living web is transforming politics,
business, and everyday life by Christian Crumlish (ISBN
We the media: grassroots journalism by the people, for the people by
Dan Gillmor (ISBN 0-596-00733-7)
- Drupal. Community-Websites entwickeln und verwalten mit dem Open
Source-CMS. (German) by Hagen Graf (ISBN
Deelstra, Heine (2007-07-26).
Security updates and bugfixes available: Drupal 5.2 and 4.7.7 released
"Drupal Download Statistics,"
(The features of Drupal's core are described in the online "Drupal
Handbook" beginning at
theme engine", Drupal.org.
theme engine", Drupal.org.
does Drupal compare to Mambo?" discussion thread, Drupal.org.
http://drupal.org/project/Translations (retrieved 12 August 2007)
Alister Lewis-Bowen et al., "Using
open source software to design, develop, and deploy a collaborative Web
site," IBM, July 11, 2006.
Drupal 5.0 Feature List January 15, 2007. Accessed January 15, 2007.
CivicSpace, a significant contributor to the Drupal project,