Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
WordPressWorkflows+ Expanded
700 sites                            581 sites                342 sites      141 sites 136 sites0 sites  2007   2008      ...
Total:+ 255 In-progress+ 2,596 Blogs= 3,551 Sites2007     2008   2009   2010   2011   2012
A range of offerings:1. Fully custom2. Quick setup3. DIY tools
How many plugins does it take?Main                      Main        IntegratedThird-Party               BU-specific w/ BU ...
What makes large sites so difficult? Lack of vision   Search Lack of          Performance & consistency      Scaling Lack ...
What makes large sites so difficult? Lack of vision   Search Lack of          Performance & consistency      Scaling Lack ...
BU Versions+ BU SectionEditing
Design Goals»+ Blend naturally into the existing WordPress admin UI+ Simple to use+ Manage permissions with a full view of...
BU Versions!
Jane Doe,Contributor
John Smith,administrator
The history of a page             t ed                                e d           ea                  d             lo  ...
Roadmap»+ Compare changes with original+ Support cloning of meta data and the meta boxes used to manage the data+ Simple n...
BU SectionEditing!
John Smith,administrator
Jane Doe,Contributor
Now accepting pull requests...+ BU Versionshttps://github.com/bu-ist/bu-versions+ BU Section Editinghttps://github.com/bu-...
Contributors:+ Mike Burns, developer+ Sam Roach, UX designer+ Scott Dasse, designer+ Mike Waecker, project manager+ Alex H...
Related Plugins:+ Members+ Edit Flow (Automattic)+ ICE (NYTimes)
Roles +Capabilities
Default Roles»+ Administrator - Somebody who has access to all the administration features+ Editor - Somebody who can publ...
WordPress Permissions:1. PrimitiveCapabilities2. MetaCapabilities                         Roles +                         ...
unfiltered_html      delete_usersAdministrator                                 create_usersPrimitive                edit_t...
unfiltered_html      delete_usersAdministrator                                 create_usersPrimitive                edit_t...
current_user_can(edit_post,	  10)          map_meta_cap()has_cap(edit_published_posts)                                    ...
current_user_can(edit_post,	  10)BU Section Editingmap_meta_cap() filter                         map_meta_cap()           ...
current_user_can(publish_posts)         map_meta_cap()   has_cap(published_posts)                                    Roles...
Uh, Oh!No publish_postMeta Capability                    Roles +                    Capabilities
hack...hack...find	  a	  work-­‐around...submit	  WordPress	  core	  trac	  ticket...write	  unit	  tests...submit	  a	  p...
Limitations»+ Capabilities are not stored separate from roles+ Capabilities do not have labels or descriptions            ...
Roles +Capabilities
Limitations»+ Capabilities are not stored separate from roles+ Capabilities do not have labels or descriptions+ No API exi...
The value of open source  core             developer     communitydeveloper
"The foundation of open source projects is   rough consensus and working code"                        —Jacob Kaplan-Moss
Resources»+ http://make.wordpress.org+ http://core.trac.wordpress.org+ freenode.net #wordpress-dev+ wp-hackers@lists.autom...
Up next»   + infrastructure           revamp           + responsive           + open source
(by)Gregory Cornelius             @gcornedesign by Scott Dasse
WordPress Workflows Expanded
WordPress Workflows Expanded
WordPress Workflows Expanded
WordPress Workflows Expanded
WordPress Workflows Expanded
WordPress Workflows Expanded
WordPress Workflows Expanded
WordPress Workflows Expanded
WordPress Workflows Expanded
WordPress Workflows Expanded
WordPress Workflows Expanded
WordPress Workflows Expanded
WordPress Workflows Expanded
WordPress Workflows Expanded
WordPress Workflows Expanded
WordPress Workflows Expanded
WordPress Workflows Expanded
WordPress Workflows Expanded
WordPress Workflows Expanded
WordPress Workflows Expanded
WordPress Workflows Expanded
WordPress Workflows Expanded
WordPress Workflows Expanded
WordPress Workflows Expanded
WordPress Workflows Expanded
WordPress Workflows Expanded
WordPress Workflows Expanded
Upcoming SlideShare
Loading in …5
×

WordPress Workflows Expanded

1,384 views

Published on

WordPress includes a well-defined workflow for running a blog with multiple contributors in various roles. It works great; But what if you are using WordPress to run a 1,000 page hierarchical site? Well… the workflows available are a bit limited without getting under the hood. For example, WordPress does not define fine-grained capabilities for controlling who can edit published content. As a result, users have to be granted full editing permissions, which increases the chance that a less-experienced user will make an ill-advised change. Drawing from our experience running large Multisite installations, Boston University has developed a couple of plugins to address some of the limitations. And for the first time, we are planning to release our plugins to the broader WordPress community under the GPL.

This talk will include an overview of the role/capability system presented from both a user and developer perspective as well as overviews of the BU Versions and BU Section Editing plugins. Along the way, various insights will be shared that provide a window into how BU has built an effective content management system on top of WordPress.

Published in: Technology, Business
  • Be the first to comment

  • Be the first to like this

WordPress Workflows Expanded

  1. 1. WordPressWorkflows+ Expanded
  2. 2. 700 sites 581 sites 342 sites 141 sites 136 sites0 sites 2007 2008 2009 2010 2011 2012
  3. 3. Total:+ 255 In-progress+ 2,596 Blogs= 3,551 Sites2007 2008 2009 2010 2011 2012
  4. 4. A range of offerings:1. Fully custom2. Quick setup3. DIY tools
  5. 5. How many plugins does it take?Main Main IntegratedThird-Party BU-specific w/ BU appsGravity Forms BU Navigation BU CalendarWP SuperCache Access Control List BU Maps (w/ Single Sign-on)Akismet Google Search User Management ApplianceNetworks for (w/ Single Sign-on)WordPress Course Feeds Content BannerYet Another Related Training ManagerPosts Plugin Post Details Emergency Alert Advanced Tiny MCE Site Manager ....
  6. 6. What makes large sites so difficult? Lack of vision Search Lack of Performance & consistency Scaling Lack of clear Complex accountability workflows Team dynamics Politics and skill
  7. 7. What makes large sites so difficult? Lack of vision Search Lack of Performance & consistency Scaling Lack of clear Complex accountability workflows Team dynamics Politics and skill
  8. 8. BU Versions+ BU SectionEditing
  9. 9. Design Goals»+ Blend naturally into the existing WordPress admin UI+ Simple to use+ Manage permissions with a full view of all post content+ Perform well on sites with more than 2,000 pages+ Support custom post types
  10. 10. BU Versions!
  11. 11. Jane Doe,Contributor
  12. 12. John Smith,administrator
  13. 13. The history of a page t ed e d ea d lo n te es cr e c na rit e ge lish e er rw alp ag pa ub pag lt e n a v i p o rig o te a d rn ite te ed al
  14. 14. Roadmap»+ Compare changes with original+ Support cloning of meta data and the meta boxes used to manage the data+ Simple notifications+ Support custom statuses+ Preview all alternate versions as once (tricky)
  15. 15. BU SectionEditing!
  16. 16. John Smith,administrator
  17. 17. Jane Doe,Contributor
  18. 18. Now accepting pull requests...+ BU Versionshttps://github.com/bu-ist/bu-versions+ BU Section Editinghttps://github.com/bu-ist/bu-section-editing
  19. 19. Contributors:+ Mike Burns, developer+ Sam Roach, UX designer+ Scott Dasse, designer+ Mike Waecker, project manager+ Alex Haas, quality assurance analyst
  20. 20. Related Plugins:+ Members+ Edit Flow (Automattic)+ ICE (NYTimes)
  21. 21. Roles +Capabilities
  22. 22. Default Roles»+ Administrator - Somebody who has access to all the administration features+ Editor - Somebody who can publish and manage posts and pages as well as manage other users posts, etc.+ Author - Somebody who can publish and manage their own posts+ Contributor - Somebody who can write and manage their posts but not publish them+ Subscriber - Somebody who can only manage their profile
  23. 23. WordPress Permissions:1. PrimitiveCapabilities2. MetaCapabilities Roles + Capabilities
  24. 24. unfiltered_html delete_usersAdministrator create_usersPrimitive edit_theme_options delete_themes edit_users list_usersCapabilities switch_themes edit_themes remove_users add_usersread update_themes promote_usersedit_posts install_themesedit_others_postsedit_published_posts activate_pluginsedit_private_posts edit_pluginsdelete_posts update_pluginsdelete_others_posts delete_pluginsdelete_published_posts install_pluginsdelete_private_postsread_private_posts edit_dashboardpublish_posts manage_options moderate_commentsedit_pages manage_categoriesedit_others_pages manage_linksedit_published_pagespublish_pages edit_filesdelete_pages upload_filesdelete_others_pages unfiltered_uploaddelete_published_pages importdelete_private_pages exportedit_private_pages update_coreread_private_pages Roles + Capabilities
  25. 25. unfiltered_html delete_usersAdministrator create_usersPrimitive edit_theme_options delete_themes edit_users list_usersCapabilities switch_themes edit_themes remove_users add_usersread update_themes promote_usersedit_posts install_themesedit_others_postsedit_published_posts activate_pluginsedit_private_posts edit_pluginsdelete_posts update_pluginsdelete_others_posts delete_pluginsdelete_published_posts install_pluginsdelete_private_postsread_private_posts edit_dashboardpublish_posts manage_options moderate_commentsedit_pages manage_categoriesedit_others_pages manage_linksedit_published_pagespublish_pages edit_filesdelete_pages upload_filesdelete_others_pages unfiltered_uploaddelete_published_pages importdelete_private_pages exportedit_private_pages update_coreread_private_pages Roles + Capabilities
  26. 26. current_user_can(edit_post,  10) map_meta_cap()has_cap(edit_published_posts) Roles + Capabilities
  27. 27. current_user_can(edit_post,  10)BU Section Editingmap_meta_cap() filter map_meta_cap() has_cap(edit_published_in_section) Roles + Capabilities
  28. 28. current_user_can(publish_posts) map_meta_cap() has_cap(published_posts) Roles + Capabilities
  29. 29. Uh, Oh!No publish_postMeta Capability Roles + Capabilities
  30. 30. hack...hack...find  a  work-­‐around...submit  WordPress  core  trac  ticket...write  unit  tests...submit  a  patch... Roles + Capabilities
  31. 31. Limitations»+ Capabilities are not stored separate from roles+ Capabilities do not have labels or descriptions Roles + Capabilities
  32. 32. Roles +Capabilities
  33. 33. Limitations»+ Capabilities are not stored separate from roles+ Capabilities do not have labels or descriptions+ No API exists for setting a capability to false; remove_cap() deletes the capabilities making it difficult to determine whether a capability was removed or just was never added Roles + Capabilities
  34. 34. The value of open source core developer communitydeveloper
  35. 35. "The foundation of open source projects is rough consensus and working code" —Jacob Kaplan-Moss
  36. 36. Resources»+ http://make.wordpress.org+ http://core.trac.wordpress.org+ freenode.net #wordpress-dev+ wp-hackers@lists.automattic.com
  37. 37. Up next» + infrastructure revamp + responsive + open source
  38. 38. (by)Gregory Cornelius @gcornedesign by Scott Dasse

×