Salut,
Aujourd'hui, j'ai aid√© un ami qui, sur mes conseils, d√©marre un projet √† l'aide de BuddyPress 1.7-beta 1. Tout s'est bien d√©roul√© pour lui jusqu'au moment o√Ļ, apr√®s avoir investi dans un th√®me premium BuddyPress, il s'est dirig√© vers le menu Apparence de son administration WordPress pour l'ajouter puis l'installer. Et l√†, patatra ūüôĀ Pass√© le header du frontend de son blog : "white content of death !" Une erreur fatale interrompait la poursuite de l'affichage de son blog.

Il m'a donc contacté pour m'expliquer ses difficultés avec ce thème. Il était super contrarié d'avoir payé un thème dédié à BuddyPress sur le papier et qui une fois installé ne fonctionnait pas. Je le comprends.

Découverte du premier bug


Update !! : 2012/02/25, Boone vient de publier un billet sur le blog de dev de BuddyPress informant les concepteurs de thèmes "standalone" BuddyPress de la démarche à suivre pour éviter que BP Theme compat ne charge son mécanisme AJAX et sa feuille de style. Pour cela il suffit d'ajouter dans le functions.php du thème un support de BuddyPress en hookant after_setup_theme avec une priorité inférieure à 100. Exemple :

function bp_standalone_theme_setup() {
   add_theme_support( 'buddypress' );
}
add_action( 'after_setup_theme', 'bp_standalone_theme_setup', 10 );

Update !! : 2012/02/22, Boone vient de publier un ticket sur le trac de BuddyPress afin de trouver la meilleure solution pour gérer la difficulté observée ci-dessous. Génial !


Alors, je me suis lancé dans l'exploration du problème, j'avais ma petite idée déjà sur ce qui pouvait ne pas fonctionner. En effet la version 1.7 de BuddyPress intégrant de nouvelles fonctionnalités (BP Theme Compat) pour maximiser sa compatibilité avec la plupart des thèmes WordPress, elle vérifie avant d'utiliser ce mécanisme deux choses :

  • le th√®me actif est-il le th√®me embarqu√© historiquement par BuddyPress √† savoir BP Default ?
  • le th√®me actif est-il un th√®me enfant de BP Default ?

Simplement, dans le cas du thème premium BuddyPress en question, il n'est ni BP Default ni un child thème de celui-ci. Ainsi BP Theme Compat pensant qu'il s'agit d'un thème WordPress charge ses mécanismes AJAX / JS et son style. Or comme le thème en question charge lui aussi des mécanismes identiques pour fournir ses fonctionnalités BuddyPress, eh bien on se retrouve avec un bug. Concrètement, on peut observer son apparition simplement en postant une nouvelle activité car elle sera ajoutée en double exemplaire. Logique : deux mécanismes chargés de faire la même opération la font deux fois.

Alors, la première bêta de la 1.7 n'ayant été mise sur orbite que depuis la semaine dernière, j'imagine que le concepteur du thème n'a pas encore eu le temps de se pencher sur la question. En même temps, si vous démarrez votre projet BuddyPress avec cette bêta, je vous propose de poursuivre malgré tout vos développements en ajoutant le cas échéant pour ce type de thème ce morceau de code à son fichier functions.php :

function quick_fix_bp_theme_not_1_7_ready() {
   remove_action( 'bp_after_setup_theme', 'bp_load_theme_functions', 1);
}
add_action( 'after_setup_theme', 'quick_fix_bp_theme_not_1_7_ready', 9);

Une fois que c'est fait, BP Theme Compat ne chargera plus ses mécanismes AJAX / JS ni son style. Toutefois, le problème de mon ami n'était pas résolu, il avait toujours son "white content of death" sous son header.

Découverte du 2ème bug


Update !! : 2012/02/23, J'ai pensé qu'il était intéressant de publier une nouvelle page dans le BuddyPress Codex à propos de la fonction bp_is_active. J'ai illustré d'exemples avec la plupart des composants.


En fait, lorsqu'on installe pour la première fois BuddyPress et qu'on choisit la version 1.7, tous les composants ne sont pas activés d'entrée. Seuls les composants des profils étendus et des activités le sont. C'est selon moi une bonne chose car cela permet de bien comprendre que BuddyPress est un plugin qui regroupe des composants modulables et activables selon les besoins de l'administrateur.

Le probl√®me du th√®me en question est qu'il ajoute des contenus BuddyPress comme par exemple les derniers topics des forums de groupe, ou le nombre de messages priv√©s re√ßu par le membre connect√© sans v√©rifier que les forums de groupe ou la messagerie priv√©e sont activ√©s. R√©sultat : erreur fatale ūüôĀ
Le souci est en plus amplifi√© dans la mesure o√Ļ dans la version 1.7, il sera possible de motoriser les forums de groupe avec bbPress 2.3 (la prochaine version de bbPress).

Les composants activés par défaut dans la 1.7

Ainsi, il devient important pour les concepteurs de thèmes et les créateurs de plugins (je m'inclus notamment pour Bowe Codes) de ne pas oublier de vérifier que les composants dont nous souhaitons manipuler le contenu sont bien activés. Pour cela il suffit de tester la fonction bp_is_active( 'nom_du_composant' ) avant de lancer l'exécution de notre code comme l'illustre l'image ci-dessus.

Pour terminer, je suis convaincu que comme moi (car j'ai besoin de tester/adapter tous mes plugins sur/pour la 1.7, BP Checkins est déjà prêt), les concepteurs de ces thèmes premium (ou pas d'ailleurs) BuddyPress auront fait le nécessaire pour que les utilisateurs puissent profiter au mieux de cette fabuleuse 1.7 lorsqu'elle sera "released" !

15 r√©flexions au sujet de « Une #BuddyPress 1.7 theme story »

    1. imath Auteur

      Bonjour Boone,

      Merci pour ton commentaire ūüôā je viens de t’envoyer le nom des 3 th√®mes dans lesquels j’ai observ√© le bug.
      Je regarde le ticket.

  1. Stéphane

    Yep !

    L’ami en question te remercie vivement pour ton intervention, sans la quelle je me serais retrouv√© comme une andouille ! L√†, je peux avancer tranquillement.

    Pour parler un peu de BP, la 1.7 Beta 1 promet de belles choses c√īt√© utilisateur et admin du site. D√©j√†, la possibilit√© de motoriser les forums des groupes via bbpress, ha mais enfin ! Voil√† une id√©e qu’elle √©tait attendu je crois bien.

    Ensuite, son int√©gration me semble plus naturelle dans le workflow de wp. Bon, tout n’est pas encore au point, par exemple, l√†, je suis en train de regarder vers les profils √©tendus. C√īt√© admin, nickel, mais pas de r√©percussion sur le profil en front end, hum. Va falloir allez faire dans la doc de BP (qui au passage m√©riterait un coup de mieux).

    Enfin, c√īt√© th√®me, ouaip, j’√©tais un peu f√Ęch√©. L√Ęcher 60$ pour √©conomiser du temps (et donc de l’argent) et te retrouver avec un truc cod√© avec les pieds (menu en dur par exemple… paie ta mis√®re), tu dis, le gars, il a pas finis le job. Je comprends qu’un th√®me pour bp soit actuellement plus compliquer √† coder, mais tant qu’√† faire, autant livrer un truc finis et soign√©. Tout le monde n’a pas la chance d’avoir un ¬ę¬†imath¬†¬Ľ √† port√© de mail (:

    En tout cas, le projet prend forme doucement, et je crois que je vais m’√©clater !
    Encore merci m’sieur, et respect !

  2. Fabrice

    Salut Mathieu, Stéph

    Ahhhh chapeau bas iMath, sans toi le St√©phane mangeait son th√®me et le d√©v qui va avec ūüėČ

    Toute la difficult√© r√©side dans le choix du th√®me et de ses fonctionnalit√©s, et de ce point de vue l√† difficile de ne pas se tromper surtout quand on ne peut pas l’essayer…

    Trouver des th√®mes premium BP vraiment compatibles avec BP, arghhh c’est pas gagn√©, id√©e de topic sur BuddyPress France non ?

    1. imath Auteur

      Merci Fabrice, la p√©riode est un peu particuli√®re en fait, apr√®s r√©flexion je pense que d’ici √† la sortie de la 1.7, la grande majorit√© des th√®mes sera OK.
      Disposer d’un labo de test des th√®mes serait effectivement une id√©e int√©ressante, le probl√®me est financier je pense car il faudrait acheter les premium. To be continued !

  3. Kapil

    HI Imath,

    One of your fan from india. You are amazing. Whatever you do is awesome. I like your plugins.
    But i need your help if you can. I am working on making an encyclopedia based social network. I’m using bp and wp for that. I need something by which my groups can get updated automatically. I am talking about RSS/XML feeds, by which i can post automatic updates from external sources like google news in my groups activity streams. My great buddypress developer can you please help to create something like that. I badly needed this, Without this my project is good for nothing. I want to show encyclopedia in a way of social networking with social recomandation. I hope you’ll help me in making an open source encyclopedia based social network.

    Please help me, It is urgent. Please contact me on my email id. I will be thankful of you.

    1. imath Auteur

      Hi Kapil,

      It’s an interesting project. Unfortunately, i’m really busy at the moment and i’m afraid i won’t be able to help you as you’re in an emergency. I can only give you a direction on how to achieve your goal, that’s what i’d have done and in a way did with BP Checkins. If you look at his source code, you’ll find a way to use WP Cron to regularly post activity updates thanks to my foursquare API Class and its interpretation of json 4sq API. You just need to copy some part of the code, adapt it to your needs, and to use the groups_record_activity() function with the right arguments (group_id…).

      Bye.

      1. Kapil

        Hi imath,
        Thanks for providing me a direction for making this plugin, but unfortunately i’m not able to make this plugin properly. I am requesting you please make this plugin as your next upcoming release. I am in emergency. but if you want some time so you take that but plz plz brother, i am requesting you please create it. I badly needed this. I want to do something for the mankind but, i am not able to make this type of plugin. That is why i’m requesting you please help me buddy.

        I hope you will not broke my heart. Please give some time in this plugin creation. See you always launch plugins within 3 to 4 weeks. So why do not try this plugin at this time.

        I will be always thankful of you. Please reply …..

        1. imath Auteur

          I first need around a month to patch my BuddyPress plugins so that they behave the best way in the arriving 1.7 version. Then, if you haven’t found, i’ll look at it.
          Building plugins is a hobby, but to live i also need to work the day and find some time the night to sleep ūüėČ

          1. Kapil

            Yes, You are right. I know that it is your hobby. Okay take your time but please also consider on this plugin creation when you willl free..
            I will comeback soon to ping you…
            Byee

  4. gubundo

    salut
    je me lance dans un site avec buddypress. Avez-vous une idée de la date de parution de la version 1.7 ?
    merci

  5. Pingback: Le meilleur du blogging sur 4H18

Les commentaires sont fermés.