Edit Flow Project
Edit Flow is a WordPress plugin project initiated to enable a multi-user newsroom to handle more of their editorial workflow within WordPress. It is being developed by Mo Jangda, Daniel Bachhuber, Scott Bressler, and Will Davis. Currently, a vanilla install of WordPress has deficiencies in that:
- the editorial workflow is limited and does not scale well where numerous individuals interact with a single Post or where more complex editing workflows are required;
- the editorial workflow is not conducive to planning of future content (while the Draft feature does facilitate this to some extent, the existing feature set does not scale in scenarios where different users are responsible for different components of a post, or different steps within the workflow).
- the ability for users to communicate within the Administration interface is limited, both the planning of future Posts/assignments and during the editing process.
Our aim is to provide a comprehensive solution that eases editorial workflows within WordPress, to (a) encourage its use as the primary content management system for newsroom; and (b) facilitate web-first publishing for traditionally print publications.
There are a few key components to this project: improving the meta data on top of posts to better reflect the information that needs to be recorded about an assignment, empowering newsrooms to manage more of their editorial workflow from within the WordPress admin, and building out a way to track all of this active meta data within the system as a way of visualizing content and priorities at a glance.
It should be noted that while we are targeting newsrooms in particular, our aim is to design a flexible solution that can be used by multi-user blogs with varying demands from their editorial workflows (e.g. Mustang Daily and VentureBeat).
Version 0.1 of the plugin was released on June 16, 2009 and included the following functionality:
- Custom statuses - Users can extend WordPress' default statuses of "Draft," "Pending," and "Published" to better define their publishing workflow.
- Ability to sort by custom statuses on WordPress' Edit Posts view.
- A dashboard widget that lets the users see the number of posts at various statuses at a glance.
Version 0.2 of the plugin was released on September 15, 2009 and included the following functionality:
- Post metadata fields for description, due date, and location for better defining the editorial context of the piece.
- A Quick Pitch dashboard widget for quickly dumping story ideas into WordPress that then adopt the "Pitch" status.
- Threaded editorial comments for editors and reporters to leave feedback on a piece in progress. This also includes rudimentary email notifications for the people who have previously left comments on a post.
The Edit Flow Project is still actively in development. Features we're considering for development in the future include:
- More granular email notifications, including the ability to have a notification go to a predefined group of people
- User groups with functionality to define specific groups of users within WordPress. For instance, a user could be included in a writer's group and have the ability to pitch new assignments or be included in a copy editor's group and have the ability to mark pieces as "copy edited."
- Visualization of the editorial workflow data within WordPress, let it be through a calendar view, an activity stream, or other.
- The ability to define newsroom-specific metadata for each post.
- Functionality to allow custom definition of a required set of actions for each piece. These could be "copy-edit," "fact-check," etc.
Related to this, there's an occasionally active thread discussing feature ideas for everything after v0.2.
Contents |
Feedback
Better email notifications
From Andrew Spittle, Webmaster of Whitman Pioneer:
The most important thing that I see from our end would be the ability to designate editors for specific sections/categories and have them send email updates (single or digest) of the activity in their section. I think that of everything that would turn it into something that creates an online workflow for us instead of just an online place to do work (I hope that distinction kind of makes sense). Another thing that'd be great (perhaps you've already implemented this...I haven't been keeping track of updates) would be the notes feature that we talked about at the beginning of the project. If this is done in a smooth and user-friendly way then I think that editors and reporters alike would be more inclined to use it. Also, if the notes are custom fields in the post then it would be kind of cool to be able to pull these out and display them.
Universal Quick Pitch Widget
From Andrew Spittle, Webmaster of Whitman Pioneer:
What if part of the future work on Edit Flow included a "Universal Quick Pitch" feature. This would be akin to the "Press This" feature of Wordpress. It would allow a user to add a pitch to the system from anywhere on the web. It could even pull in the metadata of the current page the user is viewing when they want to make the pitch; even potentially pull in a quote and source ala the Publish2 widget. What would also be really cool is if the user had the ability to configure their settings for a Tumblr/Posterous/Twitter/Wordpress account and have the pitch published there too for feedback.
Required actions
With this idea, the admin, or the person who is setting up the editorial workflow, would be able to add "required actions" (i.e. fact-checking, etc.) that would have to be completed before the post could be published. The idea here is that there would be a certain amount of accountability to who was doing what. Only users with specific permissions would be able to "sign off" on the post, and it would record the date and time that the post was signed off on.
Notes for Developers
How do I add new options to the plugin?
- In edit_flow.php, inside the class edit_flow, find the variable $options.
- Inside the $options array, add a new entry for your new option including its name and default value, e.g. $options = array ( ... , 'my_option' -> 'default_value');
- Now, if you reload your WordPress admin page, your new option will automatically get added to the wp_options table
- Next, to add a way for users to change the option value:
- In the same file, find the function "options_page"
- Inside this function, add the appropriate display and input elements to allow users to change the value of the option. For your inputs, set the value of the name attribute as: <?php echo $this->get_plugin_option_fullname('option_name') ?>, e.g.
<input type="text" name="<?php echo $this->get_plugin_option_fullname('option_name') ?>" value="<?php echo $this->get_plugin_option('option_name') ?>"/>
How do I retrieve options?
global $edit_flow;
$the_option = $edit_flow->get_plugin_option('optionname');
// Note: option name does not need the "edit_flow_" prefix. The get function will automatically add it.

