[spip-dev] Declaration de table de jointure

Hello tous,

je me suis demander un truc avec les table de jointure, Avant je faisait :
$tables_interfaces['tables_jointures']['table_principale'] = 'table_jointure'
mais ca peux pas marcher si vos tables principales sont liées à
plusieurs autres tables principales...
ca donnerais cela :
$tables_interfaces['tables_jointures']['table_principale'] =
'table_jointure_blabla'
$tables_interfaces['tables_jointures']['table_principale'] =
'table_jointure_test'
Ce qui n'ajouterais qu'une seul table de jointure vu que je
n'incrémente pas le tableau, mais le remplace par un string ...

Plus terrible encore, je suis retourné dans la doc que j'avais écrite
pour voir comment j'ai expliquer cela et je me rend compte que j'ai
mis .. les deux !!!

Donc ma question est:
Pour déclarer des tables de jointure, la bonne facon est de faire :
$tables_interfaces['tables_jointures']['table_principale'][] =
'table_jointure_blabla';
$tables_interfaces['tables_jointures']['table_principale'][] =
'table_jointure_test';

Vous confirmez ?

2009/3/18 Denooz Sébastien <crovvfoot@gmail.com>

Donc ma question est:
Pour déclarer des tables de jointure, la bonne facon est de faire :
$tables_interfaces[‹ tables_jointures ›][‹ table_principale ›] =
‹ table_jointure_blabla ›;
$tables_interfaces[‹ tables_jointures ›][‹ table_principale ›] =
‹ table_jointure_test ›;

Il me semble qu’on passe maintenant par les tables auxiliaires :
C’est documenté ici,
http://programmer.spip.org/declarer_tables_auxiliaires

.Gilles

Il me semble qu’on passe maintenant par les tables auxiliaires :
C’est documenté ici,
http://programmer.spip.org/declarer_tables_auxiliaires

Oui mais il faut ensuite déclarer ces tables auxiliaires en tant que
« jointure » des principales en attaquant le pipeline
declarer_tables_interfaces
non ?

En fait en SPIP2.0 c’est devenu beaucoup plus simple :

La page de programmer.spip.org fait mention du plugin spip-bisou (« poke » sur d’autres sites)
Le changeset suivant introduit une jointure : http://zone.rezo.net/trac/spip-zone/changeset/25868

on peut voir qu’en 1.9, il fallait utiliser le pipeline « declarer_tables_auxiliaires », maintenant c’est directement dans « declarer_tables_principales ».
Avant on était obligé de faire une déclaration explicite la table dans le tableau $tables_principales, avec la clef primaire double. Et d’utiliser declarer_tables_interface pour expliciter les correspondances des champs (dans $interface[‹ tables_jointures ›] et $interface[‹ exceptions_des_tables ›]

Maintenant, SPIP2.0 détecte automatiquement la table de jointure.

Mon analyse est-elle correcte ?

.Gilles