Voici comment – après quelques heures de bidouillage – j’ai pu arriver à intégrer correctement le bouton Facebook Like dans le flux d’activités de BuddyPress.
Ce qu’il faut savoir c’est que le loop de BP nous renvoie un tableau assez volumineux contenant toutes les entrées du flux d’activités sans égard à son type (à moins que l’utilisateur ait fait sélectionné une méthode de tri).
Ainsi, chaque type (mise à jour, inscription à un groupe, publication sur un forum, etc.) a sa propre façon de gérer ses URLs et cette dernière n’est malheureusement pas passée en argument dans le Loop : il faut donc la construire.
Le bout de code qui suit ajoutera automatiquement le iFrame de vote pour Facebook à la droite des boutons de réponse en se suppléant au marqueur do_action(‘bp_activity_entry_meta’); présent dans le thème par défaut à l’endroit souhaité.
Vous remarquerez que personnellement, j’ai choisi d’exclure du processus (en ne leur attribuant pas d’URL) les types tels que : joined_group, new_member, friendship_accepted, et friendship_created pour une raison évidente : on s’en fou de signaler notre intérêt (like) pour ces éléments!!
Voici donc quoi ajouter dans le fichier functions.php de votre thème BuddyPress :
<?php /* * FACEBOOK LIKE * ajouter le bouton Facebook Like dans le flux des activités * utilise le listener 'bp_activity_entry_meta' du thème par défaut de BP */ add_action( 'bp_activity_entry_meta' , 'facebookLikeActivity'); function facebookLikeActivity() { global $bp,$activities_template; // si objet inexistant if(!is_object($activities_template)) return; // current ID $id = $activities_template->current_activity; // trouver le bon lien switch($activities_template->activities[$id]->type) { case 'activity_update' : $link = $activities_template->activities[$id]->primary_link; $link .= 'activity/' . $activities_template->activities[$id]->id.'/'; break; case 'new_forum_topic' : case 'new_blog_comment' : case 'new_blog_post' : case 'new_forum_post' : $link = $activities_template->activities[$id]->primary_link; break; case 'created_group' : preg_match_all('/href="([^"]*)"/i', $activities_template->activities[$id]->action, $matches); $link = $matches[1][1]; break; case 'joined_group' : case 'new_member' : case 'friendship_accepted' : case 'friendship_created ': default : $link = NULL; break; } //ajouter le bouton if($link) : ?> <iframe src="http://www.facebook.com/plugins/like.php?href=<?php echo urlencode($link); ?>&layout=button_count&show_faces=false&width=90&action=like&colorscheme=light&height=21" scrolling="no" frameborder="0" style="position:relative;top:7px;border:none; overflow:hidden; width:90px; height:21px;" allowTransparency="true"></iframe> <?php endif; } ?>
Commentaires Facebook
2 commentaires pour “Buddypress : Ajouter Facebook Like dans le flux d’activités”
Ajouter un commentaire
Additional comments powered by BackType
Twitter @emilegirard
Mots-clefs
Ailleurs
- 100% Hockey
- AccesOWeb
- Alsacréations
- Canadiens de Montréal
- Carl Charest
- Carl-Frédéric De Celles
- Chrystian Guy
- Debbie Rouleau
- Dominic Arpin
- Eric Baillargeon
- Famille Enfants Parents
- Goudaille
- Histoires de Geek
- Il Blogue
- Influenceur – Blogue Tendance
- Martin Petit
- Michel Dumais
- Nicolas Langelier
- Patrick Lagacé
- PhotosMax
- Samuel Parent
- Sébstien Goulet
- Sportnographe
- Stéphane Guérin
- Stéphane Jose
- Tchuvak’s Life
- Yannick Manuri
- Ze Canada

Laurent a dit :
Super merci, je vais tester ça ! J’espère que ça marche avec BP 1.5…
Laurent a dit :
Malheureusement le bouton s’affiche bien mais il renvoie tous les votes sur l’url du nom de domaine… Comment rectifier ça ?