buddypress @ wordcamp sf 2009

52
Cooking with BuddyPress Andy Peatling http://apeatling.wordpress.com / @apeatling Saturday, May 30, 2009

Upload: apeatling

Post on 27-Jan-2015

112 views

Category:

Technology


6 download

DESCRIPTION

Cooking With BuddyPress at WordCamp San Francisco 2009.

TRANSCRIPT

Page 1: BuddyPress @ WordCamp SF 2009

Cooking with BuddyPress

Andy Peatlinghttp://apeatling.wordpress.com / @apeatling

Saturday, May 30, 2009

Page 2: BuddyPress @ WordCamp SF 2009

What is it?

Why should I use it?

How do I skin and extend it?

Saturday, May 30, 2009

Page 3: BuddyPress @ WordCamp SF 2009

Multi-Blog Platform

Multi-Blog + Social Platform

Saturday, May 30, 2009

Page 4: BuddyPress @ WordCamp SF 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

Page 5: BuddyPress @ WordCamp SF 2009

Why?Build passionate users around

a specific niche.

Saturday, May 30, 2009

Page 6: BuddyPress @ WordCamp SF 2009

Sports Teams Niche Communities

High Schools

Universities

Companies or Products

Intranets

Blogging Networks Cities & Towns

Newspapers

Saturday, May 30, 2009

Page 7: BuddyPress @ WordCamp SF 2009

http://buddypress.org/

Saturday, May 30, 2009

Page 8: BuddyPress @ WordCamp SF 2009

A social network: to beor not to be?

Saturday, May 30, 2009

Page 9: BuddyPress @ WordCamp SF 2009

BuddyPress is not all or nothing.

Saturday, May 30, 2009

Page 10: BuddyPress @ WordCamp SF 2009

Why BuddyPress?

Saturday, May 30, 2009

Page 11: BuddyPress @ WordCamp SF 2009

Open Source

Power & Stability

Community

Saturday, May 30, 2009

Page 12: BuddyPress @ WordCamp SF 2009

BYOTOS(Bring Your Own Terms Of Service)

Saturday, May 30, 2009

Page 13: BuddyPress @ WordCamp SF 2009

Custom Branding

Saturday, May 30, 2009

Page 14: BuddyPress @ WordCamp SF 2009

Existing Plugins

Saturday, May 30, 2009

Page 15: BuddyPress @ WordCamp SF 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

Page 16: BuddyPress @ WordCamp SF 2009

How do I install BuddyPress?

Saturday, May 30, 2009

Page 17: BuddyPress @ WordCamp SF 2009

Download & Install WordPress MU

(stick with sub-folders if you can)

Saturday, May 30, 2009

Page 18: BuddyPress @ WordCamp SF 2009

One click download & install

Saturday, May 30, 2009

Page 19: BuddyPress @ WordCamp SF 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

Page 20: BuddyPress @ WordCamp SF 2009

Choose your components

Saturday, May 30, 2009

Page 21: BuddyPress @ WordCamp SF 2009

Drop in social widgets

Saturday, May 30, 2009

Page 22: BuddyPress @ WordCamp SF 2009

Set up bbPress for forums(will become easier!)

Saturday, May 30, 2009

Page 23: BuddyPress @ WordCamp SF 2009

Saturday, May 30, 2009

Page 24: BuddyPress @ WordCamp SF 2009

How do I skin BuddyPress?

Saturday, May 30, 2009

Page 25: BuddyPress @ WordCamp SF 2009

WordPress themes arefor blog/content pages

Saturday, May 30, 2009

Page 26: BuddyPress @ WordCamp SF 2009

BuddyPress themes arefor social pages

Saturday, May 30, 2009

Page 27: BuddyPress @ WordCamp SF 2009

Theme combinationsW

P Th

eme

BP

Them

e

Saturday, May 30, 2009

Page 28: BuddyPress @ WordCamp SF 2009

Blog Networks

Saturday, May 30, 2009

Page 29: BuddyPress @ WordCamp SF 2009

BuddyPress themes have specific template files for each

component

Saturday, May 30, 2009

Page 30: BuddyPress @ WordCamp SF 2009

Neatly ordered into sub-folders

Saturday, May 30, 2009

Page 31: BuddyPress @ WordCamp SF 2009

Don’t need a component? Delete ‘em!

Saturday, May 30, 2009

Page 32: BuddyPress @ WordCamp SF 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

Page 33: BuddyPress @ WordCamp SF 2009

BuddyPress themes use “The Loop” but not just for blog

posts

Saturday, May 30, 2009

Page 34: BuddyPress @ WordCamp SF 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

Page 35: BuddyPress @ WordCamp SF 2009

The “Site Members” Loop

Saturday, May 30, 2009

Page 36: BuddyPress @ WordCamp SF 2009

Fine grained control over loop output

Saturday, May 30, 2009

Page 37: BuddyPress @ WordCamp SF 2009

The “Skeleton Theme” is a BuddyPress theme framework

(it’s bundled with every BuddyPress download)

Saturday, May 30, 2009

Page 38: BuddyPress @ WordCamp SF 2009

Saturday, May 30, 2009

Page 39: BuddyPress @ WordCamp SF 2009

How can I extendBuddyPress?

Saturday, May 30, 2009

Page 40: BuddyPress @ WordCamp SF 2009

BuddyPress is as extensibleas WordPress

Saturday, May 30, 2009

Page 41: BuddyPress @ WordCamp SF 2009

All BuddyPress components are coded and structured the same way

Saturday, May 30, 2009

Page 42: BuddyPress @ WordCamp SF 2009

Standardization and consistency makes happy developers

Saturday, May 30, 2009

Page 43: BuddyPress @ WordCamp SF 2009

BuddyPress functions allow you totalk directly to the theme

Saturday, May 30, 2009

Page 44: BuddyPress @ WordCamp SF 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

Page 45: BuddyPress @ WordCamp SF 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

Page 46: BuddyPress @ WordCamp SF 2009

BuddyPress components are all URLaction based

Saturday, May 30, 2009

Page 47: BuddyPress @ WordCamp SF 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

Page 48: BuddyPress @ WordCamp SF 2009

Hook in everywhere

http://bit.ly/bphooks

Saturday, May 30, 2009

Page 49: BuddyPress @ WordCamp SF 2009

The “Skeleton Component” is a BuddyPress plugin framework

http://bit.ly/bpskelcomp

Saturday, May 30, 2009

Page 50: BuddyPress @ WordCamp SF 2009

http://bp-dev.org

Saturday, May 30, 2009

Page 51: BuddyPress @ WordCamp SF 2009

The Future....Cast your votes!http://bit.ly/bpvote

Saturday, May 30, 2009

Page 52: BuddyPress @ WordCamp SF 2009

Thanks! Questions?

@apeatling

@buddypressdev

Saturday, May 30, 2009