3

We have two roles of user: Admins and Content Creators (basically Authenticated with a few more permissions to create content). We'd like to have Content Creators be able to create new drafts from existing content and let the Admins approve to publish.

While this approach sounds straight forward, I've hit a number of road blocks and have tried multiple approaches:

  • Workbench Moderation: I've failed to install this to any working degree. Each time an admin approves a piece of content it's permanently unpublished. I describe the issue better here. If an Admin tries to publish their own content it falls into an endless cycle where WB sees the item as published but Drupal reports otherwise. Others seem to have similar problems.
  • Draft: Looked promising but there is no D7 release
  • Save Draft: Works nicely on new content, but doesn't offer to create a new draft of an existing item.

Other things we consider:

  • Workflow: I'm hopeful but there is a lot of configuration to set up for such a seemingly simple work flow. Also it appears a bit overwhelming. I hoped Workbench to be a simplified version of this.

We see that this feature is built into D8. Infact, this very ticket explains what we're trying to do:

Ideally, I should be able to assign an arbitrary state to any revision. I could have a published revision, a revision pending approval, and a draft revision beyond that.

Is there a way to make this happen in Drupal 7?

3
+50

Option 1: Revisioning

A possible alternative could be the Revisioning module. Some more details (from its project page):

... a module for the configuration of workflows to create, moderate and publish content revisions.

For the majority of use-cases configuration is straight-forward. The tricky bit are the permissions. To get you up and running quickly (D6 or D7), follow the steps described here: Revisioning at its simplest.

Here's a screenprint about it (from its project page):

enter image description here

Option 2: Combining some popular modules

Use a combination of these modules (and regular content types):

Below are some details to implement your workflow with a similar approach:

  • A content creator creates a node of content type (say) "Request".

  • Use Content Access to finetune all sorts of permissions about "which role is allowed to create such types, if you have multiple types of requests you just extend to multiple content types.

  • Use Rules to "send an eMail" (= action) to Admin "After content of type 'Request' gets saved" (= event). In the (custom) eMail for the Admin, include all relevant details about the Request (depending on the various data that are available to Rules). Such as an URL of the node to be reviewed.

  • To ensure the content creator cannot change the Request data (while the review process is outstanding), add an extra action to the same (previous) rule which updates the access to the Request (to make it read only for content creator).

  • Use the Flag module to enable the Admin to mark the submitted node with flags such as 'Approved (by Admin)' or 'Denied (by Admin)' (Rejected?). The permission to set these flags is limited to the Admin.

  • After the submitted node is approved, use Rules to perform the actions required to consider the node (request) as the new version that replaces the prior version (which you could unpublish and/or delete). If the request includes an entity reference to the version it will be replacing, you could also have Rules take care of replacing the prior version automagically.

  • If needed, use Rules to "send an eMail" (= action) to content creator "After content of type 'Request' gets flagged" (= event). Variation: create an appropriate view so that each content creator has some sort of dashboard to monitor the approval process.

  • Add the Node Convert module also if you want to further refine the above with specific "fields" that some of the workflow participants should not "see" at all (to avoid you'd have to use "field permissions", which could be an alternative to that.

5

We use the Workflow module and have found it to be pretty stable, and we use it exactly as you have described, to allow a content person to edit content, then for an admin to approve it.

Configuring the workflow module is a bit complicated, but it is worth doing as it will provide you the functionality you need. Generally it has the following steps:

  1. Install the workflow module.
  2. Configure the workflows:
    • Create a new workflow.
    • Make some states.
    • Assign the workflow to a content type (the tutorial below calls it a node).
  3. Set the permissions for each type of user to use each state of the workflow.

Creating a Workflow for Drupal Users contains a good tutorial.

  • Thanks. Upvote. I'm trying this module, but how do I create a new draft of existing content – Rick Jul 7 '16 at 21:54
  • @rgchi By "new draft of existing content" you mean a node state with some specific characteristics, like unpublished, pre-populated values etc. – mchar Jul 8 '16 at 19:18

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.