Dans le plugin mots-clés, il manque un id_mot dans le tableau retourné par
le CVT : Connexion · GitLab.
Les autres objets retournent bien cet id_objet, mais pas ce plugin. Du
coup, le plugin SEO est planté sur les mots-clés.
À la lecture du code je ne vois aucun manque. L'id_mot est bien ajouté à l'url de retour à condition que :
- un paramètre retour soit bien passé au formulaire, cf Connexion · GitLab
- le paramètre retour ne soit pas un retour ajax, cf Connexion · GitLab
Bref, le principe est le même que pour les formulaires editer du core, cf :
Hmm, mais étant donné que le formulaire d’édition de mot ne se fait qu’en Ajax, ceci expliquerait qu’id_mot n’est jamais renvoyé ? Car en tout cas, dans le pipeline formulaire_traiter utilisé par le plugin SEO, il n’arrive jamais à récupérer id_mot dans $flux[‘data’].
Il y a une raison pour ne pas renvoyer systématiquement id_mot ?
sur ce coup là Yohann a raison, il est de bon usage que le tableau en retour de traiter contienne l'id de l'objet qui a été créé ou modifié.
C'est fait par defaut pour la plupart des formulaires cvt editer_xx par https://core.spip.net/projects/spip/repository/entry/spip/ecrire/inc/editer.php#L82
mais comme le formulaire editer_mot ne passe pas par là (pour des raisons que j'ai oublié mais qui doivent tenir à de l'histoire plus ou moins justifiée), du coup il ne suit pas cette convention.
Il faut avouer que c'est moyennement documentée et affirmé comme convention, c'est plutôt un usage qui facilite les choses pour les pipelines.
Ça me parait donc légitime que le formulaire editer_mot fasse de même.