Re: API Objet et id_parent
Vincent Callies <[email protected]>
| Newsgroups | gmane.comp.web.spip.devel |
|---|---|
| Message-ID | <CADbHwBBJyoPRxwFf9hjuzqQie=mi+LrxqgoLLRqnEwXM4-p8jQ@mail.gmail.com> |
J’ai eu le même problème (en développant un plugin sur des organigrammes) et j’ai fini par renoncer à la dénomination id_parent. Ce serait bien - comme l’indique Éric - de rendre id_parent plus universel qu’un usage aux rubriques d’autant plus que SPIP c’est la force des objets éditoriaux (et donc de leur hiérarchie). Le mar. 31 mars 2020 à 09:59, Eric Lupinacci <[email protected]> a écrit : > 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