Non prise en compte des vancées de balise_img et des SVG dans les icones de fieldset
En fait, depuis que les SVG sont utilisés dans SPIP en coordination avec la fonction balise_img
, les saisies PHP de certains plugins dans ieconfig présentent en fieldset des SVG non réduits.
En fait cela est du à l'inclusion fieldset_legend
dont le code ne tire pas parti de balise_img
et induit d'ailleurs aussi une incohérence de traitement entre des images incluses dans un dossier images/
et des images incluses ailleurs comme à la racine d'un plugin, par exemple.
Or, pour ieconfig, ce fieldset est souvent utilisé pour séparer les données de plugin, donc affiche souvent le logo qui est maintenant plutôt positionné à la racine.
Le code actuel est:
[(#ENV{icone}|oui)
[(#REM) en SPIP 3 on cherche avant tout dans le chemin des images
]#SET{icone,''}[(#SPIP_VERSION|version_compare{2.9, >}|oui)#SET{icone,#CHEMIN_IMAGE{#ENV{icone}}]
[<img src="(#GET{icone}|sinon{#CHEMIN{#ENV{icone}}}
|image_reduire{#ENV{taille_icone}|sinon{16}}
|extraire_attribut{src})" alt="#ENV*{label}" /> ]
]
<span>#ENV*{label}</span>
Avec ce code, il n'est pas possible d'utiliser le logo à la racine nommé prefixe.svg. Il est nécessaire de le dupliquer dans prive/themes/spip/images/ et de le renommer prefixe-xx.svg pour afficher un icone réduit.
Je propose de modifier ce code par celui-là qui lui permet d'utiliser les logos à la racine et reste compatible bien entendu avec n'importe quel autre icone dans un dossier de thème.
[(#ENV{icone}|oui)
[(#REM) en SPIP 3 on cherche avant tout dans le chemin des images
]#SET{icone,''}[(#SPIP_VERSION|version_compare{2.9, >}|oui)#SET{icone,#CHEMIN_IMAGE{#ENV{icone}}]
[(#GET{icone}
|sinon{#CHEMIN{#ENV{icone}}}
|balise_img{#ENV*{label}, #ENV{taille_icone}|sinon{16}})]
]<span>#ENV*{label}</span>
Je fais une PR en attendant vos retours. J'imagine que cette logique pourrait surement s'appliquer à bien d'autres plugins ou morceaux de code.