Beaucoup de plugins vont vouloir importer ou modifier du CSS ou du
javascript dans le <head></head> des pages HTML du site.
Pour l'instant il n'existe aucune méthode pour faire cela, à part éditer
tous les squelettes.
Une solution serait d'avoir une ou des balises spécialisées.
Comme j'ai un peu de mal à voir ce qui serait le mieux parmi plusieurs
possibilités, j'ai pris quelques notes :
- #PLUGINS_HEAD ? On y met tout en vrac et chaque plugin se débrouille à
coups de preg_match pour savoir où il doit travailler (??)
- #SPIP_CSS et #SPIP_JS (ou #SPIP_JAVASCRIPT, peut-être plus compréhensible
à priori ?)
valeurs par défaut :
- #SPIP_CSS pourrait être, par défaut, soit vide soit ce qui actuellement
vaut [(#CHEMIN{spip_style.css}|direction_css)]
- #SPIP_JS pourrait être, par défaut, soit vide, soit charger un truc comme
ahah.js, ce qui permettrait aux formulaires SPIP de fonctionner "sur place"
(comme dans l'ébauche de formulaire "envoyer à un ami" que j'ai mis sur SPIP
Zone).
Enfin, comment mettre en place ces balises :
- Pour le CSS faut-il retourner une somme de tags HTML de la forme <link
rel="stylesheet".... />, au risque de faire charger une foule de micro-css
pour chaque plugin ? Ou au contraire faire un grand pipeline avec le contenu
de spip_style.css, auquel chaque plugin ajoute sa déclaration, et qui à la
fin est transformée par direction_css et enregistré dans IMG/cache-css/ ?
- Pour le javascript deux options aussi : soit on passe le HTML <link etc>
et chacun ajoute son link, soit on passe la liste (array) des fichiers .js
requis
la difficulté ici est que si trois plugins ont besoin de prototype.js il
vaut mieux ne le charger qu'une fois -- mais ça peut se faire avec un
preg_match qui teste la présence du script et sinon l'ajoute ?
Après avoir tapé ces notes, a priori ma préférence irait à #SPIP_CSS +
#SPIP_JS ;
- #SPIP_CSS retournerait un seul <link stylesheet> vers une unique feuille
de style calculée comme la somme de tous les styles demandés par les
plugins; le pipeline transporterait des déclarations CSS, et finirait par un
truc de gestion de la "direction_css" (ce qui permettrait aussi aux plugins
de préciser "left" et que ça donne "right" en arabe).
- #SPIP_JS retournerait une série de <link js> ; le pipeline transporterait
le HTML correspondant (donc, pas le contenu, contrairement à #SPIP_CSS).
-- Fil