Home > Bug reports > Rectification page de doc sur ajout de fonction à un pipeline depuis (...)

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

Created on Saturday 3 November 2018 by 6ril

Assigned to:

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";
}

No comment

Bug report or comment only available for registered users.

Log in.