lister_objets_lies() totalement pétée quand on demande un lien d'un objet sur lui-même
lister_objets_lies() utilise lister_objets_liens() qui renvoie parfaitement les bonnes listes quelques soient les cas
MAIS l'API de liens renvoie des résultats différents, suivant qu'il s'agisse de deux tables différentes, ou deux fois la même.
Si je cherche toutes les patates liées à la rubrique 1739 dans les patates_liens :
array (size=2)
0 =>
array (size=6)
'id_patate' => string '3' (length=1)
'id_objet' => string '1739' (length=4)
'objet' => string 'rubrique' (length=8)
'vu' => string 'non' (length=3)
'patate' => string '3' (length=1)
'rubrique' => string '1739' (length=4)
1 =>
array (size=6)
'id_patate' => string '5' (length=1)
'id_objet' => string '1739' (length=4)
'objet' => string 'rubrique' (length=8)
'vu' => string 'non' (length=3)
'patate' => string '5' (length=1)
'rubrique' => string '1739' (length=4)
Ça rajoute deux "objet1" => "id1" + "objet2" => "id2".
SAUF QUE quand c'est le même objet, ça peut pas mettre deux fois la même clé !
Donc si je cherche toutes les patates liées à la patate 8 dans les patates_liens :
array (size=2)
0 =>
array (size=6)
'id_patate' => string '3' (length=1)
'id_objet' => string '8' (length=4)
'objet' => string 'patate' (length=8)
'vu' => string 'non' (length=3)
'patate' => string '8' (length=1)
1 =>
array (size=6)
'id_patate' => string '5' (length=1)
'id_objet' => string '8' (length=4)
'objet' => string 'rubrique' (length=8)
'vu' => string 'non' (length=3)
'patate' => string '8' (length=1)
Dans le premier cas, on voit bien que l'info en supplément objet => id, pour les patates, ça correspond aux deux liens cherchés. Alors que dans le second cas… c'est toujours le contenu de départ sur lequel on cherche les liens !
OR la fonction lister_objets_lies() fait uniquement un array_column($res, $objet_source);
donc au final ça retourne X fois ce qu'on sait déjà, l'objet "où on se trouve" et sur qui on cherche des liens.
Ça sort [8, 8]
au lieu de [3, 5]
.
Cette fonction devrait tester
- si $objet_source == $objet_lien, ça doit prendre la colonne
id_table_objet($objet_source)
- sinon ça doit prendre la colonne
"id_objet"
- mais au final sans jamais besoin d'utiliser ce raccourci "objet"=>"id" tout court, qui est parfaitement trompeur puisque NON cohérent suivant les cas d'appels