Une #BuddyPress 1.7 theme story

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 commentaires sur “Une #BuddyPress 1.7 theme story

  1. 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. 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. 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. 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. 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. 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. 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. 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. 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

Les commentaires sont fermés.