Does anyone know of a good solution for this:

(1) Editor role can edit content on existing pages. It is saved, but not published.
(2) Admin role receives an email that lets them know edits were made to a page.
(3) Admin can login, go to that page, view the changes.
(4) At that time, the Admin can either make more changes or just go ahead and publish this edited saved version.

The key to all this is that the editor's changes are saved in storage so they can be viewed by admins....BUT....they are not published to the site.

I feel like this should be standard CMS functionality, but I haven't been able to do this in Drupal. Any ideas?

I'm not sure if this is the proper forum to say this (I apologize if not), but I am ready to hire a Drupal expert who can do this for me.

Thanks,
Neil

Comments

p.brouwers’s picture

you should look at http://drupal.org/project/modr8, maybe it fits your needs.

newbie510’s picture

Thanks for the reply. We've tried modr8 but it seems to only work when a new page is created, and not for edits made to an existing page. We've also tried Revision Moderation which in theory should work, however it seemed like it didn't work as advertised. I logged in as an editor, made a change to a page and hit submit. That change was actually published to the live page even though the prompt told me that it was submitted for review (can't remember the exact verbiage they used). So theoretically this module would work, but in practice is it behaving the way it should? Perhaps we are doing something wrong? Any advice?

papile’s picture

I work for a publisher, and I agree with your sentiment on drupal not having much workflow control. Since you are in the module development forum, I will approach this as if you were a developer or had one.

Basically I would just make a module that would create a revision of the node/content, and then if the user was an admin, the revision would be the live one, and if the user was say an editor, it would publish it, revert to the previous revision immediately and then fire off a message to an admin that a published article has been changed. Then you can even do things with diffing the revisions and showing the color highlighted changes to the admin. The access to then switch the revision to the altered one can be only given to the admin.

I have not run into that, but I have added other things to our sites that allow different roles to promote articles to different statuses with certain stuff firing between these changes all leading up to published.

I would think this is not very hard since drupal already can store concurrent versions of the same article when you track revisions, so you just need to control the access to that. A competent programmer can do it pretty quickly.

newbie510’s picture

I appreciate your response. I am not a developer but I do have a development team. As great as they are, they are not very familiar with Drupal. They are very good with php, but as I understand just having knowledge of php is not enough to code for Drupal as there is quite a steep learning curve. So with that said, I'm looking for a programmer to do this for me. If you know of anyone, please refer them to me as I am in a bit of a time crunch.

Thank you.

bestknight’s picture

I believe you can achieve this sort of functionality without any custom programming.

You can set the desired content type to be saved on creation without the "published" flag. Edit the desired content type and under Workflow -> Default Options untick the Published box. Then make sure that the editors do not have administer nodes rights under User Management->Access Control. Then users with moderate role can approve / amend the content as necessary.

You might also want to experiment with the Workflow-ng module.

papile’s picture

I think though from the original post that the poster wants to have it so if a user edits some already published/live content, it is staged, and the changes are not committed until the admin approves it. If it were as simple as not allowing someone to publish based on role, that has been solved in many ways. I have not really played with workflow module too much, but I dont think it has this functionality. I will look at the workflow module tonight and maybe I will extend it to do such things if it already doesn't provided it doesnt take that long as I am pretty busy. I would think this would be useful for a lot of people. To me, this would mean saving the altered revision, and merging it to live upon approval to show the altered content.

bestknight’s picture

I hadn't realised that the content to be edited was already published, so my suggestion was based on the content to be edited having been unpublished, created by authors as unpublished, edited by editors (still unpublished) and get further edited and published by moderators.

A possible solution would be for editors to use comments or annotations (annotate module : http://drupal.org/project/annotate ) that get implemented by moderators.

The workflow-ng module can handle e-mailing a moderator(administrator) when content is changed.

What it can also do is: (supposing that the 'editable content' content type has Create new revision set, and that editors don't have the administer nodes access rights so each new save is saved as a new revision)

event: content has been updated
and condition: User has role = editor
and condition: Content has type = 'editable content'
then do action: Execute custom php code (being revert revision to previous selected node revision - you have to figure this php code for yourself but please post back when you do!)

I hope this helps.

bestknight’s picture

Also Publish Content module could be of interest: http://drupal.org/project/publishcontent

newbie510’s picture

Hello all,

I appreciate all the feedback thus far. I believe I have found the modules that will help me accomplish what I need, however they are not working correctly for me. So I've started a new forum topic (which I hope still keeps the general moderation/workflow topic alive), but in that post I specifically ask for help with those two modules. Again, I appreciate all the help here and if there is more advice, please keep it coming. Just wanted to update everyone and let you know where to follow the new post if desired: http://drupal.org/node/300312

Thanks.