[spip-dev] nouveaux calendriers, début d'API

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

Pour moi c'est magnifique
- au niveau "théorique" car c'est une généralisation des squelettes et
une séparation des fonctions php/html/Mysql
- au niveau pratique, car j'ai nettement besoin d'un calendrier plus
"css" et donc de pouvoir l'intégrer dans les squelettes.

Par contre, je n'ai pas bien compris comment cela allait aider pour
générer des fomulaires… j'ai du louper un bout de la contrib.

Merci pour tout ce travail absolument inestimable…

Michel

Attention, la partie formulaire (tablextra) de la contrib
http://www.spip-contrib.net/ecrire/articles.php3?id_article=573
n'est pas à l'ordre du jour pour le CVS.
Si ta question et là-dessus, merci de lire et ecrire dans l'article en question.

Si la question est sur l'accès aux fonctions à partir des squelettes, voici un exemple
(à partir duquel on peut naviguer):

https://www.infop6.jussieu.fr/evaluation/spip/rubrique.php3?id_rubrique=24&echelle=70&type=jour&jour=20&mois=02&annee=2004#Calendriers

(attention, c'est une version déjà moins riche que celle du CVS).

esj