Cooking with BuddyPress
Andy Peatlinghttp://apeatling.wordpress.com / @apeatling
Saturday, May 30, 2009
What is it?
Why should I use it?
How do I skin and extend it?
Saturday, May 30, 2009
Multi-Blog Platform
Multi-Blog + Social Platform
Saturday, May 30, 2009
Profiles
Private Messaging
Friend Connections
Content Groups
Discussion Forums
Comment Wires
Activity Streams
Status Updates*
Photo Albums*
Blog Tracking
“Just a Plugin”
Saturday, May 30, 2009
Why?Build passionate users around
a specific niche.
Saturday, May 30, 2009
Sports Teams Niche Communities
High Schools
Universities
Companies or Products
Intranets
Blogging Networks Cities & Towns
Newspapers
Saturday, May 30, 2009
A social network: to beor not to be?
Saturday, May 30, 2009
BuddyPress is not all or nothing.
Saturday, May 30, 2009
Why BuddyPress?
Saturday, May 30, 2009
Open Source
Power & Stability
Community
Saturday, May 30, 2009
BYOTOS(Bring Your Own Terms Of Service)
Saturday, May 30, 2009
Custom Branding
Saturday, May 30, 2009
Existing Plugins
Saturday, May 30, 2009
University Intranet
Profiles
Comment Wires
Activity Streams
Blog Tracking
+ LDAP Login Plugin
+ “More Privacy” Plugin
+ Group Blogs Plugin
Content Groups
Saturday, May 30, 2009
How do I install BuddyPress?
Saturday, May 30, 2009
Download & Install WordPress MU
(stick with sub-folders if you can)
Saturday, May 30, 2009
One click download & install
Saturday, May 30, 2009
Oh, and move the themes...
Default WP ThemeDefault BP Theme
/wp-content/bp-themes/bpmember/
/wp-content/themes/bphome/
(optional)
Saturday, May 30, 2009
Choose your components
Saturday, May 30, 2009
Drop in social widgets
Saturday, May 30, 2009
Set up bbPress for forums(will become easier!)
Saturday, May 30, 2009
Saturday, May 30, 2009
How do I skin BuddyPress?
Saturday, May 30, 2009
WordPress themes arefor blog/content pages
Saturday, May 30, 2009
BuddyPress themes arefor social pages
Saturday, May 30, 2009
Theme combinationsW
P Th
eme
BP
Them
e
Saturday, May 30, 2009
Blog Networks
Saturday, May 30, 2009
BuddyPress themes have specific template files for each
component
Saturday, May 30, 2009
Neatly ordered into sub-folders
Saturday, May 30, 2009
Don’t need a component? Delete ‘em!
Saturday, May 30, 2009
URL’s map to template files
http://example.org/members/andy/messages/compose/
/wp-content/bp-themes/bpmember/messages/compose.php
Saturday, May 30, 2009
BuddyPress themes use “The Loop” but not just for blog
posts
Saturday, May 30, 2009
Output any BuddyPress content through custom loops
http://bit.ly/bploopdocs
bp_has_activities()
bp_has_site_members()
bp_has_site_groups()
bp_has_site_blogs()
bp_has_blogs() bp_has_posts()
bp_has_comments()
bp_has_friendships()bp_has_groups()
bp_group_has_members()
bp_has_message_threads()
bp_has_wire_posts()
bp_has_profile()
Saturday, May 30, 2009
The “Site Members” Loop
Saturday, May 30, 2009
Fine grained control over loop output
Saturday, May 30, 2009
The “Skeleton Theme” is a BuddyPress theme framework
(it’s bundled with every BuddyPress download)
Saturday, May 30, 2009
Saturday, May 30, 2009
How can I extendBuddyPress?
Saturday, May 30, 2009
BuddyPress is as extensibleas WordPress
Saturday, May 30, 2009
All BuddyPress components are coded and structured the same way
Saturday, May 30, 2009
Standardization and consistency makes happy developers
Saturday, May 30, 2009
BuddyPress functions allow you totalk directly to the theme
Saturday, May 30, 2009
Building your component navigation
bp_core_add_nav_item ( ‘Profile’, // Name ‘profile’ // Slug);
bp_core_add_subnav_item ( ‘profile’, // Slug of parent ‘Edit Profile’, // Name ‘edit’, // Slug of sub nav item $bp->loggedin_user->domain . ‘/profile’, // parent URL ‘xprofile_screen_edit’ // Function to run when clicked);
Saturday, May 30, 2009
bp_core_add_subnav_item ( ‘profile’, // Slug of parent ‘Edit Profile’, // Name ‘edit’, // Slug of sub nav item $bp->loggedin_user->domain . ‘/profile’, // parent URL ‘xprofile_screen_edit’ // Function to run when clicked);
function xprofile_screen_edit() { // Do stuff (save changes etc)
bp_core_load_template ( ‘profile/edit-profile’ );}
[activetheme]/profile/edit-profile.php
Saturday, May 30, 2009
BuddyPress components are all URLaction based
Saturday, May 30, 2009
http://example.org/groups/wplovers/members/ban/345
$bp->current_component $bp->current_item $bp->action_variables(array)(string)(string)
$bp->current_action(string)
Easily create and use pretty URL’s in your components
http://example.org/members/andy/wordcamps/attended/sf/2009
Saturday, May 30, 2009
Hook in everywhere
http://bit.ly/bphooks
Saturday, May 30, 2009
The “Skeleton Component” is a BuddyPress plugin framework
http://bit.ly/bpskelcomp
Saturday, May 30, 2009
The Future....Cast your votes!http://bit.ly/bpvote
Saturday, May 30, 2009
Thanks! Questions?
@apeatling
@buddypressdev
Saturday, May 30, 2009