Re: API Objet et id_parent

RastaPopoulos <[email protected]>
Newsgroups gmane.comp.web.spip.devel
Message-ID <[email protected]>
Le 31/03/2020 à 14:41, Eric Lupinacci a écrit :
> Je ne suis pas du tout d'accord.
> On ne pas considérer qu'un lien de parenté qui définit une arborescence est un cas d'usage d'un lien d'appartenance qu'on souhaite assimiler à une parenté sur certaines actions.

Je n'ai pas vraiment compris cette phrase. :p

Mais arborescence, hiérarchie, appartenance, parenté, tout ça ce sont des *synonymes*. La différence est tellement infime et subjective, que ce serait beaucoup trop confus pour les utilisateurs finaux de leur dire "l'un veut dire ça mais l'autre c'est plutôt ça", alors que dans le langage courant, suivant les contextes, ça veut à peu près dire la même chose. Le fait d'avoir un parent principal crée une hiérarchie, une arbo.

> Mais un lien d'appartenance ne crée pas de hiérarchie (ou très plate, donc sans intérêt).

Si.

Qu'est-ce que t'en sais que l'objet enfant n'est pas lui-même possiblement parent d'autres enfants ?

Rien qu'avec les objets courants avant même "declarerparent" on a : un événement est dans un article qui est dans une rubrique qui peut être dans une rubrique. TOUT ça est une hiérarchie.

> Et donc si mon objet hiérarchique, comme une rubrique, appartient à un objet X, je fais comment pour distinguer le père et le conteneur (au sens de l'appartenance) ?

Ça n'existe juste pas.
Toute l'API "parent" ne travaille que sur la parenté *directe* ou *principal* = un contenu ne peut avoir qu'un seul parent principal.

En revanche il peut y avoir plusieurs *méthodes* de recherche du parent pour un même objet (objet-id_objet ET id_parent). Mais pour tel contenu précis, lui n'a qu'un parent principal, celui prioritairement trouvé. Et c'est ce que fait l'API parent, on peut déclarer plusieurs méthodes à la fois, c'est le cas pour les forums.
https://git.spip.net/spip-contrib-extensions/declarerparent/src/branch/master/declarerparent_pipelines.php#L28

Pour une rubrique, c'est une rubrique (ou rien et donc secteur).
Pour un article c'est une rubrique.
Pour un événement c'est un article.
https://git.spip.net/spip-contrib-extensions/agenda/src/branch/master/base/agenda_evenements.php#L146
Pour un forum c'est SOIT n'importe quel objet SOIT un autre forum (et ça ne PEUT PAS être les deux à la fois, il n'y a qu'un seul parent direct).
Pareil pour l'objet "chapitre" du plugin éponyme qui a une structure similaire aux forums (un chapitre est soit à la racine d'un autre objet, un article, un devis, que sais-je, soit un sous-chapitre d'un chapitre, mais ça ne peut pas être les deux, il n'y a qu'un parent principal).
https://git.spip.net/spip-contrib-extensions/chapitres/src/branch/master/base/chapitres.php#L99

> En tout cas, je ne pense pas que ce soit aussi limpide que tu le prétends.
Moi si. :p

-- 
RastaPopoulos
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.