DrupalIt's not easy being popular. You live under the specter of something new breathing down your neck, waiting to take your spot in the limelight. Yes, we know all about it.

But seriously, in the content management world uncool means stale, broken, or worse, irrelevant. Fortunately for Drupal (news, site), the much discussed version 7 release is looking strong. It'll keep its cool we reckon and in the process it's shaping up to further enter the mainstream. Here are the key changes to note.

Drupal 7 Brings Tons of Changes

To say there's tons of little improvements -- a bit of something for everyone -- is an understatement, there are far more than can be detailed in this article. For site builders, the big changes begin with dependencies. Drupal 7 requires PHP 5.2 and either MySQL 5.0 or PostgreSQL 8.3. For databases, you now also have the option of SQLite.

According to Angie "webchick" Byron (the Drupal 7 project co-maintainer), part of the goal with this release is to finally bring Drupal core into line with contrib. In that way, core is freed from constantly running and trying to play catch-up, and module maintainers can stop having to invent their own wheels.

Efforts were also made to fix "a bunch of stupid crap" that had just never been fixed in core due to other priorities. There are many more little (yet important) things that may thrill Drupal users. But here, we're going to focus on the big things. The game-changers.

So, read on.

Fields in Drupal Core

As someone overflowing with data-driven site ideas, one of my personal favorites is the move of CCK-style fields into Drupal 7 core. Notice the deliberate wording here. CCK itself isn't being moved into core. Instead, many of its better and, well, "core" features are being moved into core, including a close equivalent to CCK's UI.

Essentially Drupal is moving from a focus on nodes, to a focus on fields. The new fields portion of core -- appropriately named the Field module -- includes a new Fields API and a massive change in architecture.

Fields in Drupal 7 can be attached to nearly anything (but sadly, not user profiles). With Drupal 7 core, they can be attached to:

  • Nodes, like blog posts, articles, and pages
  • Comments
  • Taxonomy terms
  • And more

Not just that, but many elements that were once parts of nodes are now fields, such as a node's body section and taxonomy vocabularies.

The conversion to fields has also allowed advancements such as moving both the Image Field's and File Field's module functionality into core. Now you can create a field type of Image and you will have the power of sophisticated image handling as part of the native tools.

But don't think that all field goodness has been moved into core. Not even all of CCK has. The Drupal 7 version of CCK is stripped down to the pieces that didn't make it in, such as the node reference and user reference fields. Some people will still need CCK to make their content type dreams come true.

[Editor's Note: Check out our 2009 Open Source CMS Market Share report for details on the 20 most popular open source content management systems.]

D7UX, the Reworked User Interface

In a bid to reduce the Drupal learning curve for site owners, a major aim of Drupal 7 has revolved around D7UX, or the Drupal 7 User Experience project. This massive undertaking involved Acquia (news, site) bringing on the same design firm that handle the Drupal.org redesign, Mark Boulton Design Ltd., in order to drive and manage the interface overhaul in an open way that involved the Drupal community.

Working closely with the Drupal Usability group, Boulton used a combination of their own experience, community input, usability testing from the Universities of Baltimore and Minnesota, to work toward a collection of changes that are too far-ranging to list out completely.

Some of the more notable improvements are:

  • A clearer separation of administrator versus user tasks
  • An improved help system
  • Improved support for WYSIWYG editors
  • More drag-and-drop capability
  • An improved permissions management interface
  • Two installation profiles, Drupal the framework versus Drupal the CMS
  • A more helpful password strength checker
  • Reworked and simplified configuration pages
  • Vertical tabs on content creation pages and editing forms
  • Navigation improved so that links in the admin panel let you drill down to tasks more sensibly

Changes for Themes

Drupal 7 brings many changes to themes. These changes fall under the category of additional features rather than a fundamental overhaul.

For one thing, you can theme in Drupal 7 using just CSS, with "sensible" CSS IDs and classes defined by default. Themers will also have more granular control over $content.

Fans of the jQuery JavaScript library will be pleased to know that core now includes jQuery UI, removing the need to load a separate module for this purpose.

When it comes to default themes, it's goodbye to Chamelon, Marvin, Pushbutton and Bluemarine, all of which were cutting edge when they were introduced but had become a bad first impression for new Drupal users thanks to their dated appearance. A new theme (or non-theme) was also introduced, called Stark.