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+