Politics 2.0 Changing the country thru WP & BP
What I’ll cover What we are doing – For everyone Why we choose WordPress & BuddyPress – For people looking to build a community What Plugins & Tools do we use – For non-technical people using BP & WP How’s it coded – For programmers using BP & WP
Profiles BuddyPress powered Mailing Address and Preferences Badges Permissions – Voting on policy
WP & BP powering engagement
Petitions
Motions in the House of Commons
Engaging with Canadians on issues
Why WordPress Hundreds of sites – hundreds of admins – Easy to administer User account persistent cross network Secure Scalable Actively maintained There’s a plugin for that
Why BuddyPress All features we wanted built in – Profiles – Groups – Activity There’s a plugin for that
What tools we used (we didn’t build that) One group for our community Hashtags for conversation segmentation Rate vote like plugin for activity Modified BPML for multilingual BP-Moderation to report abuse Group Subscription BuddyStream to push to FaceBook and Twitter Group discussion inside Facebook app
BuddyStream BP-Moderation Rate Vote Like BPML
#Hashtags No formal topics set Topics come and go Community decides
BuddyPress groups inside Facebook Facebook Notifications Post updates Post comments Edit profile
How we coded it Facebook App is a theme Converted Hashtag plugin from string search to taxonomy queries Language is a meta attribute to each activity Everything needs to be translated meaning a lot of filters to WPML Most API calls asynchronous with Gearman Custom post types / Custom taxonomy
Facebook App separate site with custom theme / plugins Filters and actions to pretend to be BP site Cron notifications of all users that installed App Currently notifies of new posts / comment and post reply
User logic code Our own user class that extends WP_User – Business logic in that class – Wraps API calls to update profile – Wraps custom taxonomy logic (Yes, taxonomy on users!)
Hello / Bonjour Internationalize AND multilingualize – Always use __() and _e(); – __(‘hello’,‘presentation’); In plugins that generate content or use admin generated content put filters for all the content – Example settings text boxes – Example daily notifications plugin
Questions?