Cette partie peut-être considérée comme un bug ![]()
La fonction devrait faire un return de son message d'erreur, pour qu'il soit
repris par la fonction appelante dans le $flux['data'].
Aucun écho dans les pipelines. Tout doit passer par un "return $flux" et une
modification de $flux['data'] ou directement $flux (ça, ça dépend de quel
pipeline il s'agit).
C'est le principe même du pipeline, Spip appelle le plugin en lui donnant le
flux actuel afin que ce dernier puisse ajouter ou remplacer du contenu. Spip
récupère ce flux modifié et continue son traitement puis affiche la page (le
flux final une fois tous les traitements faits, et les différents pipelines
appelés).
Du coup, si tu fais un echo, Spip ne récupère pas ton contenu (car tu l'envoies
directement au navigateur en faisant le echo). D'où des problèmes d'affichage
probables dans le cas suivant:
Spip a une variable $flux ; il appelle ton plugin et tu fais un echo (contenu
envoyé au navigateur) ; Spip continue son traitement et fait à la fin un "echo
$flux;" => ton contenu se retrouve avant le contenu de la page.
C'est assez technique, mais j'espère avoir été relativement clair.
A ton écoute pour tout complément d'info.
Cédric D.
-----Message d'origine-----
De : Olivier Gautier [mailto:olivier.gautier@ac-rouen.fr]
Envoyé : jeudi 5 juillet 2007 13:42
À : cdespres69@free.fr
Cc : spip-zone@rezo.net
Objet : Re: [SPIP Zone] Pipeline AfficheGauche
cdespres69@free.fr a écrit :
Le plugin est dispo à cette adresse :
Connexion · GitLab
Bonjour,
Je viens de regarder et je vois ça dans la fonction du pipeline
affiche_gauche :
if ($res == '') create_GestionMetasTable($GestionMetasTable);
puis plusieurs echo plus bas dans cette fonction create_GestionMetasTable.
J'avoue alors que je n'y comprend plus rien : on peut mettre du echo
dans une fonction si on l'inclu dans le flux['data'] ou non ?
Cordialement, Olivier Gautier.
A ton écoute pour toute information supplémentaire.
Cédric D.
Bonjour,
cdespres69@free.fr a écrit :
Bonjour,
Si tu veux un exemple simple d'utilisation du pipeline affiche_gauche,
il y a le plugin "_stable_\gestion_metas"Peux-tu me dire où il se trouve ? Je ne l'ai pas vu sur spip-zone, ni sur
spip-contrib.Merci. Olivier Gautier.
Je te confirme qu'il ne faut pas faire de echo dans ta fonction, mais
bien un "return $flux" (dont tu modifies le "$flux['data']").Si tu fais un echo, le code ne va pas s'afficher au bon endroit (en
fin de colonne gauche), mais tout au début de la page, d'où des
problèmes de design et peut-être même de fonctionnement.A ton écoute pour tout complément d'information.
Cédric D.
-----Message d'origine-----
De : spip-zone-bounces@rezo.net [mailto:spip-zone-bounces@rezo.net] De
la part de Olivier Gautier Envoyé : mardi 3 juillet 2007 20:00 À :
spip-zone@rezo.net Objet : Re: [SPIP Zone] Pipeline AfficheGauchecedric.morin@yterium.com a écrit :
Olivier Gautier a écrit :
Olivier Gautier a écrit :
Bonjour,
dans un fichier pipeline, j'ai écrit ça :
function evafiche_AfficheGauche($flux) {
$exec = $flux['args']['exec'];
if ($exec=='articles_edit') {
include_spip('inc/evafiche_GestionArticle');
evafiche_blocgauche_article();
}
}Après plusieurs tests, il s'avère que le test if
($exec=='articles_edit') ne soit pas correctement interprété alors
qu'il fonctionne parfaitement pour un autre plugin que j'ai déjà créé.
Quelques peut-il me dire ce qui ne va pas ?Je me répond à moi-même : il semble qu'il faille écrire un return
$flux; en fin de fonction.
Quelqu'un peut-il confirmer ?et surtout il ne faut pas faire d'echo mais un $flux['data'] .=
mafonctionquiretournecequelleveutafficher();
return $flux;Merci Cédric pour ta réponse... qui va me donner beaucoup de travail...
car j'ai déjà créé quelques plugin pleins de echo par ci par là.
Ces plugins fonctionnent convenablement et ne semblent pas
destabiliser l'espace privé pour l'instant mais ça risque de changer
avec les futures versions de SPIP, non ?Encore merci
Cedric