L’aube de #ClusterPress

Publié le

par

Vie ma Vigne…2 de frenchmad, on Flickr.

Vendredi soir, j’ai franchi une nouvelle étape dans la conduite de ce nouveau projet open source : la mise en place du site de ce que j’ai appelé la tribu des contributeurs.

Pour l’occasion, je me suis fabriqué un Multisite aux petits oignons avec tout plein d’astuces pour le rendre disponible en français et en anglais sans jamais utiliser d’extension multi-langue.

Afin d’inaugurer ce nouveau site, je vous ai aussi livré, peut-être un peu brutalement, la première beta de ClusterPress. Si vous êtes plus à l’aise avec l’anglais, voici la version traduite de l’article. « Un peu brutalement » car les premiers retours très intéressants et complètement bienvenus de certains d’entre vous m’ont démontrés que j’aurais dû être beaucoup plus clair sur la partie « à quoi ça sert » de cette extension.

Alors, ce léger brouillard qui obscurcit la lumière matinale de ce nouveau projet sera bientôt dissipé avec la mise en place prochaine d’une documentation dédiée. Cette dernière sera intégrée aux blogs anglais et français de l’extension.

Cluster.Press, le réseau de sites de la tribu, utilise ClusterPress, vous pouvez donc vous amuser à parcourir ses rubriques « tribuns » et « tribunes » pour avoir un aperçu de ses deux principaux lots de fonctionnalités.  Sa page « A propos » est une autre bonne ressource pour comprendre les objectifs et l’environnement particulier de cette extension.

Pourquoi cette extension ?

Pour bien comprendre les potentiels apports de cette extension pour vous, j’aimerai partager les raisons qui m’ont poussées irrésistiblement à investir la quasi-totalité de mon temps et de mon énergie sur ce projet depuis la mi-août.

Certains qualifient WordPress de C.M.S. Même si techniquement, le périmètre de fonctionnalités que recouvre cet acronyme correspond bien à ce que fait WordPress, je n’apprécie pas vraiment son emploi. Je lui reproche d’induire une cible surtout professionnelle. Or, je n’oublie pas qu’une des raisons pour lesquelles WordPress est devenu si populaire c’est d’abord parce qu’il simplifie la publication sur internet pour toutes et tous, à commencer par les amateurs.

WordPress est avant tout un moteur de blogs. En passant, il est intéressant de constater qu’on ajoute souvent « perso » à la suite de l’anglicisme « blog » et « pro » à la suite de l’acronyme « C.M.S. ». Rappelons nous que les blogs ont joué (et jouent toujours) un rôle déterminant dans l’inversion du rapport de force entre l’audience et ses annonceurs.

… a world in which « the former audience », not a few people in a back room, decides what’s important.

Nous devons être fiers de contribuer à un projet Open Source qui participe à cette démocratisation de l’expression sur Internet. J’avoue que cette noble mission est très fédératrice et c’est un des aspects de WordPress qui m’avait énormément séduit il y a quelques années de cela.  Historiquement un moteur de blogs, voici un autre point qui m’a attiré et m’attire toujours autant. D’abord, parce que c’est majoritairement la fonctionnalité que j’utilise pour ce site perso. J’aime cette organisation chronologique du contenu, la possibilité « d’étiqueter » ou de « catégoriser » ce contenu, et surtout, j’adore l’idée que des visiteurs puissent l’enrichir à l’aide de commentaires et que des conversations soient entretenues.

Interactions entre utilisateurs grâce aux commentaires, publication de contenus, d’idées, d’avis… Alors, si on se réfère à cette définition du Web Social, WordPress (tout du moins sa fonctionnalité de blog) est un outil « social » tout autant que les wikis ou les réseaux sociaux. Ce qui, à mon avis, fait sa singularité en tant qu’objet social est son caractère « élaboré ».

A la différence des réseaux sociaux, dans lesquels, finalement on ne fait que partager de « l’inabouti », du non réfléchi ou commenter (voir critiquer) tel ou tel événement, …,  en d’autres termes dans lesquels on ne fait que réagir (ou détruire parfois), lorsqu’on utilise WordPress, on se pose, on réfléchit, on rédige, on développe des argumentations, partage des convictions, bref on construit.

Ainsi, après avoir touché à un peu tous les médias sociaux (j’avais même été inscrit sur MySpace et Brightkite à une époque!) et alors que je contribue moi-même à l’entretien d’un réseau social open source (dans la mesure où BuddyPress est souvent assimilée à l’extension qui transforme WordPress en réseau social), aujourd’hui j’ai envie de revenir à l’essentiel (ou aux sources) tout en proposant un renforcement alternatif de l’aspect social de WordPress.

Le premier point concerne le profil de l’utilisateur. Nous sommes aujourd’hui en novembre 2016, et alors que tout outil qui s’adresse aux utilisateurs intègre généralement un profil où l’utilisateur peut consulter tout ce qui le concerne, ce n’est pas le cas dans le core de WordPress. Cette absence a d’ailleurs été l’origine première de mon intérêt pour BuddyPress en 2010.

Certains d’entre vous peuvent m’objecter le profil disponible dans l’administration de WordPress, mais à moins que je rate quelque chose, je ne peux pas y retrouver l’intégralité de mes contributions aux contenus du site (ex : mes commentaires), d’une part. D’autre part, devoir quitter l’interface graphique du « front-end » est gênant et enfin tout plugin ayant besoin d’un profil utilisateur l’intégrera dans son code. Aussi si je m’amuse à activer bbPress, woocommerce et WP Idea Stream, je dois jongler avec trois profils !!!

ClusterPress, un profil unique, en « front-end », pour y retrouver toutes ses contributions au(x) site(s)

Ainsi, le premier objectif de ClusterPress est de proposer un profil utilisateur qui s’affiche en « front-end » à partir duquel l’utilisateur retrouvera toutes ses contributions et pourra gérer son compte (courriel, mot de passe..) depuis l’onglet de gestion (l’avant dernier sur l’illustration ci-dessus, le dernier servant à laisser apparaître/masquer le titre de l’onglet).

En raison de la non-existence d’un tel profil dans WordPress, je l’ai dit plus haut, les extensions ont développé leur propre profil. Et bien que l’API que j’ai mis en place permette de très simplement ajouter des sections au profil ClusterPress (aussi simplement que de déclarer un nouveau type de contenu ou « custom post type »), je doute que les extensions que j’ai listées sur mon illustration ne se penchent sur le sujet.

Alors, progressivement, je vais profiter de l’organisation très modulaire de ClusterPress pour les ajouter (avec l’aide de la tribu) au fur et à mesure au sein du répertoire officiel d’extensions de Cluster.Press . A ce jour j’ai déjà vérifié cette possibilité en créant l’extension ClusterPress Sites Forum (beta), laquelle une fois activée rapatrie tout le contenu du profil bbPress et le court-circuite pour qu’il ne s’affiche plus.

ClusterPress, le profil unique, en front-end, recensant tous les contenus créés par l’utilisateur (profil faisant cruellement défaut à WordPress à ce jour!).

Ensuite, alors que nous approchons de la version 5 de WordPress, je constate que depuis l’effort de convergence entre WordPress Mu et WordPress « classique », opéré à l’occasion de la version 3, il existe toujours de fortes divergences quant à la gestion des inscriptions des utilisateurs. Mon conseil, même si vous n’avez pas besoin d’une configuration Multisite, à partir du moment où vous avez besoin de permettre aux utilisateurs de s’inscrire utilisez la!

Si rien n’est fait lors de la 4.8 dans ce domaine, ClusterPress proposera un mécanisme pour tenter d’uniformiser ce point.

Maintenant, comme je l’écris un peu partout sur Cluster.Press, le meilleur ami de ClusterPress c’est la configuration Multisite de WordPress. Lorsque j’ai commencé à le développer, je ne pensais qu’à cette configuration qui me paraît beaucoup plus intéressante. Aussi, alors que j’avais échoué après de multiples patches monstrueux à convaincre le projet BuddyPress de proposer ce que j’appelle des pages de découverte des sites du réseau (autrement dit, à l’instar du profil utilisateur, des pages de profil de site), je n’ai pas résisté à l’intégrer dans ClusterPress. Voici donc le deuxième objectif de l’extension !

L’environnement de découverte d’un site fourni par ClusterPress.

Je reconnais que l’intérêt d’une telle zone en « front-end » saute moins aux yeux que le cas du profil des utilisateurs. Toutefois j’ai pu observer que certains d’entre vous s’embarquent dans des personnalisations de l’administration de WordPress pour restreindre certaines fonctionnalités pour telle ou telle catégorie d’utilisateurs ou encore pour la relooker pour que n’apparaisse plus le logo de WordPress par exemple.

Or comme cette zone de découverte repose sur la même API que celle du profil utilisateur, il est possible de lui ajouter une nouvelle section pour gérer en « front-end » les contenus de son site, par exemple, et ce toujours aussi simplement que de déclarer un nouveau type de contenu ! D’ailleurs, l’addon pour la documentation de Cluster.Press que je construis illustrera cette possibilité.

Notons que dés à présent, il est possible, depuis l’onglet de gestion de ce profil, de gérer les utilisateurs du site (ceux qui ont un rôle sur le site) ainsi qu’un nouveau type d’utilisateur que ClusterPress crée les « Adeptes » (ou « Followers » en anglais). Il est même possible de promouvoir ou rétrograder ces utilisateurs.

ClusterPress améliore la visibilité des sites composant un réseau Multisite et permet aux utilisateurs de s’abonner à leurs nouvelles publications.

Enfin, j’ai ajouté un autre module pour intégrer des interactions utilisateur qui permettent d’en associer certains à des contenus particuliers (les mentions) ou de permettre à d’autres de faire émerger les contenus (articles ou commentaires) qui sont les plus intéressant (les likes).

Pour conclure, en travaillant sur ces deux objets (WP_User et WP_Site) pour faire en sorte qu’ils s’affichent dans WordPress alors que ce ne sont pas des types de contenu, ClusterPress permet aux développeurs qui souhaitent l’utiliser de très rapidement afficher tout type de contenu dans WordPress.

En effet la CP_Cluster API vous propose des raccourcis pour définir vos « Rewrite rules », une navigation se basant sur la WP_Admin_Bar pour vos pages, vos routes « Rest », le templating de vos objets, les feedbacks utilisateur, les réglages de votre extension,  et bien entendu les procédures d’installation et de mises à jour de votre extension.

Je tenais à remercier tous les « tribuns » qui se sont déjà engagés dans la tribu, vous êtes bien entendu toutes et tous les bienvenus si ce projet vous 👢.

A+