Un soupçon de Nouveau dans l’Héritage de #BuddyPress

Publié le

par

Design with community in mind
Photo de Troy sur Unsplash

« Apollo » c’est le surnom de la version 3.0.0 de BuddyPress, une version qui célèbre les 10 années d’existence de l’extension de WordPress qui vous assiste dans la construction de votre site communautaire.

Une des évolutions introduites concerne le « templating » de votre site communautaire puisque « Nouveau », un pack de gabarits modernisés propose désormais une alternative à celui qui avait été hérité du thème « BP Default » au moment du lancement de l’API de compatibilité avec les thèmes WordPress (version 1.7). « BP Legacy », c’est son nom, reste donc disponible et activé par défaut pour les sites qui mettront à jour BuddyPress et « Nouveau » le sera pour les toutes nouvelles installations de l’extension.

Notez que depuis l’écran d’administration des options de BuddyPress, vous pouvez à tout moment activer l’un ou l’autre des packs selon vos préférences.

Nouveau

L’histoire de ce pack au nom très français a débuté il y a plus de 2 ans, j’avais à l’époque initié des travaux de rénovation au niveau de JavaScript en rendant l’énorme buddypress.js beaucoup plus modulaire et en m’appuyant sur la librairie Backbone.JS qui reste à ce jour la seule embarquée dans le Core de WordPress pour presqu’organiser en Modèles/Vues/Contrôleurs notre code. Ça évoluera très certainement avec la probable intégration de React au Core de WordPress lors de sa version 5.0, d’autant que Backbone.JS est scotchée en version 1.3.3 depuis avril 2016…

Toutefois, grâce à Backbone.JS, il a été possible de dynamiser certaines interfaces utilisateur en les transformant en « SPA » (Application Web Monopage). Le formulaire de création des Activités, l’interface d’invitation des Groupes et l’interface des Conversations Privées sont les premières applications de ce procédé dans BuddyPress.

La construction d’un tel ensemble de gabarits est selon moi super complexe (car il s’agit de maximiser l’intégration des contenus BuddyPress dans la majorité des thèmes WordPress) et est très consommatrice d’énergie. Aussi, je tiens à féliciter l’équipe de développement de BuddyPress et plus particulièrement Hugo Ashmore qui a joué un rôle primordial dans la réussite de ce tour de force.

Cette intégration de « Nouveau » au Core de BuddyPress sera très bénéfique à ce nouveau pack de gabarits car il sera beaucoup plus facile pour les contributeurs de le tester et de remonter d’éventuelles anomalies ou évolutions.

Injecter du sang neuf dans l’héritage !

Cette première partie contextuelle posée, venons en à l’objet principal de cet article. Comme certainement beaucoup d’entre vous, il se trouve que pour l’un des sites dont je m’occupe, je n’ai pas encore eu la possibilité de reporter les adaptations que j’ai apportées au fil des années au pack de gabarits « Legacy » dans « Nouveau ».

Toutefois, je suis hyper intéressé par sa nouvelle interface d’envoi d’invitations à rejoindre les groupes. Je me suis donc amusé à faire évoluer ma vieillissante extension WorkMates pour qu’elle me permette d’utiliser cette nouvelle interface très prometteuse dans « Legacy ».

Pour maintenir l’intégralité des fonctions de la première version de WorkMates, j’y ai ajouté la possibilité de filtrer la liste des membres potentiels selon leur type (j’utilise en effet la fonctionnalité type de membre de BuddyPress pour mon site). Par ailleurs, j’ai enrichi, sans le moindre effort, WorkMates d’une navigation « Mes amis » afin de laisser la possibilité à ceux qui activent ce composant de permettre à leurs utilisateurs de ne lister que les amis qui ne sont pas encore inscrits dans le groupe. C’est quelque chose qui m’avait été demandée dans ce rapport d’évolution.

Pour en savoir plus au sujet du fonctionnement de cette interface d’envoi d’invitations à rejoindre un groupe, je vous invite à parcourir la page du Codex de BuddyPress qui s’y rapporte.

Téléchargement