Filtre inserer_attribut avec valeur null => Erreur d’exécution de squelette
Je viens de tomber là dessus en PHP 8.1 avec SPIP 4.1, le code suivant :
[<a href="[(#LOGO_ARTICLE|extraire_attribut{src})]">(#LOGO_ARTICLE|image_reduire{680,680}
|inserer_attribut{data-photo,#LOGO_ARTICLE|extraire_attribut{src}}
|inserer_attribut{data-photo-h,#LOGO_ARTICLE|extraire_attribut{height}}
|inserer_attribut{data-photo-w,#LOGO_ARTICLE|extraire_attribut{width}}
|inserer_attribut{class,spip_logo}
|inserer_attribut{itemprop,image})</a>]
Génère une erreur de squelette si aucun logo n'est présent cf :
Erreur d’exécution xxx.html | File […]/ecrire/inc/filtres.php Line 2109 : inserer_attribut(): Argument #3 ($val) must be of type string, null given
C'est un peu problématique amha car cela implique de modifier tous les appels de ce type afin de tester ce que renvoie la balise #LOGO_
et lui faire renvoyer une string vide au lieu de null s'il n'y a pas de logo.
De ce que je vois, on a patché le filtre pour qu'il ne plante pas si la balise à laquelle on l'applique renvoie null 16912848 mais pas dans le cas où on passe une valeur null en valeur d'attribut à appliquer.