Successfully reported this slideshow.

More Related Content

Related Books

Free with a 14 day trial from Scribd

See all

Related Audiobooks

Free with a 14 day trial from Scribd

See all

Extending BuddyPress – WordCamp Milano 2011 [italian]

  1. 1. Extending BuddyPress Plugin & Temi Francesco Laffi – WordCamp Milano – 27 Maggio 2011
  2. 2. Cos’è BuddyPress Blog Bacheca Utenti Profili Commenti Amicizie Taxonomy Gruppi Templates Forum (bbPress) Plugin API Messaggi Privati
  3. 3. Non un semplice plugin ------------------------------------- Lines of code WP 3.2b2 BP 1.2.8 ------------------------------------- PHP 102400 57363 JS 23760 2810 CSS 20955 5562 HTML 1952 0 XML 37 0 ------------------------------------- SUM: 149104 65735 -------------------------------------
  4. 4. Extending BuddyPress Componenti (plugins) bp-custom.php (snippets) Temi
  5. 5. Plugin per BuddyPress • sono plugin per WP ma usano le API di BP (funzioni, azioni, filtri) • eseguire il codice di BP solo dopo che viene caricato: /* Only load code that needs BuddyPress to run once BP is loaded and initialized. */ function my_plugin_init() {     require( dirname( __FILE__ ) . '/my-plugin.php' ); } add_action( 'bp_include', 'my_plugin_init' );
  6. 6. Componenti example.org/groups/my-group/forum/topic/test-topic/ current_component action_variables current_item current_action example.org/members/francesco/messages/1/view Accessibili tramite la variabile globale $bp http://codex.buddypress.org/developer-docs/the-bp-global/
  7. 7. Struttura dei componenti • Struttura standard • Usata anche per le funzionalità base di BuddyPress
  8. 8. BP Skeleton Component • Esempio di componente “high five” • Buona base di partenza per componenti personalizzati http://wordpress.org/extend/plugins/buddypress-skeleton-component/
  9. 9. Extending BuddyPress Componenti (plugins) bp-custom.php (snippets) Temi
  10. 10. bp-custom.php • wp-content/plugins/bp-custom.php • snippets di codice, piccole modifiche • cambiare slug ai forum: define('BP_FORUMS_SLUG', 'board'); • rimuovere i link cliccabili dal profilo: function remove_xprofile_links() { remove_filter('bp_get_the_profile_field_value', 'xprofile_filter_link_profile_data', 50, ); } add_action('plugins_loaded', 'remove_xprofile_links');
  11. 11. Extending BuddyPress Componenti (plugins) bp-custom.php (snippets) Temi
  12. 12. bp-default theme
  13. 13. URL Template URL: example.org/members/francesco/messages/compose/ Template: bp-default/members/single/messages/compose.php
  14. 14. i “Loop” • The Activity Stream Loop / bp_has_activities() • The Forum Topics Loop / bp_has_forum_topics() • The Members Loop / bp_has_members() • The Groups Loop / bp_has_groups() • The Blogs Loop / bp_has_blogs() • The Group Members Loop / bp_group_has_members() • The Private Messages Loop / bp_has_message_threads() • The Profile Data Loop / bp_has_profile() http://codex.buddypress.org/developer-docs/custom-buddypress-loops/
  15. 15. Group Members Loop <?php if ( bp_group_has_members() ) : ?> <div id="member-count" class="pag-count"> <?php bp_group_member_pagination_count() ?> </div> <div id="member-pagination" class="pagination-links"> <?php bp_group_member_pagination() ?> </div> <ul id="member-list" class="item-list"> <?php while ( bp_group_members() ) : bp_group_the_member(); ?> <li> <!-- Example template tags you can use --> <?php bp_group_member_avatar() ?> <?php bp_group_member_link() ?> <?php bp_group_member_joined_since() ?> </li> <?php endwhile; ?> </ul> <?php else: ?> <div id="message" class="info"> <p>This group has no members.</p> </div> <?php endif;?>
  16. 16. Temi personalizzati • bp-default child theme • si aggiorna con buddypress • WP->BP: BuddyPress Template Pack http://wordpress.org/extend/plugins/bp-template-pack/
  17. 17. Risorse • BP Codex: http://codex.buddypress.org/home/ • Forums: http://buddypress.org/community/ groups/creating-extending/forum/ • IRC: #buddypress-dev su Freenode • BP Dev Blog: http://bpdevel.wordpress.com/ • PHPXref e Doxygen • Trac: http://buddypress.trac.wordpress.org/
  18. 18. Q&A Francesco Laffi francesco@flweb.it twitter.com/francescolaffi http://flweb.it

×