Voilà quelques semaines que je n’ai rien posté. Pas trop d’inspiration, et surtout pas envie de blablater sur un truc histoire de.
J’aurai pu parlé de Mastodon, mais c’est trop à la mode. Alors à quoi bon, d’autres le font mieux que moi 😉
Pour changer, je vais vous parler aujourd’hui d’un projet méconnu du grand public : PHPBoost.

PHPBoost, c’est quoi ?

PHPBoost est un CMS (ou gestionnaire de contenu) écrit en PHP et développé par des francophones. Oui monsieur, un CMS français. Non, pas chauvin pour un sou, mais ça fait du bien 😉
Cerise sur le gâteau, c’est un logiciel libre distribué sous licence GNU/GPL.

Concrètement, il vous permet de monter votre site internet complet en 5 minutes chrono. Pourquoi complet ? Voyons ça.

Le tout en un

Si je me suis avancé à dire complet, c’est qu’il l’est. En effet, PHPBoost est fourni de base avec un lot de modules comblant à peu près tous les besoins d’un site web. Vous trouverez entre autres un forum complet, un wiki, des news, galerie d’image, …

Le noyau n’est pas en reste, avec une gestion très fine des utilisateurs, des droits, des modules, menus, langues, …

Si ça vous tente, voilà une page qui recense à peu près les fonctionnalités de tout cela.

Coté dév

Exit le tuto de l’install ou les lauriers, vous n’êtes pas là pour ça 🙂
Je vous laisse cependant faire joujou avec si vous le désirez.

Coté code, PHPBoost s’appuie sur le classique PHP/MySQL. Pas grand intérêt d’en débattre ou d’en faire des caisses.
En revanche, là où il y a matière à discuter, c’est son framework.

Le framework du CMS en est un point fort, et en même temps un de ses points faibles. Il est une base solide et complète pour ceux qui souhaitent développer leurs propres modules ou personnaliser ceux existants. Bien, vraiment.
Là où ça pêche, c’est que les développeurs successifs se sont cantonnés à un outil fait maison.

Aussi, il faut à chaque besoin fouiller la doc ou chercher des exemples d’utilisation dans les modules existants. J’en reparlerai plus tard.

Ca en est où ?

PHPBoost existe depuis presque 12 ans maintenant. Lancé à l’époque par 2 étudiants qui ont lâchés les rennes en 2011, le projet semble bien se porter grâce aux mecs qui ont succédés. D’ailleurs, une version 5.1 devrait bientôt voir le jour.

L’équipe de bénévoles assure les mises à jour du noyau et de la vingtaine de modules officiels en même temps, ainsi que quelques thèmes. Malheureusement, ils sont trop peu nombreux.

Si j’en crois l’activité du git, il semble qu’il n’y ait d’ailleurs qu’un seul dév backend.
Coté design, 2 graphistes assurent le gros du chantier.

Où est-ce que ça coince ?

Si le CMS n’a jamais réellement décollé avec plus de 10 ans d’existence, c’est qu’il y a quelque chose. J’ai essayé de faire le tour.

Le design

Ce qui me frappe sur la page d’accueil même du site officiel, c’est le design. J’ai immédiatement le sentiment que les graphistes ont voulu se mettre à la page en proposant du flat, mais en même temps point trop n’en faut. On retrouve des border-radius, des ombres à la Bootstrap, des couleurs de bordures différentes sur un même élément, un dégradé dans le header, …
En somme, un mixte flat et kikoo CSS3 est arrivé.

Et ce bleu omniprésent. Présent depuis les premières versions d’ailleurs.
Si seulement ce n’était que pour le site officiel. Mais non, le thème de base fourni est le même.

Je ne suis pas un grand artiste ni même un webdesigner. Je n’ai d’ailleurs pas créé le thème du blog moi même.
Mais n’y a t-il rien qui traine ? Des UI sur lesquels s’inspirer ? Un petit coup d’oeil sur des CMS qui fonctionnent ?

C’est dommage, mais déjà sur le site officiel, première image qu’est censée envoyer un produit, j’ai une image d’amateurisme.

Les thèmes

Dans la continuité, j’ai voulu voir ce que donnaient les différents thèmes proposés. Nombre sont de la communauté.

Cependant, j’ai l’impression de faire un bond de 10 ans en arrière. C’est glossy, à la web 2.0 (ou pire). Les thèmes semblent être figés dans le temps.
On en retrouve d’ailleurs qui étaient déjà présents en 2011, imaginez.

De plus, il faut bien souvent réorganiser les menus pour que le design ait l’apparence escompté. Faute à l’auteur qui n’a pas prévu qu’un utilisateur voudrait le menu de connexion en bas et pas en haut.

Le soft comprend un moteur de templates perso, et la possibilité de réécrire les templates d’un module dans un thème, ce qui est une très bonne chose pour les graphistes amateurs (et les autres).
En revanche, comme il y a trop de modules et que ceux-ci intègrent parfois des classes spécifiques, il faut encore et encore vérifier et adapter les templates de chaque plugin pour avoir un design uniforme.
Tout cela sans oublier de prévoir chaque position de menu.

Un casse-tête. Trop de travail pour que ce soit correctement fait.

Le framework

Le kernel du CMS est très bien pensé. Il permet, lorsqu’on s’est un peu penché dessus, de couvrir pas mal de besoins, et notamment les interactions avec le noyau.

2 bémols selon moi : Il n’y a aucune utilisation des namespaces. Tout est dans l’espace de nom global, ce qui fait que les classes ont des noms à rallonge. Mais ça c’est supportable, bien que j’ai tendance à avoir des problèmes à cause de ça.
Le gros inconvénient selon moi, est qu’il n’y a aucun hook. Vous savez ce qui permet à votre plugin WordPress d’incruster un petit bouton au milieu d’un article, de modifier le contenu, … Ici aucun moyen, aucun hameçon.
Il faut modifier le module original.

Enfin, comme je l’ai dit tout à l’heure, le problème est qu’il est fait main. Pas que je soit contre, bien au contraire. Mais pour un projet de cette envergure, ça freine carrément les développeurs qui voudraient se lancer.
Si seulement on pouvait s’aider de la doc. Parlons-en.

La documentation

Coté utilisation, rien à redire. La doc semble complète, mise à jour, avec des screens à foison. On sent vraiment que l’équipe met le paquet pour rendre le CMS accessible à n’importe qui.

En revanche, coté développement : Il y a du manque. On retrouve les bases pour créer un module, la hiérarchie à respecter, exécuter des requêtes SQL etc. Mais pour tout ce qui est API, bosser avec le noyau : Pas grand chose.
Il suffirait pourtant de générer une doc avec Apigen ou  PHPDoc, mais non. Et puis faut avouer que dans les sources, il y a pas mal de fonctions sans commentaire.

L’équipe semble porter la priorité sur les nouvelles versions (ce que je comprends), mais elle en oublie les fondamentaux pour voir arriver de nouvelles recrues qui pourraient leur filer un coup de pouce.

La barrière de la langue

Enfin, parlons langue. J’aime bien le français, pour sûr. Notez d’ailleurs que je ne rédige jamais en anglais. Peut-être les anglophones me remercient de ça ^^

Mais pour toucher un public large, il faut viser les anglais. Croire que l’on peut s’en tenir au français et lancer un produit sans communiquer ou avoir une doc en anglais est utopique.
Je comprends que l’équipe soit réduite, d’ailleurs c’est certainement pour cela que les points mentionnés plus haut en sont encore là. Mais pourquoi ne pas traduire le minimum vital ? Laisser une catégorie aux anglophones dans le forum ? Communiquer en anglais sur les réseaux sociaux ?

NB : Le CMS est entièrement traduit en anglais.

Bashing gratuit ?

Non bien sûr. J’aime bien ce CMS, parce qu’il est complet. Pas besoin d’installer un blog, un PhpBB, mediawiki, … Tout est dedans. J’ai même hésité à passer mon blog dessus.

Mais avec un peu de recul, je me demande si c’est un outil approprié pour tout cela. Comme dit, PHPBoost fait tout, trop de choses d’ailleurs, là où ils pourraient gagner du temps. Soutenir un module Livre d’or. Vraiment, en 2017 ?

Si vous me lisez : Les gars, laissez de coté les modules inutiles, faites une pause et concentrez-vous sur l’essentiel. A vouloir en faire trop, on ne fait rien de bien.

Et vous, connaissiez-vous PHPBoost ?