BP My Home 2.0 : repensé, réécrit, reloaded !

Publié le

par

Crédits Photo : My Home 🙂 by im4th, on Flickr, il s’agit en fait de la cabane que mon Papa et mes grands parents m’ont construite peu après ma naissance dans le massif Ardennais!

Je suis heureux de vous présenter cette nouvelle version de BP My Home. C’était le dernier de mes plugins dont la compatibilité avec BuddyPress 1.7 était vraiment problématique. Etant donné que BuddyPress a déjà mis sur orbite la beta 1 de la prochaine 1.8.. Il était temps !

Page des widgets d’un membre

Lorsque j’ai commencé les travaux sur cette version, je me suis très vite rendu compte que ce plugin avait besoin d’un vrai lifting, du coup je l’ai complètement réécrit. J’ai également pensé que l’ancienne gestion des BPMH widgets était trop compliquée et devait refroidir pas mal d’administrateurs de communautés BuddyPress dans la création de leurs propres widgets.

Gestion des Widgets : la 2.0 utilise l’interface native de WordPress!

Du coup, j’ai tout cassé pour simplifier et me reposer sur l’interface de gestion des widgets native de WordPress, comme illustré ci-dessus. Cela présente l’avantage de simplifier l’ajout de widgets classiques – besoin qui m’avait été souvent remonté – dans la page des widgets du membre pour enrichir les 4 « BPMH widgets » qui sont inclus au plugin 😉
Par ailleurs, pour les développeurs de plugins, il est beaucoup plus aisé de tirer profit de la zone d’accueil individualisé de BP My Home pour éventuellement proposer des shortcuts vers leurs contenus. A ce sujet, à la fin de cet article, je propose un squelette de Widget « BPMH ».

D’autres nouveautés moins spectaculaires…

  • la possibilité de personnaliser les noms et slugs du plugin
  • la configuration d’un widget  dispose de sa propre page et n’est plus gérée en Ajax
  • le plugin n’utilise plus de template particulier et se repose uniquement sur BuddyPress (members/single/plugins.php)

Si Vous souhaitez aller plus loin et créer un widget qui comprend une page de configuration, je vous propose de vous inspirer du code ci après que vous pourrez même tester dans le functions.php de votre thème. Voici un petit descriptifs des étapes à respecter que vous retrouverez en commentaires dans le code. Vous verrez que j’utilise la class WP_Widget fourni par WordPress en l’enrichissant de 2 méthodes pour ajouter l’interface de configuration à disposition des membres ( user_settings() et save_user_settings() ).

  1. Extension de la classe WP_Widget :
    A noter : pour que votre widget se postionne dans la sidebar des BPMH widgets disponibles dans l’interface d’administration des widgets de WordPress, ils’agit veiller à préfixer le nom de la class par « BPMH_ » et l’option classname du widget par « bpmh-« . Dans le constructeur, je vous invite à utiliser le hook bpmh_actions afin de lancer la fonction de sauvegarde des réglages de l’utilisateur (save_user_settings())
  2. Pour diriger l’utilisateur vers la zone de configuration de votre widget, il sera nécessaire d’utiliser un code équivalent à ce que j’indique pour la création du « configure » link.
  3. Lorsque l’utilisateur cliquera sur ce lien de configuration, BP My Home recherchera la fonction user_settings() de votre widget, j’illustre à ce moment de la partie la création d’un formulaire de réglages utilisateur.
  4. Ensuite il s’agir de créer la fonction save_user_settings() qui est accrochée au hook bpmh_actions, afin de gérer l’enregistrement des préférences de l’utilisateur.
  5. Enfin, il ne restera plus qu’à référencer le widget dans la liste des widgets disponible de WordPress tout en veillant à utiliser le hook bpmh_widgets_init pour accrocher la classe principale.

10 réponses à “BP My Home 2.0 : repensé, réécrit, reloaded !”

  1. Avatar de Kris Cone

    Hi.
    I updated to the 2.0 plugin. WHen I check the boxes to select the widgets in my profile, it refreshes and they come back unchecked. I have added the various items to the widget area and included the Bowe codes shortcode for friends too, but it says: Sorry, the administrator has not activated any widget so far.

    As far as I know there are widgets….

    So, thoughts on how to fix?

    Also, we will want to create and add our own widgets to the area so any more detail on how that can be done would be helpful. We did that with the older version.

    Thanks
    Kris

    1. Avatar de imath

      Hi,

      This is strange.. Can you tell me :
      – the BuddyPress version ?
      – the theme you use (premium BuddyPress, BP Default / child theme, WordPress theme ) ?
      – if you activate WP_DEBUG, do you see an error while updating the widgets in your profile ?
      – when you arrive in your profile, are the checkbox already checked ?
      – In the WordPress Widget Administration, the widgets are in BPMH Left Column and BPMH Right Column ?
      – What do you have in the usermeta ‘bpmh_user_activated_widgets’ ?

      As explained in this blog post, you just need to copy paste / adapt the code in your functions.php or in your plugin..

  2. Avatar de William Middleton

    For some reason when I activate for the home landing page, it still goes to my sites home page and not to my profile home page when I log in. Help Please

    The site is at josephstory.org/jjblog/

    Thank you so much for this plugin and assistance.

    Could it be that wordpress resides in a sub-directory of a subdomain?

    http://joseph.heavenboundministry.com/jjblog/

    Is there anything I could change? Thank you again for a fantastic plugin!

    William

    using bp 1.8.1 and wp 3.7.1 and bp myhome 2.0 …

    Everything else works fantastic! I use it as well on my other support site and it works flawlessly and the setup is quite identical all besides for it being in a sub-directory of a sub-domain. The other is in a sub-domain and like I said works flawlessly.

    Fantastic Plugin. Thanks for any help!

    William

    1. Avatar de imath

      Hi,

      Thanks for your interest in this plugin, this part of the plugin surely needs a refresh, can you try this patch and tell me if it solved your issue ?

      http://wordpress.org/support/topic/use-as-home-page-landing-upsets-ms-subdomains-possibly?replies=3#post-4441902

      1. Avatar de William Middleton

        Yes, It worked! Thank you so Much! The patch worked just dandy. I appreciate you sir and thank you for fixing this issue. It is really an awesome plugin! I cannot imagine anyone with Bp not using this!

        William

  3. Avatar de William Middleton

    Opps I also use buddypress-default theme. In both instances… Sorry for the exclusion.

  4. Avatar de sylvain
    sylvain

    Bonjour,
    je voulais savoir s’il est possible de faire en sorte d’avoir le modèle my home actif pour les amis.
    Exemple je vais sur la page d’un ami, je voudrais voir les infos le concernant avec la mise en page My home et les widgets affichés relatif à cet utilisateur.
    Merci par avance,
    Sylvain

    1. Avatar de imath

      Bonjour,
      Ce n’est pas possible. Désolé.

  5. Avatar de LEPERCQ

    Bonjour,

    Je voulais savoir si il est possible de rajouter une colonne pour l’affichage des widgets ?

    Cdt

    Guillaume

  6. Avatar de Amba
    Amba

    hello Imatt, super boulot vraiement tout tes plugins pour bp géniaux !!!
    bon j’arrete de te lecher les bottes et j’en viens à mon soucis 😉
    sur le plugin my home dans les reglages membres le bouton ne sauvegarde pas les reglages
    le pb pourrait venir d’ou ? mon template ?
    ma console (firebug) n’indique aucun pb js…
    j’avoue que j’ai bien cherché dans ton code mais ne parvient pas à trouver
    bien à toi
    Amba