le hack zoom:1 est un remede pire que le mal, il disparait
le bouton submit de ajax_action_post avait ete unifie en simple input, perdant son divou span englobant selon les cas, mais ca ne permet pas de traiter tous les problemes.
Retour d'un span englobant l'input submit, avec par consequence un parametre de plus dans ajax_action_post.
"
il n'est de toute facon pas necessaire sur les vignettes qui ne sont jamais distantes
Pas de copie locale a faire pour les images distantes, c'est gere par le filtre image_reduire
"
C'etait peut etre un bug a l'origine, mais comme c'est comme ca depuis la nuit des temps, c'est une feature utilisée qu'on ne peut pas casser comme ca :
un espace dans le descriptif = une intro blanche
<img src="[(#FICHIER|image_reduire{110}|extraire_attribut{src})]" id="" />
[(#FICHIER|image_reduire{110}|image_alpha{50})]
- image_graver doit etre inseres non pas a la fin de la serie des filtres, mais a la fin de la serie des filtres images (donc entre image_reduire et extraire_attribut) car apres on ne dispose plus forcement du nom du fichier
- lors du deuxieme image_reduire sur le meme fichier, il ne faut pas rebasculer comme temporaire un fichier que l'on vient de graver
- dans les filtres images, il faut accepter des noms de fichiers locaux situes dans _DIR_VAR
Par ailleurs, dans la foulee des corrections, image_graver doit reconstituer l'image si elle est absente.
Cas test :
[(#FICHIER|image_reduire{110}|image_alpha{50})]
[(#FICHIER|image_reduire{110})]
Ce mécanisme fonctionne sur toutes les utilisations de filtres image, y compris sur ces champs texte. Il est appliqué automatiquement par le SPIP, sans modification des squelettes.
Le principe :
- lorsqu'une image toto.png est cree par un filtre, un fichier de controle toto.png.src lui est associé. Ce fichier contient les infos necessaires a la recreation de l'image si necessaire (image source, fonction et arguments appelés)
Une image qui possede un fichier de controle est considérée comme temporaire et peut etre supprimée du process
Une image qui ne possede pas de fichier de controle est une image gravée, permnanente.
- lorsqu'une serie de filtre contient au moins un filtre image, le compilateur la termine par le filtre image_graver
- dans un enchainement de filtres, si une image intermediaire est absente mais son fichier de controle present, on ne fait rien tant qu'on a pas besoin de creer explicitement l'image cible.
Dans la plupart des cas, la serie de filtre se finit sur l'image cible qui a ete gravee par le filtre image_graver, et qui est la
Si par contre on a besoin de creer une nouvelle image sur la base d'une image intermediaire absente, on remonte la chaine des fichiers de controle pour recreer chaque image intermediaire a partir de l'image source originale.
Le filtre image_graver supprime le fichier de controle de l'image cible, et remonte la chaine des fichiers de controle pour supprimer les images temporaires (mais laisse les fichiers de controle permettant de les reconstruire).
Dans un double traitement du style
[(#TEXTE|image_reduire{520,0}|image_reduire{150}|image_rotation{90}|image_recadre{200,200,'center','red'}|image_aplatir{jpg})]
[(#TEXTE|image_reduire{520,0}|image_reduire{150}|image_rotation{-90}|image_recadre{200,200,'center','red'}|image_aplatir{jpg})]
La premiere serie de filtre conduit a la creation d'une image jpg et toutes les images intermediaires sont supprimees
Dans la deuxieme serie de filtre, les 2 premiers filtres image_reduire ne font rien car les fichiers de controle sont la. Au moment de calculer le image_rotation, on s'apercoit qu'il nous les faut. On reconstruit donc les 2 imags intermédiaires, et celle qui a manqué (la deuxieme) est gravée car on sait qu'elle est commune a plusieurs séries.
Le gravage automatique de l'image intermediaire evite un recalcul systématique pour cause de dates a chaque hit.
Une écriture optimisée serait bien entendu d'appliquer les filtres communs une seule fois et de stocker le resultat avec #SET
Encadrer les fonctions graphiques concernees par image_lire (charger l'image d'origine en memoire) et image_ecrire (traiter l'ensemble des fonctions concernees, ecrire le resultat et balancer le code HTML qui va bien).
C'est moins ergonomique que le bouton, mais ça a comme conséquence que ce script est applicable à n'importe quelle page Web, pas seulement celles créées par le site. Télécharger Spip 1.9.2, le validateur XML avec CMS intégré ;-).