Remplacer $GLOBALS['formats_logos'] dans SPIP 4.4.0

Comment je remplace

$GLOBALS['formats_logos'] = array('jpg');

par le pipeline ?

J’ai bien essayé de mettre quelque chose comme ceci dans mes_options, mais visiblement ça n’est pas pris en compte :

function liste_formats_logos ($args) {
	return array('jpg');
}
$GLOBALS['spip_pipeline']['image_extensions_logos'] .= "|liste_formats_logos";

Il faut modifier le contenu data du pipeline, c’est documenté ici en attendant que ça arrive sur programmer.spip UPGRADE_5.0.md · master · spip / spip · GitLab

J’avais fait ça aussi, mais mon problème est de pouvoir déclarer la fonction sans développer un plugin complet. Donc idéalement en ajoutant ça directement dans mes_options.php, pas dans un plugin complet.

Cette page porte sur la migration en SPIP5.
Le changement évoqué est déjà valable en SPIP 4 ?

Une doc est en cours Programmer avec SPIP 4

À valider ou corriger direct dans le texte.

[EDIT] Programmer avec SPIP 4 qui a été proposé concurremment est plus complet. Je ferme le premier.

Trouvé…

La doc pour déclarer un pipeline dans mes_options.php est ici:

La partie qui m’avait échappé était:

À noter que SPIP utilise un cache des pipelines utilisés et que toute nouvelle déclaration nécessite de recalculer ce cache. Cela se fait en visitant la page « Gestion des plugins » dans l’espace privé (?exec=admin_plugin ).

Du coup, dans mes_options.php, j’ai ajouté:



function liste_formats_logos ($args) {
	$args["data"] = array('jpg');
	return $args;
}
$GLOBALS['spip_pipeline']['image_extensions_logos'] .= "|liste_formats_logos";

puis il faut visiter la page des plugins dans l’interface privée, et du coup le pipeline est bien pris en compte.

il est recommandé de d’utiliser $args['data'] plutot que $args["data"]. Eviter d’utiliser les doubles quotes quand pas nécessaire (ca économise un peu d’energie)