1 | |
---|
2 | DESCRIPTION |
---|
3 | =========== |
---|
4 | This modules forces new unpublished content as well as edits to current content |
---|
5 | to first go into a queue for review by a moderator/publisher, rather than |
---|
6 | immediately becoming "live", i.e. visible to the public. |
---|
7 | |
---|
8 | We took our inspiration from the Revision Moderation module by Angie Byron, |
---|
9 | but found that a patch could not implement the deviating functionality our |
---|
10 | customers required, which would change the current behaviour of the RM module |
---|
11 | and surprise existing users. |
---|
12 | |
---|
13 | In the RM module the permissions to edit and revert/publish content are lumped |
---|
14 | together, so that it isn't possible to enforce separation of these |
---|
15 | responsibilites by role. This module allows you to assign distinct permissions |
---|
16 | for authors (to only create and edit content) and moderator roles (to review, |
---|
17 | publish, revert, unpublish and optionally delete content). |
---|
18 | No unnessary revisions are created when saving a revision that is pending. |
---|
19 | Menu navigation has been altered so that users first pick the desired |
---|
20 | revision before being allowed to view, edit, publish, revert, unpublish or |
---|
21 | delete. |
---|
22 | Triggers are provided for the publish, unpublish and revert events. |
---|
23 | By taking advantage of the Module Grants module this module integrates better |
---|
24 | with the Workflow and Taxonomy Access Control (Lite) modules. This means that |
---|
25 | you can easily implement fine-grained content access control based on |
---|
26 | categories as well as workflow states. With both Module Grants and Revisioning |
---|
27 | installed this all works for both published and unpublished content. |
---|
28 | There's also a "publish-pending-revision" action that may be triggered from |
---|
29 | a workflow state transition (like "in review"->"publish"). |
---|
30 | Unlike RM, Revisioning does not require any additional database tables. |
---|
31 | |
---|
32 | INSTALLATION |
---|
33 | ============ |
---|
34 | 0. Install the Module Grants module. This is a package containing 4 modules. |
---|
35 | Although highly recommended the main module in this package is not required, |
---|
36 | but the Node Tools submodule is. Module Grants Monitor is also recommended, |
---|
37 | although Revisioning features similar functionality through a canned view |
---|
38 | (for which, you'll naturally have to install Views). |
---|
39 | 1. Optionally install the Diff module if you want to compare revisions and |
---|
40 | highlight the differences. |
---|
41 | 2. Place the "revisioning" folder in your "sites/all/modules" directory. |
---|
42 | Enable Revisioning under Administer >> Site building >> Modules. |
---|
43 | |
---|
44 | CONFIGURATION |
---|
45 | ============= |
---|
46 | 3. Under Administer >> Content >> Content types, click "edit" next to the |
---|
47 | content types for which you wish to enable/disable revisioning. Under |
---|
48 | "Workflow Settings", Default Options, tick both the "Create new revision" |
---|
49 | and "New revision in draft, pending moderation" checkboxes. Also in this |
---|
50 | section UNtick "Published", so that all new content is created in an |
---|
51 | unpubished state, i.e. invisible to the public. |
---|
52 | "New revision in draft, pending moderation" means that when a user edits and |
---|
53 | saves a piece of content the new revision isn't automatically made current. |
---|
54 | The previous copy remains unchanged and visible to the public until the |
---|
55 | newer revision is published in its place. |
---|
56 | There is an additional radio-button on the same page that augments the above |
---|
57 | behaviour giving you the option to "Only create a new revision when saving |
---|
58 | content that is not already in draft/pending moderation". This will save you |
---|
59 | some disk space, because until the draft is published all modifications will |
---|
60 | be applied to the same copy, i.e. no new revision is created when one |
---|
61 | already exists. On the other hand there are situations, for instance with a |
---|
62 | Wiki page with multiple authors editing the same copy, where you do want |
---|
63 | every Save to create a new draft (revision), so that contributors can |
---|
64 | compare what was changed between saves. The Diff module is a good addition |
---|
65 | to Revisioning for this. |
---|
66 | 4. Revisioning builds on the Accessible content menu item (if you have enabled |
---|
67 | Module Grants Monitor), adding the "In draft/Pending publication" filter to |
---|
68 | the double row of tabs. |
---|
69 | 5. Grant to the various roles the view/delete/revert revisions permissions |
---|
70 | (node access section) and the "edit revisions" permission (revisioning |
---|
71 | section). Typically you'd give authors the "view revisions" and |
---|
72 | "edit revisions" permissions, while moderators will get the same as well |
---|
73 | as the "publish/revert revisions" permission. Neither require the |
---|
74 | "administer nodes" permission, which is a good thing as this gives ordinary |
---|
75 | users excessive rights. |
---|
76 | |
---|
77 | USAGE |
---|
78 | ===== |
---|
79 | You should now be in business. Log in as one of the authors and Create content. |
---|
80 | Save. Log out, then log in as a moderator to publish the content via the |
---|
81 | Accessile content >> Pending tab (if you installed Module Grants Monitor) or via |
---|
82 | the Content summary menu option (if you installed Views). Click on the title of |
---|
83 | the post, then open the desired revision by clicking on the date. Check the |
---|
84 | content, the press the "Publish this" tab. |
---|
85 | Note that up to this point content isn't visible to the public. |
---|
86 | Log in as an author again and revise the content. You will notice that upon |
---|
87 | saving the new revision, the one visible to the public remains unchanged. |
---|
88 | Log in as a moderator again to promote (publish), the revised content to live. |
---|
89 | As an alternative to the Accessible content menu item, you may want to activate |
---|
90 | the "pending revisions" block. This block is particularly useful for moderators |
---|
91 | as it constantly shows the latest content requiring moderator attention in an |
---|
92 | inobtrusive corner of the screen. Configure and enable the block like any other |
---|
93 | on the Administer >> Site building >> Blocks page. |
---|
94 | You can use this module in combination with TAC or TAC-Lite for fine-grained |
---|
95 | access control based on vocabularies (such as "region" or "department") |
---|
96 | associated with the various content types. Be aware that any permissions |
---|
97 | given in the "node module" section override those granted via TAC/TAC-Lite, |
---|
98 | so you probably only want to assign a few creation permissions in the node |
---|
99 | module and do the view, update and delete grants via TAC/TAC-Lite. |
---|
100 | In addition you may want to install the Workflow module to further segragate |
---|
101 | the author and moderator roles via access control based on states such as |
---|
102 | "in draft", "in review" and "live". Workflow also allows you to notify users |
---|
103 | when state transitions occur (e.g. when a moderator declines or publishes a |
---|
104 | submitted revision). |
---|
105 | Step-by-step guides on the usage of the Revisioning module in combination |
---|
106 | with the TAC-Lite and Workflow modules can be found on the Revisioning project |
---|
107 | page http://drupal.org/project/revisioning. |
---|
108 | |
---|
109 | AUTHOR |
---|
110 | ====== |
---|
111 | Rik de Boer, Melbourne, Australia; inspired by the Revision Moderation module. |
---|