Accueil > Tickets > Rectification page de doc sur ajout de fonction à un pipeline depuis mes_options

Ticket #341 - Rectification page de doc sur ajout de fonction à un pipeline depuis mes_options

Créé le samedi 3 novembre 2018 par 6ril

Assigné à :

Bonjour,
Suite à déconvenue personnelle, lorsque j’ai mis un
error_reporting(E_ALL) ;
dans mes_options, j’aurai une proposition de rectification (de précision) sur la page de la doc qui explique la possibilité d’extension de pipeline existant, depuis le fichier mes_options.
Effectivement, depuis mes_options, un pipeline n’est pas forcément chargé lors du contexte de l’appel, ce qui entraine alors un erreur php de niveau notice (undefined index).
Pour illustrer mon propos, si on reprend ce qui est proposé en exemple par la doc, c’est à dire :

// Exemple d'ajout dans le pipeline "insert_head" :
$GLOBALS['spip_pipeline']['insert_head'] .= "|nom_de_la_fonction"; 
function nom_de_la_fonction($flux) {
return $flux .= "Ce texte sera ajoute";
}

Si la page à partir de laquelle le fichier mes_options est appelé n’utilise pas le pipeline, l’index du pipeline n’existe pas dans le tableau $GLOBALS[’spip_pipeline’] et ça génère une erreur (de niveau NOTICE seulement) lors de la concaténation qui ajoute la fonction au pipeline (.= "|nom_de_la_fonction") ;
Il suffirait, pour éviter cette erreur, d’initialiser d’abord à chaine vide l’index, s’il n’existe pas dans le contexte (vérifier avec isset), ce qui couvrirait tout contexte possible :

//initialiser index "insert_head" à string vide si besoin:
if ( !isset($GLOBALS['spip_pipeline']['insert_head']) )$GLOBALS['spip_pipeline']['insert_head'] = "";
// Exemple d'ajout dans le pipeline "insert_head" :
$GLOBALS['spip_pipeline']['insert_head'] .= "|nom_de_la_fonction";
function nom_de_la_fonction($flux) {
    return $flux .= "Ce texte sera ajoute";
}

Aucun commentaire

Seules les personnes identifiées peuvent écrire des tickets ou commentaires.

Identifiez vous.