Ré-Aiguillage des commentateurs des Activités #BuddyPress de type blog/forum

Crédits Photo Yard ladder by contemplative imaging, on Flickr

En ce moment, je travaille à réparer mon plugin BP Code Snippets qui est « broken » depuis que BuddyPress est passé en version 1.5 – en passant désolé pour le délai de mes réparations :(. En fait plus que le réparer, je compte en profiter pour l’enrichir de nouvelles fonctionnalités. Or au détour du développement de l’une d’entre elles, je me suis intéressé aux commentaires des activités de BuddyPress.

Without hack : activity comment

Je me suis rappelé notamment d’une question qui m’avait été posée par un utilisateur de mon réseau Intranet au sujet des commentaires apportées aux activités qui indiquent qu’un nouveau topic de forum a été posté dans un groupe…

Ah en fait quand tu commentes depuis l’activité, tu ne retrouves pas le commentaire dans le topic du forum, ce qui fait que tu dois suivre à la fois les réponses aux topics et les réponses aux activités liées au forum, c’est bien cela ?

« Diantre ! » me suis-je dis intérieurement… Je n’avais pas vu la difficulté que pouvait représenter ce comportement pour certains utilisateurs !! J’ai donc simplement répondu « je termine ma démo et reviens sur ce point plus tard ». C’est une bonne technique pour évacuer les questions embarrassantes.. la plupart du temps on oublie 🙂

Ceci étant dit : Je me suis rappelé de cet épisode, et donc en guise de « christmas gift » je vous propose ma dernière « BuddyPress bidouille » de l’année :

Un child thème qui permet de modifier le comportement du bouton commenter d’une activité liée à un post de forum ou de blog pour rediriger l’utilisateur vers le formulaire de commentaires du forum ou de l’article en question

With hack : lien vers le bon formulaire..

Ce thème contient

Liste des fichiers
  • un functions.php intégrant les fonctions qui me permettent de « hacker » l’activity stream
  • le style.css qui indique que mon thème hérite de BP Default grâce au tag « Template » – en passant depuis la version 1.5 de BuddyPress, c’est tout ce que vous avez à faire pour construire votre child thème!! Plus besoin d’importer le style de BP Default et de la Buddy AdminBar, cool 😉
  • et le template entry.php du thème par défaut de BuddyPress.

Adaptons notre template entry.php

Comme vous pourrez le constater, je crée simplement deux nouveaux tags qui appelleront les fonctions de notre functions.php pour atteindre l’objectif fixé. Si vous utilisez votre propre child thème BuddyPress, il suffit de reproduire cette opération dans votre thème 😉

<div class="activity-meta">
   <?php if ( bp_activity_can_comment() ) : ?>
          <?php if( imath_object_is_forum_or_blog_post() ): ?>
              <?php imath_get_original_object_comment_link(); ?>
           <?php else: ?>
     //Le reste ne change pas
     <a href="<?php bp_get_activity_comment_link(); ?>" class="button acomment-reply bp-primary-action" id="acomment-comment-<?php bp_activity_id(); ?>"><?php printf( __( 'Comment <span>%s</span>', 'buddypress' ), bp_activity_get_comment_count() ); ?></a>
           <?php endif; ?>
   <?php endif; ?>

Insertion des fonctions dans le functions.php

Je ne détaille pas ici le code de ces fonctions. Elles sont disponibles dans le child thème qui vous attend au pied du sapin !! De la même manière que pour le template entry.php, vous pouvez simplement ajouter ces fonctions au functions.php de votre propre thème BuddyPress.

Tada !

Si l’activité ne concerne ni un article/commentaire de blog ni un topic/post de forum, on conserve le comportement classique de BuddyPress, autrement direction le formulaire de commentaire ad hoc !

One more thing ! (Plusieurs en réalité !)

  • J’ai conçu ce child thème sous WordPress 3.3 + BuddyPress 1.5.2, je l’ai testé sous WordPress 3.0 et BuddyPress 1.2.7 : cela fonctionne également – j’en déduis qu’il y a de fortes probabilités que ce soit également le cas sur des configs intermédiaires.
  • @boone avait imaginé un moyen alternatif d’arriver au même résultat, je vous invite à lire son article sur le sujet.
  • N’oubliez pas de récupérer mon « christmas gift » (le child thème) au pied du sapin 😉

10 commentaires sur “Ré-Aiguillage des commentateurs des Activités #BuddyPress de type blog/forum

  1. Super article. Je cale moi-même sur un autre problème de customisation de BuddyPress, mais avec le thème Custom Community. J’ai modifié l’ordre d’affichage des posts à l’intérieur des forums (DESC au lieu d’ASC pour avoir les + récents en premier) mais ceux ci sont très actifs et les nombreux posts génèrent plusieurs pages par forum. Le problème est que je n’arrive pas à faire remonter le formulaire de saisie d’un nouveau post en 1ère page du forum et pas en dernière. Je serais preneuse d’un conseil ou d’un début de piste 🙂

    1. Merci pour ton commentaire 😉

      Un début de piste :
      je tenterais d’ajouter/ modifier les templates groups/single/forum/topic.php et forums/index.php de mon thème…
      A+

  2. Merci de ne pas tenir compte de mon précédent commentaire et en fait… merci tout court.

    Ce code est tout simplement génial et a résolu mon problème. Même avec de multiples pages par forum. Pour l’instant, juste testé en local et ça fonctionne parfaitement. Ce sera modifié sur le site très rapidement 🙂

    Très beau boulot, félicitations !!

  3. Embarrassant… Dans Dreamweawer (oui, je sais) précisément, il n’y a rien, et comme je n’ai pas de retour ligne, la numérotation doit être bonne non ?
    Merci en tous cas de ta prompte réponse

  4. @IMATH : WP 3.3.1 et BP 1.5.4. Comme en local :-/
    Prochaine étape, comme il n’y a rien à la ligne 576 du functions.php modifié, je vais quand même vérifier ce que contient la même ligne du fichier avant modification. Je te tiens au courant.

  5. Dommage que je n’aie pas pu implémenter ta solution que je trouve infiniment plus élégante que la mienne… Mais bon, problème résolu finalement en revenant à mon idée première et en modifiant le code du thème (remonté le formulaire de réponse en tête de liste des posts des forums). Une usine à gaz ce thème Custom Community !
    PS : peux tu stp supprimer mon com du 9/3 5:36 ?

    Merci 🙂

Les commentaires sont fermés.