le flux data me retourne ça:
[data] => Array
(
[id_rubrique] => 19
[id_secteur] => 6
[statut] => prepa
[date] => 2021-03-27 11:01:33
[lang] => fr
[langue_choisie] => non
)
Comment je chope l'id objet ?
le code:
$obj = objet_type($flux['args']['table']);
if (
//verif qu'on est sur un objet article:
in_array($obj, array('article'))
//et qu'on est en création:
&& _request(("id_$obj")) == 'oui') {
spip_log($flux,'second_fichier');
Un spip_log sur le flux args me retourne ça sur ce pipeline, en 3.2.9,
c'est normal ???
[args] => Array
(
[table] => spip_articles
)
Où sont passés les autres params de args ?
En tout cas dans le code de spip, cela y est. Tu a sans doute un plugin qui fout la merde en amont.
Merci pour ta réponse, je suis en train d'essayer de debugger. Je n'ai aucun plugin actif mais quelques fonctions et options persos.
Le scénario, c'est écrire un nouvel article et le valider, c'est tout.
J'essaye de retracer mais déjà je ne vois pas où est décrite la function du pipeline, si déjà quelqu'un pouvait me dire SVP ?
Je vois que dans ce scénario, le flux traverse charger_pipelines dans
function execute_pipeline_post_edition ensuite, et qu'à l'entrée et sortie de cette fonction tout est bon, toutes les infos sont bien présentes.
Mais avant d'arriver à ce point d'entrée le flux traverse le pipeline post_edition, à partir de je ne sais où, et là les infos args sont manquantes en sortie, je n'ai que [table] => spip_articles.
Peut-être que le passage en 3.2.11 me réglerait le souci, mais je voulais comprendre avant d'essayer.
Un spip_log sur le flux args me retourne ça sur ce pipeline, en 3.2.9,
c'est normal ???
[args] => Array
(
[table] => spip_articles
)
Où sont passés les autres params de args ?
En tout cas dans le code de spip, cela y est. Tu a sans doute un plugin qui fout la merde en amont.
Merci pour ta réponse, je suis en train d'essayer de debugger. Je n'ai aucun plugin actif mais quelques fonctions et options persos.
Le scénario, c'est écrire un nouvel article et le valider, c'est tout.
J'essaye de retracer mais déjà je ne vois pas où est décrite la function du pipeline, si déjà quelqu'un pouvait me dire SVP ?
Il n'y a pas de fonction du pipleine à proprement parler, Il est juste des fonctions par laquelle passe le pipeline, si tu les déclare (via pipeline). Et des endroits où ces fonctions sont appelés en séries (via pipeline('post_edition').
J'essaye de retracer mais déjà je ne vois pas où est décrite la function du pipeline, si déjà quelqu'un pouvait me dire SVP ?
Il n'y a pas de fonction du pipleine à proprement parler, Il est juste des fonctions par laquelle passe le pipeline, si tu les déclare (via pipeline). Et des endroits où ces fonctions sont appelés en séries (via pipeline('post_edition').
Ok merci Maieul, je suis parti sur post_insertion qui répondra d'avantage à mon besoin. Je crois est post-edition est appelé juste après une création d'article, par je ne sais quel point d'entrée car je ne l'ai pas trouvé, et le flux args sortant ne fournit que [table] => spip_articles, pas d'id objet (si quelqu'un voulait tester pour confirmer/infirmer).
Mais pas grave, je ferai avec post_insertion en allant chercher les infos qui me manquent sur ce flux, le principal étant que j'ai bien l'id objet et le type d'objet, ce qui est le cas.
J'essaye de retracer mais déjà je ne vois pas où est décrite la function du pipeline, si déjà quelqu'un pouvait me dire SVP ?
Il n'y a pas de fonction du pipleine à proprement parler, Il est juste des fonctions par laquelle passe le pipeline, si tu les déclare (via pipeline). Et des endroits où ces fonctions sont appelés en séries (via pipeline('post_edition').
Ok merci Maieul, je suis parti sur post_insertion qui répondra d'avantage à mon besoin. Je crois est post-edition est appelé juste après une création d'article, par je ne sais quel point d'entrée car je ne l'ai pas trouvé, et le flux args sortant ne fournit que [table] => spip_articles, pas d'id objet (si quelqu'un voulait tester pour confirmer/infirmer).
Mais pas grave, je ferai avec post_insertion en allant chercher les infos qui me manquent sur ce flux, le principal étant que j'ai bien l'id objet et le type d'objet, ce qui est le cas.
bah tout depend de ce que je tu veux faire.
Mais je confirme que post-edition recoit bien à la bse l'idde l'objet.
Donc si tu là pas, c'est que tu a une merde ailleurs.
J'essaye de retracer mais déjà je ne vois pas où est décrite la function du pipeline, si déjà quelqu'un pouvait me dire SVP ?
Il n'y a pas de fonction du pipleine à proprement parler, Il est juste des fonctions par laquelle passe le pipeline, si tu les déclare (via pipeline). Et des endroits où ces fonctions sont appelés en séries (via pipeline('post_edition').
Ok merci Maieul, je suis parti sur post_insertion qui répondra d'avantage à mon besoin. Je crois est post-edition est appelé juste après une création d'article, par je ne sais quel point d'entrée car je ne l'ai pas trouvé, et le flux args sortant ne fournit que [table] => spip_articles, pas d'id objet (si quelqu'un voulait tester pour confirmer/infirmer).
Mais pas grave, je ferai avec post_insertion en allant chercher les infos qui me manquent sur ce flux, le principal étant que j'ai bien l'id objet et le type d'objet, ce qui est le cas.
bah tout depend de ce que je tu veux faire.
Mais je confirme que post-edition recoit bien à la bse l'idde l'objet.
Donc si tu là pas, c'est que tu a une merde ailleurs.
Serait-il possible connaître l'endroit/le moment où est appelé ce pipeline lors de la création d'un nouvel article STP ? Juste créer un article avec titre et texte bidon, puis valider (l'article résultant étant en statut prepa suite à cette simple manip). Je voudrais connaître le point d'entrée du pipeline dans cette manip basique afin de vérifier.
Le 28/03/2021 à 13:31, 6ril a écrit :
> Serait-il possible connaître l'endroit/le moment où est appelé ce pipeline lors de la création d'un nouvel article ?
> Je voudrais connaître le point d'entrée du pipeline dans cette manip basique afin de vérifier.
(De même que tout le monde peut le faire)
tu trouveras ce point d'appel en interrogeant le code source de SPIP.
C'est appelé dans objet_modifier_champs() dans inc/modifier, qui est appelé pour tout objet_modifier() :
Et comme tu peux le voir, ya un paquet d'infos.
Je ne vois pas comment tu peux perdre ces infos si t'as effectivement aucun plugin du tout. T'es sûr que tu testes sur un SPIP par défaut, sans autre modification ? C'est la première chose à faire.
Je ne vois pas comment tu peux perdre ces infos si t'as effectivement aucun plugin du tout. T'es sûr que tu testes sur un SPIP par défaut, sans autre modification ? C'est la première chose à faire.
Merci beaucoup, je vais regarder ça à tête reposée, je reviendrai ensuite.
Serait-il possible connaître l'endroit/le moment où est appelé ce pipeline lors de la création d'un nouvel article ?
Je voudrais connaître le point d'entrée du pipeline dans cette manipbasique afin de vérifier.
(De même que tout le monde peut le faire)
tu trouveras ce point d'appel en interrogeant le code source de SPIP.
Ou bien en regardant la pile PHP à l'intérieur de ta propre implémentation de ce pipeline
par exemple au moyen de PHP: debug_print_backtrace - Manual
Je n'ai aucune habitude de travailler véritablement avec php, il faudrait que je me familiarise avec un ide adapté et les outils de debugs, ça me serait effectivement profitable.
Je ne vois pas comment tu peux perdre ces infos si t'as effectivement aucun plugin du tout. T'es sûr que tu testes sur un SPIP par défaut, sans autre modification ? C'est la première chose à faire.
id bien présent en entrée et sortie du pipeline, plus aucun souci, sans que je ne comprenne pourquoi ^^ ....
Je me demande si ce n'est pas une histoire de vidage de cache entre deux tests de debug spip_log, je ne pige pas du tout. Bon, tout fonctionne correctement à présent, c'est là l'essentiel.
Merci beaucoup à vous trois, désolé pour le dérangement, je n'aurai pas de PR à soumettre sur le sujet