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.
