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+