What is Drupal?
Drupal is an open source content management system (CMS). CMS are the back-end infrastructures of websites that allow content to be created and managed with greater ease. Of all major content management systems, WordPress, Joomla and Drupal are the most popular. All are open source platforms. "Open source" refers to any software that opens its code to anyone with programming skills. The major advantage of using open source software is anyone can modify it to suit the needs of the individual project.
When compared with WordPress and Joomla, most developers agree that Drupal is more difficult to master, but much more powerful and flexible. You can find a more detailed comparison of the three open source CMS options in our post, Drupal, Joomla, Wordpress, Oh My!
Drupal is no ordinary CMS. By design, Drupal is the perfect content management solution for nontechnical users who require simplicity and flexibility. Through a modular approach to site building, Drupal offers its users both. For this reason, Drupal can be described as having the strengths of both a content management system and a content management framework. With Drupal, you can build almost anything. It's just a matter of combining the right modules.
The History of Drupal
Dries Buytaert started the Drupal project in 2000 while attending the University of Antwerp. It was originally designed as a simple message board system. Originally called "Drop," Drupal looked eerily similar to what would become Facebook. Dries and his friends would use the system to leave each other messages, coordinate dinner plans and write updates about their lives.
Over time, others became interested in the project. Strangers would email Dries patches for Drupal. These interested parties grew into a mailing list and then a much larger community. Eventually, Drupal gained the recognition and respect it deserved as a very capable CMS by the web development community.
Drupal Core Concepts
Nodes vs. Modules
A single web site could contain many different types of content (informational pages, news articles, polls, blog posts, etc.). In Drupal, each of these items of content is called a node. Each node belongs to a single content type, which defines the various settings for nodes of that type (such as whether the node is published automatically and whether comments are permitted).
So, a "node" is a piece of content. Anything can be a node; a page is a node, an article is a node, a product is a node. It is a developer's responsibility to define their nodes and how each will be displayed and handled on your site.
A module, on the other hand, is a piece of code that serves to extend Drupal's functionality. As a new Drupal user, you'll start with Drupal's core module, the simplest version of Drupal with very few features. When you add modules, your site can do more. There are plenty of modules that have already been created by Drupal's developers to address a number of website needs. Rather than reinventing the wheel, a new Drupal user can add these modules onto their site. The modules that can be added are called "contributed" modules because they have been contributed by members of the Drupal community. As the size of Drupal's development community is quite large, there are plenty of modules available that can handle almost anything. For example, Ubercart is a popular eCommerce module that offers a website the infrastructure necessary to sell products online.
Nodes and modules are the basic building blocks of Drupal. On top of nodes and modules are layered other Drupal controls, such as permissions for different types of users, menus and themes or "skins" of the website. Your development team has complete control to customize and tweak the site as you'd like. It's this level of customization that makes Drupal so powerful yet so difficult to master.
An entity type is a way to group together fields. Entity types are used to store and display data, which can be nodes, comments, taxonomy terms, user profiles, etc.
Each comment is typically a small bit of content that a user submits and attaches to a particular node.
Taxonomy is Drupal's system for classifying content provided by the core Taxonomy module. With Drupal, you can define your own vocabularies and add new terms. Each vocabulary can then be attached to one or more content types. In this way, nodes on your site can be grouped into categories, tagged, and classified in any way of your choosing.
Users & Permissions
Next to content, users are the most important component to your website. By default, a user has a set of associated properties including a username, password, role, and e-mail address. You can extend these properties through additional modules. For example, you could add a "Link" field to a user to log their Twitter address.
With Drupal, you can easily manage users, divide them into types or groups and define different levels of permissions. Permissions can be set to control what users have access to view and/or edit in particular areas of a site. Permissions are a powerful feature to use when developing your site's structure as they can be very specific
Every visitor to your site is considered a user, whether they have an account and log in or visit the site anonymously. Each user also has a numeric user ID special to that type of user.
Types of Users
- Master Administrator: This user has the ID one (1). The Master Administrator is the primary admin user account created during Drupal installation. This user has permission to do absolutely everything on the site.
- Logged In: Users that log in are assigned a user ID when they register for the website. A user name and email address is associated with any user that isn't anonymous
- Anonymous: Anonymous users who visit the website but do not login all share a user ID of zero (0).
You can assign permissions for other users on your site via roles. Drupal permissions are quite flexible as you can assign permission for any task to any role, depending on the needs of your site.
Regions & Blocks
Pages on your Drupal site are laid out in Regions. These include the header, footer, sidebars and main content regions of your site. Your chosen theme may define additional site regions.
Blocks are chunks of information that display in the regions of your site. Blocks can take the form of HTML or text, menus, the output from modules, or dynamic listings (e.g. list of upcoming events).
By default, content on your Drupal site is not placed in any particular structure. The best way of bringing structure to your Drupal site is to use menus.
A standard installation of Drupal has four initial menus: main menu, management, navigation and user menu. You can add more menus via Drupal's interface. You can also choose where and how they will be displayed.
With Drupal, you aren't limited to a single way of presenting your site's content. You can define custom themes or designs for the site. You can find some contributed themes here.
The Theme layer is separate from the data layer, the functionality extension layer (module) and Core. Your Theme controls the look and feel of your site. How your site is displayed, including the graphic look, layout and colors are defined by your Theme. The Theme consists of one or more PHP template files that define the HTML output of your site's pages, along with one or more CSS files that define the layout, fonts, colors, and other styles.
Not all sites will have Views, but those that do benefit from the excellent tools it provides. Views allows you to choose a list of nodes or other entities and present them as pages, blocks, RSS feeds, or in other formats. With Views, you can create dynamically updating lists or content (i.e. latest news), based on properties of that content.
More reasons to choose Drupal
- Drupal is a powerful and flexible content management system used to build virtually any kind of website. Drupal offers custom functionality, flexible implementation, complex components, easy configuration, customize-able content types, list, sort and search information.
- An ordinary CMS uses plugins. Each plugin is responsible for tracking and tracking a particular kind of content, and each remains relatively isolated from the others. With Drupal, modules interface with a common underlying system so you can build, mix and match clever, customized features.
- Like other open source CMSs, Drupal is free and install to use. A CMS like Microsoft SharePoint can handle the same level of technical complexity that Drupal can, but it's expensive to use due to licensing fees. Almost all of Drupal's extensions are available free of charge as well.
- Drupal's installation is surprisingly easy. If you wanted to, you can have your first Drupal site up and running within an hour.
- Unified interface: No default distinction between viewing and editing a page
- Drupal provides an excellent out-of-the-box solution to eCommerce sites
- Drupal sites can handle heavy traffic. That's why sites like WhiteHouse.gov and choose Drupal. Drupal has a special built-in cache system that facilitates speed. To see other projects being built in Drupal, check out our post, Three Cool Drupal-Based Software Projects
- Drupal's community is 800,000 people strong. This dedicated group of contributing developers who help to update and expand the software has extended Drupal's capabilities with more than 18,000 modules.
Who shouldn't be using Drupal?
Drupal isn't always the best choice. Not every web project requires the sophistication, power and flexibility that Drupal provides. If your only requirement is to write a personal blog, Drupal is not the right tool for you. For large and technically complex websites, however, Drupal stands out amongst its competitors.
The Future of Drupal
Drupal 8, the latest version of Drupal, is specifically designed with mobile in mind. Buytaert's goal for Drupal is to be the best CMS for mobile websites. There are even a number of ready-made themes and modules available to Drupal users designed to specifically enhance a user's mobile experience.
Drupal is one of the best open source web development platforms. It's best used for large sites with number of different content types planning to grow over time. With premium design capabilities and technical capacity, you can't go wrong with Drupal
Want more? Sign up to get our monthly newsletter delivered to your inbox. Receive links to the latest Drupal and Higher Ed-related news and blog articles, best practices, and thought-leadership commentary.