Drupal 7: Everything you need to know

Drupal 7 is nearly ready for release. We've spent many hours previewing Drupal 7's features - here's everything you need to know about the latest iteration of the CMS powering websites for the White House, Sony and The Economist…

drupal icon

This article originally appeared in issue 90 of Linux User & Developer magazine.

Subscribe and save more than 30% and receive our exclusive money back guarantee – click here to find out more.

Drupal is a content management system (CMS) and also a content management framework (CMF). Hence it’s both an application that enables non-programmers to build complex websites, and a framework that developers can use to quickly create custom functionality. There is a large and rapidly growing community that has developed around Drupal, which is passionate about improving the software and supporting its usage.

More than two years in the making, and containing 6,600 community-contributed commits, the release of Drupal 7 is imminent. Major changes have been made which impact end users, site builders and developers. This article explores the most notable new features, but first some Drupal basics for the uninitiated…

Drupal basics
There are five layers in Drupal:
1. Data – These are ‘nodes’ (articles, comments, users).
2. Modules – Functional plug-ins to expand your site’s functionality.
3. Blocks & Menus – Provide output for sections of a page, which can include navigation.
4. User Permissions – Role-based, control what users can see and do.
5. Themes – Templates rendering the site in XHTML and CSS from the underlying data.

Central to Drupal is the concept of ‘nodes’, which is a generic term for a piece of content – for example a blog entry, a news article, a recipe. As administrators can create as many content types as are needed, each with its own set of fields, there is complete flexibility in what content can be added to a site. Content can also be tagged and categorised using a flexible taxonomy system.
Modularity is one of the major reasons for Drupal’s success, and there are currently over 6,000 modules that add various features, all available for free. At the framework level, modularity is provided by a hook system which enables modules to define functions to catch events generated from other modules, thus giving Drupal APIs great flexibility.

Now the basics are out of the way, let’s take a look at the new features in Drupal 7…

Drupal 7 Usability
With great power comes great user interface complexity, and Drupal has traditionally been perceived as being confusing and hard to use. To improve Drupal’s user experience, Mark Boulton and Leisa Reichelt were hired to create and test a major redesign for Drupal 7. This was funded by Acquia, the company founded by Drupal creator Dries Buytaert. The aims of the redesign were:

1. Make the most frequent tasks easy, and less frequent tasks achievable.
2. Design for the 80%.
3. Privilege the content creator – people spent most of their time managing content.
4. Make the default settings smart.

The most notable improvement to Drupal’s user interface are overlays. Usability lab tests observed that many users coming from other CMS systems were accustomed to a dedicated back end for administration and content creation, and found it difficult to distinguish the administration layer from the rest of the website.

Drupal 7 uses overlays to combine the best of both worlds, edit where you are, and the UI simplicity of a dedicated back end. The advantage is that you can instantly go into admin mode from anywhere on the site to change settings and then return back to where you were, thus maintaining context (Fig 1). Another major addition to Drupal’s interface are Dashboards, which provide the user with a quick means to access the relevant information and actions for the user’s role (Fig 2).

Forms have been redesigned to use fieldsets and vertical tabs to compress the size of forms on the screen (Fig 3). Contextual links are a handy new feature. A gear icon appears when hovering over blocks; upon clicking, a menu list available options. These menus are available for every block on the page and are programmable (Fig 4).

[twitter username=”linuxusermag”]