Je viens de lire le dernier billet de Richard (@ Tapahont) qui parle de la sortie de la dernière version de Guppy: 4.6.0.

Ca fait quelques temps que j’avais envie d’essayer de parler de Guppy. Essayer, je dis bien, parce que pour avoir utilisé Xoops 1.3, Xoops 2, e-Xoops, (feu ?) iXprim, Joomla!, Xaraya et Drupal (les trois derniers très modestement), et pour travailler actuellement sur un beau bébé répondant au doux nom de Brick, je n’arrive pasà comprendre ce CMS. Mais peut-être m’aiderez vous à me coucher moins bête 😉

Vous trouverez une présentation complète de Guppy sur sa page Wikipedia, mais globalement je vais essayer d’en faire ressortir quelques points d’incompréhension, en les analysant.

Un CMS sans base de donnée

C’est LE point qui me pose question.

Premièrement, dès qu’on veut gérer un site un tant soit peu professionnel, on se retrouve confronté à stocker une certaine quantité de données… Donc y’a pas photo, il faut un moyen de les stocker.

J’illustre plus bas le stockage de données sous Guppy, mais pour moi, je n’arrive pas à comprendre pourquoi s’obstiner à stocker des données dans un fichier. Aujourd’hui, je ne suis pas sûr qu’il existe encore un seul hébergeur un tant soit peu sérieux qui n’offre pas dans son pack d’hébergement de départ au moins une base de donnée (souvent de type MySQL). D’ailleurs, si votre hébergeur ne vous le propose pas, je pense que vous pouvez penser à en changer !

Mine de rien, pour stocker des données, c’est assez pratique d’utiliser une base de données… et puis comme dirait l’autre: “C’est fait pour ça !”

Le stockage de données sous Guppy

Bon, je l’avoue, des données, on peut aussi les stocker dans des fichiers, mais vous conviendrez quand même que quand on veut implémenter des relations, avec des clefs, tout ça… c’est quand même pas ce qu’on fait de mieux…

Ainsi, dans Guppy, pour stocker un article, on a dans le répertoire /data, un fichier doc29.inc qui contient le code suivant:

$type = "ar";$fileid = "29"; $status = "a";$creadate = "200412060400"; $moddate = "200705171844";$author = stripslashes("Icare"); $email = stripslashes("aa.zz@fai.fr");$fielda1 = stripslashes("Communauté GuppY"); $fielda2 = stripslashes("GuppY community");$fieldb1 = stripslashes("Remerciements"); $fieldb2 = stripslashes("Thanks");$fieldc1 = stripslashes(" J'ai commencé ce projet seul et j'ai travaillé [texte tronqué car très long] "); $fieldc2 = stripslashes(" I started alone this project and worked [texte tronqué car très long]scripts for GuppY."); $fieldd1 = stripslashes("left");$fieldd2 = stripslashes("gyteam.gif"); $fieldweb = stripslashes("");$fieldmail = stripslashes(""); $fieldmod = stripslashes("");?>

Pour ceux qui savent lire ce genre de charabia, j’pense qu’il n’y a pas des masses de commentaires à faire…

Structure de thème figée

Alors là, je prêche pour ma chapelle, mais par rapport à ce qu’on peut faire sous Brick, Guppy est un peu à la ramasse… En gros, les emplacements des blocs sont fixes, et les configurations de thèmes sont quelque peu archaïques… Y’a bien du CSS si on cherche un peu, mais pour personnaliser un thème, bonjour !

Exemple… fichier confskin.inc

$serviz[36] = stripslashes("on"); // Newsletter ON / OFF

$serviz[38] = stripslashes("on"); // RSS News ON / OFF

$posbox[0] = stripslashes(""); // Première boite à gauche

$posbox[1] = stripslashes("inc/boxuser"); // Première boite à droite

$posbox[2] = stripslashes("inc/boxartg"); // Seconde boite à gauche

Bon, j’arrête là

Le but n’est pas de faire un billet assassin, ou coup de gueule, mais d’essayer de comprendre… Donc si vous avez des éléments d’éclaircissement à apporter, surtout n’hésitez pas…

Ca me fait dire aussi en passant qu’un de ces quatre, y’a une version publique du beau bébé cité plus haut qui devrait arriver 🙂