wordpress workflows expanded

65

Upload: gregory-cornelius

Post on 10-Jun-2015

922 views

Category:

Technology


0 download

DESCRIPTION

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.

TRANSCRIPT

Page 1: WordPress Workflows Expanded
Page 2: WordPress Workflows Expanded

WordPress Workflows+ Expanded

Page 3: WordPress Workflows Expanded

2007 20122008 2009 2010 2011

141 sites

342 sites

581 sites

136 sites0 sites

700 sites

Page 4: WordPress Workflows Expanded

2007 20122008 2009 2010 2011

Total:

+ 255 In-progress+ 2,596 Blogs= 3,551 Sites

Page 5: WordPress Workflows Expanded

A range of offerings:

1. Fully custom2. Quick setup3. DIY tools

Page 6: WordPress Workflows Expanded
Page 7: WordPress Workflows Expanded
Page 8: WordPress Workflows Expanded
Page 9: WordPress Workflows Expanded
Page 10: WordPress Workflows Expanded
Page 11: WordPress Workflows Expanded
Page 12: WordPress Workflows Expanded
Page 13: WordPress Workflows Expanded
Page 14: WordPress Workflows Expanded
Page 15: WordPress Workflows Expanded
Page 16: WordPress Workflows Expanded
Page 17: WordPress Workflows Expanded
Page 18: WordPress Workflows Expanded
Page 19: WordPress Workflows Expanded

Main Third-PartyGravity Forms

WP SuperCache

Akismet

Networks for WordPress

Yet Another RelatedPosts Plugin

Main BU-specificBU Navigation

Access Control List (w/ Single Sign-on)

User Management (w/ Single Sign-on)

Content Banner

Post Details

Advanced Tiny MCE

Site Manager

....

Integratedw/ BU apps BU Calendar

BU Maps

Google Search Appliance

Course Feeds

Training Manager

Emergency Alert

How many plugins does it take?

Page 20: WordPress Workflows Expanded

Lack of vision

Lack of consistency

Lack of clear accountability

Team dynamics and skill

Search

Performance & Scaling

Complex workflows

Politics

What makes large sites so di#icult?

Page 21: WordPress Workflows Expanded

Lack of vision

Lack of consistency

Lack of clear accountability

Team dynamics and skill

Search

Performance & Scaling

Complex workflows

Politics

What makes large sites so di#icult?

Page 22: WordPress Workflows Expanded

BU Versions+ BU Section Editing

Page 23: WordPress Workflows Expanded

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

Page 24: WordPress Workflows Expanded

BU Versions!

Page 25: WordPress Workflows Expanded
Page 26: WordPress Workflows Expanded
Page 27: WordPress Workflows Expanded

Jane Doe,Contributor

Page 28: WordPress Workflows Expanded
Page 29: WordPress Workflows Expanded
Page 30: WordPress Workflows Expanded

John Smith, administrator

Page 31: WordPress Workflows Expanded
Page 32: WordPress Workflows Expanded
Page 33: WordPress Workflows Expanded

page created

page

published

page cloned

alternate

overwrites

original

alternate

edited

The history of a page

Page 34: WordPress Workflows Expanded

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)

Page 35: WordPress Workflows Expanded

BU Section Editing!

Page 36: WordPress Workflows Expanded

John Smith, administrator

Page 37: WordPress Workflows Expanded
Page 38: WordPress Workflows Expanded
Page 39: WordPress Workflows Expanded
Page 40: WordPress Workflows Expanded
Page 41: WordPress Workflows Expanded
Page 42: WordPress Workflows Expanded

Jane Doe,Contributor

Page 43: WordPress Workflows Expanded
Page 44: WordPress Workflows Expanded
Page 45: WordPress Workflows Expanded

+ BU Versionshttps://github.com/bu-ist/bu-versions+ BU Section Editinghttps://github.com/bu-ist/bu-section-editing

Now accepting pull requests...

Page 46: WordPress Workflows Expanded

Contributors:

+ Mike Burns, developer+ Sam Roach, UX designer+ Scott Dasse, designer+ Mike Waecker, project manager+ Alex Haas, quality assurance analyst

Page 48: WordPress Workflows Expanded

Roles +Capabilities

Page 49: WordPress Workflows Expanded

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

Page 50: WordPress Workflows Expanded

WordPress Permissions:

1. Primitive Capabilities2. Meta Capabilities

Roles +Capabilities

Page 51: WordPress Workflows Expanded

AdministratorPrimitiveCapabilities readedit_postsedit_others_postsedit_published_postsedit_private_postsdelete_postsdelete_others_postsdelete_published_postsdelete_private_postsread_private_postspublish_posts

edit_pagesedit_others_pagesedit_published_pagespublish_pagesdelete_pagesdelete_others_pagesdelete_published_pagesdelete_private_pagesedit_private_pagesread_private_pages

unfiltered_html

edit_theme_optionsdelete_themesswitch_themesedit_themesupdate_themesinstall_themes

activate_pluginsedit_pluginsupdate_pluginsdelete_pluginsinstall_plugins

edit_dashboardmanage_optionsmoderate_commentsmanage_categoriesmanage_links

edit_filesupload_filesunfiltered_uploadimportexportupdate_core

delete_userscreate_usersedit_userslist_usersremove_usersadd_userspromote_users

Roles +Capabilities

Page 52: WordPress Workflows Expanded

AdministratorPrimitiveCapabilities readedit_postsedit_others_postsedit_published_postsedit_private_postsdelete_postsdelete_others_postsdelete_published_postsdelete_private_postsread_private_postspublish_posts

edit_pagesedit_others_pagesedit_published_pagespublish_pagesdelete_pagesdelete_others_pagesdelete_published_pagesdelete_private_pagesedit_private_pagesread_private_pages

unfiltered_html

edit_theme_optionsdelete_themesswitch_themesedit_themesupdate_themesinstall_themes

activate_pluginsedit_pluginsupdate_pluginsdelete_pluginsinstall_plugins

edit_dashboardmanage_optionsmoderate_commentsmanage_categoriesmanage_links

edit_filesupload_filesunfiltered_uploadimportexportupdate_core

delete_userscreate_usersedit_userslist_usersremove_usersadd_userspromote_users

Roles +Capabilities

Page 53: WordPress Workflows Expanded

current_user_can('edit_post',  10)

map_meta_cap()

has_cap('edit_published_posts')

Roles +Capabilities

Page 54: WordPress Workflows Expanded

current_user_can('edit_post',  10)

map_meta_cap()

has_cap('edit_published_in_section')

BU Section Editingmap_meta_cap() filter

Roles +Capabilities

Page 55: WordPress Workflows Expanded

current_user_can('publish_posts')

map_meta_cap()

has_cap('published_posts')

Roles +Capabilities

Page 56: WordPress Workflows Expanded

Uh, Oh!No 'publish_post' Meta Capability

Roles +Capabilities

Page 57: WordPress Workflows Expanded

hack...hack...find  a  work-­‐around...submit  WordPress  core  trac  ticket...write  unit  tests...submit  a  patch...

Roles +Capabilities

Page 58: WordPress Workflows Expanded

Limitations»+ Capabilities are not stored separate from roles+ Capabilities do not have labels or descriptions

Roles +Capabilities

Page 59: WordPress Workflows Expanded

Roles +Capabilities

Page 60: WordPress Workflows Expanded

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 di#icult to determine whether a capability was removed or just was never added

Roles +Capabilities

Page 61: WordPress Workflows Expanded

core developer developer community

The value of open source

Page 62: WordPress Workflows Expanded

"The foundation of open source projects is rough consensus and working code"

—Jacob Kaplan-Moss

Page 63: WordPress Workflows Expanded

Resources»+ http://make.wordpress.org+ http://core.trac.wordpress.org+ freenode.net #wordpress-dev+ [email protected]

Page 64: WordPress Workflows Expanded

Up next» + infrastructurerevamp+ responsive+ open source

Page 65: WordPress Workflows Expanded

Gregory Cornelius

(by)

@gcorne

design by Scott Dasse