Important remaniement du site

La gestion du site a subit de grands changements ces derniers jours, avec une réécriture quasi-complète des scripts de publication PHP.

Pourquoi ce revamping, alors que j'ai déjà les mains dans le cambouis de la refonte des squelettes Framasoft ? Simplement parce que le système précédent était devenu un vaste foutoir de fonctions redondantes plus ou moins bien écrites, et parce qu'il ne répondait pas encore entièrement au cahier de charges que je m'étais fixé :

  1. Gestion de 2 types de documents : articles et brèves.

  2. Format de stockage des données humainement lisible (xml).

  3. Gestion de brouillons et d'annexes (contact, recherche, etc.).

  4. Gestion de l'architecture section/rubrique/article et journal/news.

  5. Transformation d'une syntaxe wiki en code xhtml.

  6. Gestion des erreurs.

  7. Possibilité d'éditer le site « à la main », sans avoir besoin d'interface graphique ou de langage de script.

Ce que j'espérais développer lorsque je suis passé d'un site web statique à un site dynamique, c'était quelque chose du genre : j'écris mon texte dans un fichier xml (article ou news), je place le dit fichier sur le serveur et, hop, les scripts s'occupent du reste. Malheureusement, le système auquel je suis parvenu nécessitait l'édition de 2 autres fichiers avec une partie des données de l'article ou de la news, pour pouvoir afficher les ressources d'une rubrique particulière par exemple ; et à chaque fois que le document était modifié, rebelote. Donc, pour ne pas faire ce boulot de mise à jour « à la main », j'avais besoin de scripts d'administration PHP, comme dans n'importe quel CMS.

En restructurant le code, j'ai bien évidemment nettoyé les différentes fonctions PHP. J'ai aussi adopté un nouveau système de publication qui permet de s'affranchir de l'indexation de certaines informations notamment en plaçant ces informations dans le nom des fichiers. Un avantage collatéral de ce changement, c'est une plus grande lisibilité : auparavant, il était difficile au bout d'un certain temps de se rappeler ce que contenait le fichier « 34.xml ». Une contrepartie non négligeable se traduit cependant par certaines lenteurs, dans la recherche de mot-clés par exemple. Il se peut donc que je modifie encore tout cela même si le système de cache devrait améliorer les temps d'affichage.

Il fallait aussi remanier deux dualités : les couples articles / news et date /catégories. Alors qu'un article était accessible via une url du type /section/rubrique/titre, les news avaient une url de la forme /journal/titre alors qu'elles pouvaient aussi être classées par catégories. De fait, je n'étais pas complètement satisfait. Donner à la fois aux articles et aux news une URL du genre /section/rubrique/titre n'était pas non plus une solution, d'où la nouvelle architecture du site :

  • URL pour un article : /art/id-titre/
  • URL pour une news : /news/id-titre/
  • URL pour les catégories : /cat/section/rubrique/

l'URL des ressources aurait pu ne contenir que le titre mais certaines news ont le même libellé, d'où la nécessité d'un identifiant numérique (id). J'aurai pu aussi opter pour un système d'URL type blog avec une hiérarchisation en /année/mois/titre mais quand j'explore un site, c'est avant tout la classification par sujet qui m'intéresse ou m'est utile. Reste que les articles et les news peuvent toujours être triés par leur date de publication.

Normalement, les redirections HTTP via PHP que j'ai mises en place devrait rediriger l'internaute des anciennes URL vers les nouvelles. Il y aura cependant sans doute quelques bugs de-ci de-là, comme des liens qui mènent vers une mauvaise ressource ou nulle part, mais tout devrait rentrer dans l'ordre d'ici à la fin du mois.

Enfin, une fois n'est pas coutume, j'ai effectué quelques bidouilles supplémentaires sur les CSS ou le javascript ; elles seront détaillées plus tard, une fois d'ailleurs que certains bugs d'affichage seront corrigés.