SlideShare una empresa de Scribd logo
1 de 65
Descargar para leer sin conexión
WordPress
Workflows
+ Expanded
700 sites

                            581 sites

                342 sites


      141 sites
 136 sites
0 sites
  2007   2008       2009    2010   2011   2012
Total:

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

2007     2008   2009   2010   2011   2012
A range of offerings:

1. Fully custom
2. Quick setup
3. DIY tools
How many plugins does it take?


Main                      Main        Integrated
Third-Party               BU-specific w/ BU apps
Gravity Forms             BU Navigation         BU Calendar

WP SuperCache             Access Control List   BU Maps
                          (w/ Single Sign-on)
Akismet                                         Google Search
                          User Management       Appliance
Networks for              (w/ Single Sign-on)
WordPress                                       Course Feeds
                          Content Banner
Yet Another Related                             Training Manager
Posts Plugin              Post Details
                                                Emergency Alert
                          Advanced Tiny MCE
                          Site Manager
                          ....
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
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
BU Versions
+ BU Section
Editing
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
BU Versions!
Jane Doe,
Contributor
John Smith,
administrator
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 al
p ag                pa ub          pag                  lt e n
                                                       a v i
                     p                                   o rig
                                                           o


                                           te
                                         a d
                                       rn ite
                                     te ed
                                   al
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)
BU Section
Editing!
John Smith,
administrator
Jane Doe,
Contributor
Now accepting pull requests...


+ BU Versions
https://github.com/bu-ist/bu-versions
+ BU Section Editing
https://github.com/bu-ist/bu-section-editing
Contributors:

+ Mike Burns, developer
+ Sam Roach, UX designer
+ Scott Dasse, designer
+ Mike Waecker, project manager
+ Alex Haas, quality assurance analyst
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 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
WordPress Permissions:

1. Primitive
Capabilities
2. Meta
Capabilities
                         Roles +
                         Capabilities
unfiltered_html      delete_users
Administrator                                 create_users
Primitive                edit_theme_options
                         delete_themes
                                              edit_users
                                              list_users
Capabilities             switch_themes
                         edit_themes
                                              remove_users
                                              add_users
read                     update_themes        promote_users
edit_posts               install_themes
edit_others_posts
edit_published_posts     activate_plugins
edit_private_posts       edit_plugins
delete_posts             update_plugins
delete_others_posts      delete_plugins
delete_published_posts   install_plugins
delete_private_posts
read_private_posts       edit_dashboard
publish_posts            manage_options
                         moderate_comments
edit_pages               manage_categories
edit_others_pages        manage_links
edit_published_pages
publish_pages            edit_files
delete_pages             upload_files
delete_others_pages      unfiltered_upload
delete_published_pages   import
delete_private_pages     export
edit_private_pages       update_core
read_private_pages                                   Roles +
                                                     Capabilities
unfiltered_html      delete_users
Administrator                                 create_users
Primitive                edit_theme_options
                         delete_themes
                                              edit_users
                                              list_users
Capabilities             switch_themes
                         edit_themes
                                              remove_users
                                              add_users
read                     update_themes        promote_users
edit_posts               install_themes
edit_others_posts
edit_published_posts     activate_plugins
edit_private_posts       edit_plugins
delete_posts             update_plugins
delete_others_posts      delete_plugins
delete_published_posts   install_plugins
delete_private_posts
read_private_posts       edit_dashboard
publish_posts            manage_options
                         moderate_comments
edit_pages               manage_categories
edit_others_pages        manage_links
edit_published_pages
publish_pages            edit_files
delete_pages             upload_files
delete_others_pages      unfiltered_upload
delete_published_pages   import
delete_private_pages     export
edit_private_pages       update_core
read_private_pages                                   Roles +
                                                     Capabilities
current_user_can('edit_post',	
  10)




          map_meta_cap()




has_cap('edit_published_posts')


                                       Roles +
                                       Capabilities
current_user_can('edit_post',	
  10)




BU Section Editing
map_meta_cap() filter
                         map_meta_cap()




              has_cap('edit_published_in_section')



                                                      Roles +
                                                      Capabilities
current_user_can('publish_posts')




         map_meta_cap()




   has_cap('published_posts')


                                    Roles +
                                    Capabilities
Uh, Oh!
No 'publish_post'
Meta Capability


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



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




                                           Roles +
                                           Capabilities
Roles +
Capabilities
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
The value of open source




  core
             developer     community
developer
"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.automattic.com
Up next»   + infrastructure
           revamp
           + responsive
           + open source
(by)




Gregory Cornelius
             @gcorne




design by Scott Dasse

Más contenido relacionado

Similar a WordPress Workflows Expanded

Improving joomla's backend user experience
Improving joomla's backend user experienceImproving joomla's backend user experience
Improving joomla's backend user experienceLuke Summerfield
 
Synchronizing Creativity with Content Management
Synchronizing Creativity with Content ManagementSynchronizing Creativity with Content Management
Synchronizing Creativity with Content ManagementGregory Cornelius
 
Fronteers - Drupal 7 ux
Fronteers   - Drupal 7 uxFronteers   - Drupal 7 ux
Fronteers - Drupal 7 uxBojhan
 
Drupal intro-training-in-mumbai
Drupal intro-training-in-mumbaiDrupal intro-training-in-mumbai
Drupal intro-training-in-mumbaivibrantuser
 
Typical customization pitfalls in Magento 2
Typical customization pitfalls in Magento 2Typical customization pitfalls in Magento 2
Typical customization pitfalls in Magento 2Magecom UK Limited
 
Synapse india reviews on drupal intro
Synapse india reviews on drupal introSynapse india reviews on drupal intro
Synapse india reviews on drupal introTarunsingh198
 
Improving Joomla’s Backend User Experience
Improving Joomla’s Backend User ExperienceImproving Joomla’s Backend User Experience
Improving Joomla’s Backend User ExperienceRandy Carey
 
Using Drupal Features in B-Translator
Using Drupal Features in B-TranslatorUsing Drupal Features in B-Translator
Using Drupal Features in B-TranslatorDashamir Hoxha
 
Drupal for Webmasters by Brett Baker
Drupal for Webmasters by Brett BakerDrupal for Webmasters by Brett Baker
Drupal for Webmasters by Brett Bakerwebfinearts
 
Drupal 8 for site builders
Drupal 8 for site buildersDrupal 8 for site builders
Drupal 8 for site buildersKim Pepper
 
Justin Herrin Comparing Joomla CCKs from jd12ne
Justin Herrin Comparing Joomla CCKs from jd12neJustin Herrin Comparing Joomla CCKs from jd12ne
Justin Herrin Comparing Joomla CCKs from jd12neJustin Herrin
 
Enrich your extensions with Joomla! ACL support
Enrich your extensions with Joomla! ACL supportEnrich your extensions with Joomla! ACL support
Enrich your extensions with Joomla! ACL supportSander Potjer
 
Role-Based Access Control (RBAC) in Neo4j
Role-Based Access Control (RBAC) in Neo4jRole-Based Access Control (RBAC) in Neo4j
Role-Based Access Control (RBAC) in Neo4jNeo4j
 

Similar a WordPress Workflows Expanded (20)

Improving joomla's backend user experience
Improving joomla's backend user experienceImproving joomla's backend user experience
Improving joomla's backend user experience
 
Synchronizing Creativity with Content Management
Synchronizing Creativity with Content ManagementSynchronizing Creativity with Content Management
Synchronizing Creativity with Content Management
 
Fronteers - Drupal 7 ux
Fronteers   - Drupal 7 uxFronteers   - Drupal 7 ux
Fronteers - Drupal 7 ux
 
Drupal intro-training-in-mumbai
Drupal intro-training-in-mumbaiDrupal intro-training-in-mumbai
Drupal intro-training-in-mumbai
 
Typical customization pitfalls in Magento 2
Typical customization pitfalls in Magento 2Typical customization pitfalls in Magento 2
Typical customization pitfalls in Magento 2
 
Synapse india reviews on drupal intro
Synapse india reviews on drupal introSynapse india reviews on drupal intro
Synapse india reviews on drupal intro
 
Improving Joomla’s Backend User Experience
Improving Joomla’s Backend User ExperienceImproving Joomla’s Backend User Experience
Improving Joomla’s Backend User Experience
 
Using Drupal Features in B-Translator
Using Drupal Features in B-TranslatorUsing Drupal Features in B-Translator
Using Drupal Features in B-Translator
 
Drupal for Webmasters by Brett Baker
Drupal for Webmasters by Brett BakerDrupal for Webmasters by Brett Baker
Drupal for Webmasters by Brett Baker
 
J query
J queryJ query
J query
 
Features
FeaturesFeatures
Features
 
Drupal intro (1)
Drupal intro (1)Drupal intro (1)
Drupal intro (1)
 
An Introduction to Drupal
An Introduction to DrupalAn Introduction to Drupal
An Introduction to Drupal
 
Drupal 8 for site builders
Drupal 8 for site buildersDrupal 8 for site builders
Drupal 8 for site builders
 
Recipes for Drupal distributions
Recipes for Drupal distributionsRecipes for Drupal distributions
Recipes for Drupal distributions
 
Justin Herrin Comparing Joomla CCKs from jd12ne
Justin Herrin Comparing Joomla CCKs from jd12neJustin Herrin Comparing Joomla CCKs from jd12ne
Justin Herrin Comparing Joomla CCKs from jd12ne
 
Drupal -Introduction to Drupal
Drupal -Introduction to DrupalDrupal -Introduction to Drupal
Drupal -Introduction to Drupal
 
Enrich your extensions with Joomla! ACL support
Enrich your extensions with Joomla! ACL supportEnrich your extensions with Joomla! ACL support
Enrich your extensions with Joomla! ACL support
 
Role-Based Access Control (RBAC) in Neo4j
Role-Based Access Control (RBAC) in Neo4jRole-Based Access Control (RBAC) in Neo4j
Role-Based Access Control (RBAC) in Neo4j
 
Drupal6 and Drupal 7 difference
Drupal6 and Drupal 7 differenceDrupal6 and Drupal 7 difference
Drupal6 and Drupal 7 difference
 

Último

TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????blackmambaettijean
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 

Último (20)

TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 

WordPress Workflows Expanded

  • 1.
  • 3. 700 sites 581 sites 342 sites 141 sites 136 sites 0 sites 2007 2008 2009 2010 2011 2012
  • 4. Total: + 255 In-progress + 2,596 Blogs = 3,551 Sites 2007 2008 2009 2010 2011 2012
  • 5. A range of offerings: 1. Fully custom 2. Quick setup 3. DIY tools
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19. How many plugins does it take? Main Main Integrated Third-Party BU-specific w/ BU apps Gravity Forms BU Navigation BU Calendar WP SuperCache Access Control List BU Maps (w/ Single Sign-on) Akismet Google Search User Management Appliance Networks for (w/ Single Sign-on) WordPress Course Feeds Content Banner Yet Another Related Training Manager Posts Plugin Post Details Emergency Alert Advanced Tiny MCE Site Manager ....
  • 20. 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
  • 21. 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
  • 22. BU Versions + BU Section Editing
  • 23. 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
  • 25.
  • 26.
  • 28.
  • 29.
  • 31.
  • 32.
  • 33. 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 al p ag pa ub pag lt e n a v i p o rig o te a d rn ite te ed al
  • 34. 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)
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 43.
  • 44.
  • 45. Now accepting pull requests... + BU Versions https://github.com/bu-ist/bu-versions + BU Section Editing https://github.com/bu-ist/bu-section-editing
  • 46. Contributors: + Mike Burns, developer + Sam Roach, UX designer + Scott Dasse, designer + Mike Waecker, project manager + Alex Haas, quality assurance analyst
  • 47. Related Plugins: + Members + Edit Flow (Automattic) + ICE (NYTimes)
  • 49. 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
  • 50. WordPress Permissions: 1. Primitive Capabilities 2. Meta Capabilities Roles + Capabilities
  • 51. unfiltered_html delete_users Administrator create_users Primitive edit_theme_options delete_themes edit_users list_users Capabilities switch_themes edit_themes remove_users add_users read update_themes promote_users edit_posts install_themes edit_others_posts edit_published_posts activate_plugins edit_private_posts edit_plugins delete_posts update_plugins delete_others_posts delete_plugins delete_published_posts install_plugins delete_private_posts read_private_posts edit_dashboard publish_posts manage_options moderate_comments edit_pages manage_categories edit_others_pages manage_links edit_published_pages publish_pages edit_files delete_pages upload_files delete_others_pages unfiltered_upload delete_published_pages import delete_private_pages export edit_private_pages update_core read_private_pages Roles + Capabilities
  • 52. unfiltered_html delete_users Administrator create_users Primitive edit_theme_options delete_themes edit_users list_users Capabilities switch_themes edit_themes remove_users add_users read update_themes promote_users edit_posts install_themes edit_others_posts edit_published_posts activate_plugins edit_private_posts edit_plugins delete_posts update_plugins delete_others_posts delete_plugins delete_published_posts install_plugins delete_private_posts read_private_posts edit_dashboard publish_posts manage_options moderate_comments edit_pages manage_categories edit_others_pages manage_links edit_published_pages publish_pages edit_files delete_pages upload_files delete_others_pages unfiltered_upload delete_published_pages import delete_private_pages export edit_private_pages update_core read_private_pages Roles + Capabilities
  • 53. current_user_can('edit_post',  10) map_meta_cap() has_cap('edit_published_posts') Roles + Capabilities
  • 54. current_user_can('edit_post',  10) BU Section Editing map_meta_cap() filter map_meta_cap() has_cap('edit_published_in_section') Roles + Capabilities
  • 55. current_user_can('publish_posts') map_meta_cap() has_cap('published_posts') Roles + Capabilities
  • 56. Uh, Oh! No 'publish_post' Meta Capability Roles + Capabilities
  • 57. hack... hack... find  a  work-­‐around... submit  WordPress  core  trac  ticket... write  unit  tests... submit  a  patch... Roles + Capabilities
  • 58. Limitations» + Capabilities are not stored separate from roles + Capabilities do not have labels or descriptions Roles + Capabilities
  • 60. 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
  • 61. The value of open source core developer community developer
  • 62. "The foundation of open source projects is rough consensus and working code" —Jacob Kaplan-Moss
  • 63. Resources» + http://make.wordpress.org + http://core.trac.wordpress.org + freenode.net #wordpress-dev + wp-hackers@lists.automattic.com
  • 64. Up next» + infrastructure revamp + responsive + open source
  • 65. (by) Gregory Cornelius @gcorne design by Scott Dasse