Bonjour à tous,
Je travaille actuellement au portage sur la CVS de la contribution
http://www.spip-contrib.net/ecrire/articles.php3?id_article=573
qui étend les fonctionnalités de Spip par une réécriture de son compilateur de squelettes et de son système de cache.
Cette refonte est l'occasion de rationaliser un peu l'arborescence des sources,
et je commence par une intervention marginale sur le CVS pour retour éventuel.
Cette intervention consiste en la réécriture des calendriers internes de Spip,
essentiellement afin de permettre l'accès de leurs fonctions à partir de l'espace public,
autrement dit de les appeler à partir de squelettes. On peut ainsi obtenir un effet comme
http://www.gasteroprod.com/2003/12/09/meme_agenda_que_gastero_prod_avec_spip_320.html
avec cette différence que les calendriers utilisent à fond les CSS.
En particulier j'ai rajouté le zoom vertical dilatant la grille des heures jusqu'à la seconde au besoin.
Le code a par ailleurs été validé XHTML1.1 (sauf le bandeau supérieur sur lequel ARNO* travaille toujours).
L'organisation de ce nouveau source vise donc sa réutilisation (par des squelettes ou autres),
sa maintenance et son évolution en adoptant les principes suivants:
- un script (ici calendrier.php3) ne définit aucune fonction et ne comporte aucun code HTML ni SQL;
- il incluent 3 fichiers homonymes situés dans 3 sous-répertoires: HTML4,MySQL3, PHP4;
- le premier ne contient que des fonctions, toutes ayant pour résultat une chaine à destination du port HTTP;
- le deuxième ne contient que des fonctions, toutes ayant pour résultat un tableau construit par des requêtes SQL;
- le troisième ne contient que des fonctions, d'intéret divers mais dépourvues de références aux deux autres langages;
- le nom de toutes ces fonctions commence par le nom du script les appelant, précédé de "http_", "sql_" ou rien respectivement.
Ces conventions de nommage facilitent la recherche de code effectuant un calcul précis (pour aider à la mise au point
et eviter d'écrire une fonction déjà écrite) et visent à remplacer facilement un standard par un autre
(par exemple MySQL par PostGres, HTML4 par SVG etc) avec cohabitation éventuelle (en écrivant des fonctions de même nom
placé dans un autre sous-répertoire chargé selon les besoins).
En d'autres termes, les fonctions des 3 sous-répertoires constitue l'Application Programmer Interface du script considéré.
Pour le cas des calendriers, cette API est encore mal définie et peu documentée, mais c'est une étape.
esj