Hello,

Un petit sujet sur l'API objet que je me permets de remonter car je ne sais
pas si c'est l'usage prévu ou pas.

J'ai un objet arborescent qui n'est pas une rubrique mais donc qui possède
un id_parent pour structure sa hiérarchie.
Pour créer l'objet deux solutions :
- formulaire classique, formulaire_editer_objet_traiter, qui appelle
l'action editer_objet, qui elle-même appelle objet_insérer()
- ou on appelle objet_insérer() en passant le $set.
Dans les deux cas, si je veux mettre à jour id_parent il faut passer par le
pipeline pre_insertion et on récupère l'id_parent soit avec _request() soit
dans le pipeline ['args']['id_parent']

Pour modifier l'objet et en particulier son id_parent là ça se complique :
- via le formulaire on arrive à objet_modifier qui ne fait rien car
id_parent se fait par instituer et donc passe la main à objet_instituer
avec un $c qui contient bien la saisie du nouvel id_parent.
Or dans objet_instituer l'id_parent n'est considéré que si je suis en
présence d'un objet rubrique. Qu'à cela ne tienne il reste le pipeline
pre_edition et la récupération de l'id_parent par le _request() qui permet
de forcer la modification
- mais alors si j'appelle objet_modifier() ou objet_instituer() pour
modifier directement l'id_parent, cela ne peut pas marcher car l'id_parent
n'est jamais passé à aucun pipeline comme cela est fait dans l'insertion.

En conclusion, on ne peut pas modifier l'id_parent autrement que via un
formulaire. Est-ce voulu ? Est-ce que mon raisonnement est incorrect ?

A vous lire.

++
Eric
_______________________________________________
liste: https://listes.rezo.net/mailman/listinfo/spip-dev
doc: https://www.spip.net/
dev: https://core.spip.net/
irc://irc.freenode.net/spip

Répondre à