Your SlideShare is downloading. ×

WordPress Workflows Expanded

911

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? …

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
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
911
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
12
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. WordPressWorkflows+ Expanded
  • 2. 700 sites 581 sites 342 sites 141 sites 136 sites0 sites 2007 2008 2009 2010 2011 2012
  • 3. Total:+ 255 In-progress+ 2,596 Blogs= 3,551 Sites2007 2008 2009 2010 2011 2012
  • 4. A range of offerings:1. Fully custom2. Quick setup3. DIY tools
  • 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. 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. 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. BU Versions+ BU SectionEditing
  • 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. BU Versions!
  • 11. Jane Doe,Contributor
  • 12. John Smith,administrator
  • 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. 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. BU SectionEditing!
  • 16. John Smith,administrator
  • 17. Jane Doe,Contributor
  • 18. Now accepting pull requests...+ BU Versionshttps://github.com/bu-ist/bu-versions+ BU Section Editinghttps://github.com/bu-ist/bu-section-editing
  • 19. Contributors:+ Mike Burns, developer+ Sam Roach, UX designer+ Scott Dasse, designer+ Mike Waecker, project manager+ Alex Haas, quality assurance analyst
  • 20. Related Plugins:+ Members+ Edit Flow (Automattic)+ ICE (NYTimes)
  • 21. Roles +Capabilities
  • 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. WordPress Permissions:1. PrimitiveCapabilities2. MetaCapabilities Roles + Capabilities
  • 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. 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. current_user_can(edit_post,  10) map_meta_cap()has_cap(edit_published_posts) Roles + Capabilities
  • 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. current_user_can(publish_posts) map_meta_cap() has_cap(published_posts) Roles + Capabilities
  • 29. Uh, Oh!No publish_postMeta Capability Roles + Capabilities
  • 30. hack...hack...find  a  work-­‐around...submit  WordPress  core  trac  ticket...write  unit  tests...submit  a  patch... Roles + Capabilities
  • 31. Limitations»+ Capabilities are not stored separate from roles+ Capabilities do not have labels or descriptions Roles + Capabilities
  • 32. Roles +Capabilities
  • 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. The value of open source core developer communitydeveloper
  • 35. "The foundation of open source projects is rough consensus and working code" —Jacob Kaplan-Moss
  • 36. Resources»+ http://make.wordpress.org+ http://core.trac.wordpress.org+ freenode.net #wordpress-dev+ wp-hackers@lists.automattic.com
  • 37. Up next» + infrastructure revamp + responsive + open source
  • 38. (by)Gregory Cornelius @gcornedesign by Scott Dasse

×