I am working on a website (non-blog) using EE and have run into the much-discussed issue of workflow on live weblog records. In short, I would like a way to create a non-visible version of a page, allow it to be edited, approved and eventually have it replace the live/visible version of the page.
One forum discussion that describes the issue well is here.
I have an idea on how to implement this, and I’m throwing it out for discussion.
1) Modify the Cloner extension in the following ways:
* Have it use the word ‘Create Draft’ (instead of ‘Clone’).
* Have it only display the ‘Create Draft’ link next to records that currently have the ‘Open’ status.
* Have it put the copy into ‘Draft’ status (the weblog would need to be setup with this custom status).
* Have it save the record number of the cloned record in the ‘Draft’ (needed later to allow auto-deletion of the old version).
* For this to work, the appropriate template(s) will need to be setup to not display ‘Draft’ records on the live site.
So, in terms of workflow, the first step the end-user takes is to click on the ‘Create Draft’ link next to the record they want to edit.
2) In the workflow, the end-user can edit the ‘Draft’ record and perhaps notify an approver that the record is ready to be reviewed and published.
3) When the new weblog record is ready, the approver uses a new extension called ‘Publish Draft’. This extension does the following:
* Places a link titled ‘Publish Draft’ next to any record currently with ‘Draft’ status.
* Modifies the status of the draft from ‘Draft’ to ‘Open’. The appropriate template(s) could be setup to only display the most recently edited weblog record so that this step would immediately cause the new record to show on the live site).
* Deletes the original record (remember that we’ve saved the index to this record in the cloning step above).
The main problem with this approach, of course, is that it requires 2 discrete extensions (although, there’s no reason both extensions could be combined into one) and it requires special weblog setup (custom status ‘Draft’) and special template setup (only display the most recent record in ‘Open’ state).
However, I think with a short “Best Practices” document and the plugin, it could implement a reasonable workflow process for live articles.
I’m about to embark on making this work. Feedback before I start?
Thanks,
Jeff