D’où est venue l’idée de LouPortail ? A quel besoin répondait-il ?
En fait tout vient d’un site en PHP/MySQL que j’avais lancé en 2000 Une balle dans le genou. C’est un site (un peu gauchiste) où chacun pouvait raconter ce qui le foutait en boule. Comme la maintenance et l’évolution du site devenaient chaque semaine plus compliquées, j’ai décidé de regarder ce qui se faisait du coté des CMS. A l’époque, il existait plusieurs solutions, dont les principales étaient PHP-Nuke, DaCode et SlashCode. J’ai rapidement éliminé SlashCode en raison du perl, et DaCode ne répondait pas à tous mes besoins (en plus il fallait un hébergeur qui accepte des extensions particulières pour leur gestion de cache). Je me suis donc tourné vers PHP-Nuke, qui m’a vraiment impressionné, tout au moins tant que je n’ai pas ouvert le capot ;-). Là j’ai trouvé un code vraiment mal fichu, pas de gestion des modules, un système de traduction difficilement plus lent. Mais le point essentiel, était un manque évident d’évolutivité en raison d’une architecture non modulaire. Donc comme ça ne me convenait pas (comme beaucoup de créateur de CMS finalement), je suis parti from scratch, avec pour objectif d’avoir une architecture basée entièrement sur des modules et un système de placement des éléments gérés via la console d’administration. Et finalement, je suis assez d’accord avec ARNO, le créateur de SPIP, une des principales motivations a été d’apprendre !
Peux tu brièvement nous tracer les grandes lignes dans l’histoire de LouPortail, quand, où, comment ? Et surtout qui ?
La première version est sortie en janvier 2001. Ensuite, j’ai sorti environ une release tous les 1 à 2 mois. Au début, je me suis attaché surtout à paufiner l’architecture et à rajouter des modules. En mars 2001, j’ai basculé en HTML 4.01 transitional, avec gestion du CSS. La version 0.6 a vu la naissance de l’administration répartie, la 0.7 une fonction de recherche modulaire. C’est à cette époque que la communauté lou portail s’est développé avec des testeurs réguliers et des gens qui apportaient leurs idées. La version 0.9 a été une release importante avec la réécriture des fonctions de configuration utilisateurs (chacun peut paramétrer l’ensemble des éléments), le passage d’une gestion du positionnement par thème (fonction que j’avais mis dès le départ et qui permettait de différentier vraiment les thèmes mais qui s’est révélée être une mauvaise idée) à un positionnement par page (tel élément en haut à gauche pour la page principale, en bas dans les sondages et déactivé ailleurs) et un gros boulot d’optimisation (beaucoup de CMS ont encore une gestion assez sommaire des requêtes SQL). C’est aussi à cette époque que Daniel et les gens de ClickManiak m’ont apporté de l’aide en développement (améliorations diverses, thèmes modules). La version 1.0 a suivi rapidement en mars 2002, avec entre autre l’arrivée de PPM, la gestion des groupes d’utilisateurs et énormément de travail de finition. La version stable actuelle est la 1.2, dont les principales améliorations sont une architecture multi-langue et l’amélioration de la sécurité. Un deuxième développeur (Wolfoenix) m’a rejoint vers mars et nous travaillons actuellement à la version 1.3 avec en préparation une version 2.0 qui suivra.
Pour moi, parmi les grandes forces de LouPortail, on pourrait dire : la compatibilité totale de LouPortail avec tous les hébergeurs acceptant le php, dans la mesure où LouPortail ne fait aucun appel aux fonctions mail qui sont la plupart du temps bridées par les ISPs et le système de layouts. En vois tu d’autres ?
AMHA, il y a l’architecture multi-langue, l’administration répartie, les thèmes et la gestion des groupes d’utilisateurs. La configuration est également un des points forts (c’est un des seuls portails qui permette de configurer individuellement l’ensemble des éléments, genre je veux 20 messages dans la boites de chat, mais je ne veux pas voir la fenêtre de login). En ce qui concerne les défauts, je mettrais en premier lieu le manque de support (guides ou autre). J’essaie de compenser en étant très disponible pour résoudre les problèmes des utilisateurs, mais ça ne remplace pas une bonne doc. J’ai quand même l’impression que ce problème est partagé assez uniformément par tous les CMS (écrire de la documentation est souvent fastidieux et long).
Peux tu en dire plus sur chacune des forces que je viens de citer ? Notamment, le principe de layouts, comment fonctionne-t-il ?
Le principe des layouts est réellement ce dont je suis le plus fier. Les layouts peuvent être vus comme des instances des modules. Ces layouts sont ensuite placés sur une grille fictive en fonction d’une configuration par page et des préférences utilisateurs (le tout en SQL). Le moteur de lou portail est donc entièrement modulaire et ne fait appel qu’à l’affichage des layouts via une fonction standardisée. On peut ainsi réellement configurer l’aspect graphique du site. On peut même s’affranchir de l’aspect 3 colonnes via des configurations particulières ou en modifiant la page index.php (qui n’est en fait qu’un tableau HTML avec l’appel de la fonction d’affichage dans chaque case). Pour revenir à la compatibilité avec les hébergeurs, ça vient historiquement du fait que lou portail a été développé sur Free, donc sans fonction mail. Finalement, après réflexions, je pense que l’enregistrement par mail (le mot de passe est envoyé par mail) n’apporte aucune garantie supplémentaire de sécurité. Comme de plus Free a longtemps proposé PHP3, mais que je développais sous Linux avec un support PHP4, je me suis attaché à rester compatible entre les versions de PHP. louPortail possède actuellement une trentaine de modules. Qui les développe ? D’où viennent les idées ? Des developpeurs ou des utilisateurs ?
La grosse majorité des modules a été développés par moi (snif), bien que l’arrivée de développeurs change un peu la donne. Ainsi Wolfoenix a développé un module de mailing list, Daniel un module d’annonce, Jean-Baptiste un chat dynamique. Du coté des testeurs, environ une dizaine de personnes contribuent régulièrement aux tests et aux corrections de bugs, ce qui constitue une aide très importante.
Du coté des utilisateurs, beaucoup de personnes (la majorité n’étant pas des développeurs) donnent leur avis sur les ajouts, ce que doit comporter un module, quelles sont les priorités de développement, ... C’est pour moi le premier guide en ce qui concerne les modules. L’architecture est quand à elle le domaine privilégié des développeurs, bien que j’essaie de faire en sorte que tout puisse être discuté par tout le monde.
Envisagez vous de lancer un LouPortail anglophone ?
C’est déjà fait. Lou portail gère actuellement 4 langues (français, anglais, espagnol et brésilien) et d’autres sont en préparation.
Quelles sont les évolutions que vous aimeriez apporter à LouPortail ?
Pour la suite, nous sommes en train de mettre en place une version améliorée de la gestion des droits par module, avec une gestion par groupe (droit de visibilité, droit de post, droit d’administration, ...) et une surcharge éventuelle par utilisateurs. En plus, une procédure d’installation des modules normalisée. Tout ça doit sortir avec la 1.3. Ensuite, je compte bosser sur la gestion des paramètres qui sont passés aux layouts afin de permettre une gestion complètement indépendante des pages tout en levant certaines limitations (on ne peut actuellement commander que 3 modules simultanément sur une page). L’autre partie du boulot sera de renforcer l’aspect communautaire (de très bonnes idées ont été émises que j’aimerais voir se concrétiser).
As tu une idée du nombre de sites sous LouPortail ? Tes plus grandes suprises parmi les utilisateurs ?
Le nombre de sites sous lou portail est assez limité (quelques dizaines pour l’instant je pense). En ce qui concerne les utilisateurs, la plus grande surprise a été pour moi l’enthousiasme de certains membres qui acceptent de passer du temps pour améliorer tel ou tel aspect du logiciel.
L’autre surprise a été la teneur des sites : ça va de l’info engagée pour une balle dans le genou à un site catholique, du passionné de VMAX aux sites de jeux, de l’info sur une clinique à bamako à un site sur la mode, en passant par ATD quart monde toulouse, bref un joli bordel comme je les aime.
Pour finir, quel regard avez vous sur la communauté Nukienne, et plus généralement sur les autres CMS ?
La première chose concernant les différents CMS est que cette diversité des solutions est une force et finalement une obligation. On m’a dès fois reproché de ne pas par exemple contribuer à DaCode au lieu de faire Lou portail. Or c’est la diversité qui permet d’éviter l’uniformité du net (déjà bien engagé). Elle permet aussi de dégager des solutions libres en position de contrer efficacement la fourniture d’outils propriétaires et commerciaux clé en mains. La communauté Nuke est vraiment foisonnante (lp est ridicule avec ses 400 membres enregistrés). Donc il y a beaucoup d’avancées (les principales imperfections sont ou sont en passe d’être réglées). Par contre, on a constamment un sentiment de guerre civile avec PHP-Nuke, PostNuke, PHPMyPortal, ... L’auteur de PHP-Nuke a fini par pourrir son projet en affichant un putain de mépris pour le travail et les idées des contributeurs (ou tout du moins qui essayaient de l’être :-) ). Pour les autres, j’ai l’impression que des versions qui sont encensées un jour peuvent complètement disparaitre dès qu’un concurrent sort une nouvelle version. Le seul reproche que je me permettrais concerne le manque d’originalité entre tous les dérivés de Nuke. Chacun apporte des améliorations, mais reste plus ou moins sur les mêmes postulats. Mais globalement, Nuke et consorts méritent leur statut de premier CMS.
Sinon, j’aime bien DaCode, même si je trouve que globalement il n’avance pas aussi vite que ça vu le nombre de personne qui y contribuent (Mais LinuxFr doit prendre pas mal de temps...).
Dans un créneau légèrement différent, il y a aussi SPIP que je trouve vraiment original avec beaucoup de bonnes idées. C’est typiquement l’exemple qui montre la nécessité d’avoir des scripts différents avec des approches alternatives.