fromAugust 2011

Workbench: Content Management with a Short Learning Curve


Managing a web site requires the existence of several key concepts. For instance, when an organization has decentralized control of its site's content management, it may still want controls over that content. Then too, clients often want to make it easier for content to be developed, but still keep controls over who can publish that content. Various content management systems employ differing approaches to solve this type of problem; some solutions are more robust than others.

Frequently, certain large organizations come to Drupal with expectations about the features of a content management system (CMS). In many cases, Drupal provides the features they expect. However, not all editorial tools are a part of Drupal Core. Drupal has addressed these tools with several different contributed modules. As a result, Drupal's editorial space generally lacks a consistent workflow and interface.

At we saw an opportunity to improve content management workflow in Drupal 7 for our clients by creating Workbench.

What is Workbench?

Workbench helps you manage your site and understand site architecture without the bother of learning Drupal.

Workbench incorporates contributed modules and has some new features of its own:

  • Hierarchical permission inheritance by "Sections" not just content types;
  • Extensible workflow states;
  • Single repository for media management;
  • Ability to modify live content without immediately publishing the changes.

Workbench provides a unified interface for managing content. In effect, Workbench hides Drupal, and makes content management about your institution and your website, not about Drupal.Workbench -- My Content

Let's take a look. When Workbench is enabled, a user logs in and and accesses Workbench via the Toolbar:

There are several important factors that ease the learning curve right from the start. When we train clients on Workbench, we point out the My Workbench link in the toolbar, and train them to click it to get to Workbench first. We also provide access to the content most people are focused on when working with a web site: their own profile and their own content.
Workbench -- Create Content
Sometimes it's the little things that matter most. For example: The Create Content tab looks a lot like what you see when you view node/add. We included support via workbench_media to integrate the Media module into the Create process. Media has its own media entity, and now a user does not need to go to two different places to create content; it's all right there:

One of the most powerful features Workbench provides is Workbench Access. The end user (Author, Reviewer, or Publisher), sees Workbench Access in a transparent setup with the My Sections tab.

The site can be configured to provide hierarchical permissions based on taxonomy or menus. You can add your own plug-in for permissions setting as well.Workbench Sections What this means is that permissions to add or edit content in one part of the site is not limited to just one section, and it does not require setting access per node. This allows an organization to have a web site structure that suits user experience and SEO while providing tighter editorial controls of who may edit what content.

With Workbench Moderation, we can provide two more tabs in the Workbench: My Drafts and Needs Review (for Reviewers and Publishers only).

We found that our clients love the ability to say, "I want to save this content but no-one else needs to see it yet." My Drafts shows the user any content they have created which is still in Draft.

Reviewers and Publishers, on the other hand, need to get other things done: "What needs to be approved?" "What needs to be published?"

Workbench Moderation

Workbench History

Before we built Workbench, we provided separate approaches for permissions and content workflow. Menu Node Edit was our Drupal 6 approach to handling hierarchical permissions based on the menu system. It works well if the organization's structure follows the site map, but it does not scale well.

Editorial workflow was customized for every project. We usually created several administrative Views to make it easier to find content that needed editing. This Drupal 6 approach revealed the common pattern of making it easier for a user to find the content that they needed to maintain; offering drafts was not commonly implemented.

Workbench was developed with Drupal 7 in mind. Our goal was to provide a set of modules we could easily re-use with our clients.

Architecture Behind the Scenes

Workbench provides a plug-in system, so that additional modules can be included and folded into the user interface. For instance, Media Module is supported so that create content includes content types as well as media. A simple change like that makes all the difference to people who need to learn how to add and edit content on a new web site as quickly as possible.

Workbench Supports Plug-ins

  • Access organized by menus, taxonomy, or your own access module;
  • Flexibility -- uses different modules or modules already supported;
  • Plug-ins -- fit into an existing and consistent user interface.

Why Use It?

People who maintain sites for large organizations, and who decentralize control of content, can use Workbench to improve control over sections of the site and over those responsible for each section.

Independent contractors will find Workbench improves a client's use of the site; i.e. they will add content sooner. It can reduce client training time and allow Drupal developers to focus on developing the site, not training the client how to use Drupal. And this very magazine you're currently reading, Drupal Watchdog, uses Workbench to manage the editorial process, from drafts to print and online publishing.

Future Plans for Workbench is now using Workbench with each new site we build. We are working hard to add new functionality that has been requested in our issue queues. In fact, we are managing all changes to Workbench via What you see in the issue queues is exactly what we're working on now. We are finalizing some critical bugs to create a 1.0 release. In addition, some upcoming new features include:

  • panels-optional admin interface;
  • file management;
  • scheduler and diff integration;
  • layered moderation permission rules.

From our blog

Entity Storage, the Drupal 8 Way

In Drupal 7 the Field API introduced the concept of swappable field storage.

The Drupal 6 to 8 Upgrade Challenge - Part 2

Having concluded the readiness assessment, we turn next to migrating the content and configuration. In reality, there’s little chance that we would migrate anything but the blogs from our old site. For the sake of giving Migrate in Core a workout with real conditions, however, we’re going to upgrade with core’s Migrate Drupal module rather than rebuilding.

The Drupal 6 to 8 Upgrade Challenge - Part 1

Nathaniel Catchpole , the Drupal 8 release maintainer and Tag1 Senior Performance Engineer, suggested that Drupal shops everywhere could support the

DrupalCon Austin

The entertainment industry is not for the faint of heart.

Drupal Watchdog Joins the Linux New Media Family
Drupal Watchdog 6.01 is the first issue published by Linux New Media.

Drupal Watchdog 6.01 is the first issue published by Linux New Media. Come see the Drupal Watchdog team at DrupalCon 2016!

Drupal Watchdog was founded in 2011 by Tag1 Consulting as a resource for the Drupal community to share news and information. Now in its sixth year, Drupal Watchdog is ready to expand to meet the needs of this growing community.

Drupal Watchdog will now be published by Linux New Media, aptly described as the Pulse of Open Source.

Welcome to DrupalCon Barcelona - The Director's Cut

For all you schedule-challenged CEOs – and ADHD coders – this Abbreviated Official Director’s Cut is just what the doctor ordered.

Welcome to DrupalCon - The Barcelona Edition

Did we have fun in Barcelona?
OMG, yes!

Did we eat all the tapas on the menu and wash them down with pitchers of sangria?
Yes indeed!

Recursive Closures and How to Get Rid of Them

This came up while manipulating taxonomy children and their children recursively, so it’s as not far from Drupal as you’d think.