L’aube de #ClusterPress

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+