How to create a simple content workflow in Drupal

If your web site is running on a content management platform like Drupal, one of the things you may have wanted to do is create a simple workflow to allow other users to enter content for you, to have other authors. Drupal handles this fairly well, as long as you ahve the right modules installed. We can get into modules in a later blog post.

For this example, the site owner wanted to allow people outside their organization to enter content straight into a community calendar. This workflow is applicable to any content type on the site, not just calendar items.

To achieve this, we used Drupal functionality, and added modules but made minimal code changes, if any at all. We allowed for approved users to submit events to a community calendar, which can be expanded to multiple roles, modified permissions and multiple content types as well.

This is roughly how it works:

1. User registers here /user/register and is approved or denied by the site owner. The user registration process is somewhat configurable, and the user will have no access unless a site administrator activates their account. User settings found here: /admin/user/settings

2. If approved, the site owner assigns the user the role of “event submitter (moderated)”. The user then has the ability to add events, but not publish them, as well as edit their own submissions.

When the account is approved (made active, role assigned) the user will need another manual, instructional e-mail so they know how to create the calendar. The account registration link should also be put into a block and placed on the sidebar along with all calendar content pages to promote the availability of user generated content.

3. The user will log into Drupal and see the admin toolbar, but only have the ability to create calendar events. The process is reasonably intuitive and memorable.

Users take this path in the admin toolbar: Content Management >> Create Content >> Community Calendar to reach the entry screen (/node/add/community-calendar). None of the other functions are enabled, most are not even visible.

Possible modifications would be to add e-mail notifications of new user registrations, if this isn’t already happening.

4. Notifications don’t currently exist to inform the site administrator of new unmoderated calendar submissions, so this modification would prove useful. Currently, the content approver (content manager role or admin role) would visit /admin/content/node/overview to see the entries, which would be listed as “not published” under “status”.

To approve one of these items for publishing, the moderator would open the entry for editing, scroll to “Publishing Options” at the bottom of the edit screen; check the box next to “Published” and save the record. After these steps, the content will show publicly on the calendar.

This may be another place where notifications could be useful, sending a notice to the submitting user that their content has been approved and published. Additionally, content may be deleted in the edit screen.

As users prove themselves trustworthy, the site owner could choose to create an unmoderated version of this role and allow these selected users to publish without requiring approval. Another mod would be to allow the users to see all of the content they’ve put in. Seems like this must be configurable but I don’t see it. Not sure why “content” isn’t showing in the content management menu for that role. Also would be useful to filter the list of content by creating user.

In this case, Drupal was changed in these ways to open this functionality:

Altered the calendar content type from published to unpublished.

Created a role and permissions for “event submitter (moderated)” and tested it, also testing the previous step by creating a calendar entry under this role.

Activated the profile module and added the Personal Information tab to it. (/admin/user/profile)

Created test user with the new profile tool active. Sends user to this confirmation message embedded on the home page in between the menu and the photo/content block.

The user sees this message on regisrtation if you don’t change it. “Thank you for applying for an account. Your account is currently pending approval by the site administrator. In the meantime, a welcome message with further instructions has been sent to your e-mail address.”

Now that you’ve read this, does it make sense to you? What else would you add? What questions does it raise? Leave us a comment!