This tutorial shows how you can schedule the publishing of new revisions of content. In this example we will enable it only for the 'story' content type - of course it can be adapted for every content type.

Needed modules: Workflow-ng >= 1.5, CCLinks (ships with workflow-ng), Revision Moderation

1. Set the content type settings

Edit the 'story' content type settings and activate "Create new revision" and "New revisions in moderation".

2. Create the CCLink

Go to the CCLinks admin page 'admin/build/cclinks' and add a new content link. Configure the link as shown in the image:

3. Configure access control

Set access control permissons for the newly created link at 'admin/user/access'. Only allow users to use the cclink, who should be able to schedule the publishing.
Also go the revision moderation admin settings page 'admin/settings/revision_moderation' and disable the option 'Exempt administrators from revision moderation' - so that administrators can also schedule the publishing.

4. Test the link

Now, there is a new link when you view a story: "schedule publishing". When you click on it, you can specify a scheduling date. If you do so, the link changes to "publishing scheduled". By clicking on it, you alter the scheduling date as well as aborting it.

5. Configure Content Revision Publishing

CCLinks is now scheduling a workflow-ng event, but it does not do anything yet. We must create and configure a Rule to enact the change:

  1. Go to the workflow-ng administration area at Administer->Workflow-ng (admin/workflow-ng).
  2. Choose Content link from the navigation block. A Content
    link is a clickable trigger that will appear in the $links
    area below your node.
  3. Choose "Add a content link" from the tabs across the top.
  4. Fill in the administration screen for the link. The label is your shorthand note for the administration area. The Link label is the text of the untoggled link; the Toggled link label is the text after the link has been clicked. It is a good idea to enter this text so the user knows they have successfully clicked the link and initiated a change. Scroll to the bottom and click "Submit" to save this Content link.
  5. Add the rules that will define any actions that are taken when the Content link is clicked (or "toggled"). Choose "Rule configurations" from the navigation block under Workflow-ng (admin/workflow-ng/configurations)
  6. Choose "Add a new rule configuration" from the list of tabs across the top of the page.
  7. Select the most appropriate event related to your rule. In this case you will choose the Content link you just created from the option group "States." Add a label to help you identify this rule in the administration area.
  8. Scroll to the bottom and click "Submit" to save your new rule. You will now proceed to the "Conditions" and "Actions" page.
  9. Click the link to "Add a condition." Review the list of available conditions and select the most appropriate, if any. You will be able to add additional conditions. If none of the conditions apply, use your browser's back button to return to the "Conditions" and "Actions" page.
  10. If you have added a new Condition in the previous step you will be forwarded to an administration screen for the condition you have selected. Each screen will have different options available to you. Choose the best options for your scenario. Be sure to change the label to a useful title. This title will appear on the "Conditions" and "Actions" page and can be edited later.
  11. After submitting your Conditions you can turn to the "Actions" section. As in the previous steps for adding a Condition you will go through a short wizard to select and configure the desired outcomes for this rule. Start by clicking on the "Add an action" link.
  12. Choose the most appropriate action from the pull down list. In this case you will choose "Publish a content revision" from the "Revision Moderation" option group. Proceed to the next screen by clicking "Add."
  13. Add a useful label that will make sense on the "Conditions" and "Actions" page. Save the action by clicking "Submit." You will be returned to the summary page for "conditions" and "Actions." Repeat steps #9-11 to add new conditions and actions as appropriate.
  14. You may also wish to add a log entry for the publishing of the node. Repeat the steps above to add another "Action." This time choose "Log to watchdog" from the "System module" option group. A suitable message could be: A new revision has been published for the content "[node:title]". You may <a href="[node:site-url]/node/[node:nid]">view changes</a>.

To use it, just edit a story and create a new revision - it will be in moderation and so not enabled per default. When you view this not yet published revision, click on the link "schedule publishing" and set a publishing date. To make setting a date more comfortable install the jscalendar module from the JSTools module.
Furthermore it's suggested that you import this configuration, which redirects to a newly created moderated revision after creation - so you can go ahead and set the scheduling date immediately.

Make sure that you have configured cron correctly, as cclinks needs it for the scheduling.