Bonjour,
Je suis en train de rajouter plusieurs tables à Spip et j'aimerais faire des jointures sur ces tables et tout ca dans le cadre d'un plugin.
J'ai donc utilisé les pipelines
declarer_tables_principales,
declarer_tables_auxiliaires
et declarer_tables_interfaces.
Quand je fais une boucle MAISONS, je voudrais récupérer le nom et l'id de la chambre.
<BOUCLE_maison(MAISONS){tout}>
#ID_MAISON #NOM_MAISON
<br/>
#ID_CHAMBRE #NOM_CHAMBRE
<br/>
</BOUCLE_maison>
Cette boucle ne fonctionne pas.
Pourquoi Spip ne fait pas la jointure avec les tables que je lui ai données dans le pipeline declarer_tables_interfaces ?
A quoi servent ces tables si Spip ne fait pas le lien ?
Je suis allé voir là http://doc.spip.org/@Declarer-et-ajouter-des-tables et là http://www.spip-contrib.net/Acces-SPIP-aux-tables-externes-et mais au bout d'une journée, je n'ai toujours pas compris l'objectif du mécanisme.
Merci d'avance pour vos réponses
Voici le code pour mes pipelines :
function csdd_declarer_tables_interfaces($interface){
$interface['tables_jointures']['spip_maisons']['id_maison']='maison_chambre';
$interface['tables_jointures']['spip_chambres']['id_chambre']='maison_chambre';
$interface['table_des_tables']['chambres']='chambres';
$interface['table_des_tables']['maisons']='maisons';
return $interface;
}
function csdd_declarer_tables_principales($tables_principales){
$spip_chambres = array(
"id_chambre" => "bigint(21) NOT NULL",
"nom_chambre" => "varchar(255) NOT NULL DEFAULT ''");
$spip_chambres_key = array(
"PRIMARY KEY" => "id_chambre");
$spip_chambres_join = array(
"id_chambre" => "id_chambre");
$tables_principales['spip_chambres'] = array(
'field' => &$spip_chambres,
'key' => &$spip_chambres_key,
'join' => &$spip_chambres_join);
$spip_maisons = array(
"id_maison" => "bigint(21) NOT NULL",
"nom_maison" => "varchar(255) NOT NULL DEFAULT ''");
$spip_maisons_key = array(
"PRIMARY KEY" => "id_maison");
$spip_maisons_join = array(
"id_maison" => "id_maison");
$tables_principales['spip_maisons'] = array(
'field' => &$spip_maisons,
'key' => &$spip_maisons_key,
'join' => &$spip_maisons_join);
return $tables_principales;
}
function csdd_declarer_tables_auxiliaires($tables_auxiliaires){
$spip_maison_chambre = array(
"id_maison" => "bigint(21) NOT NULL",
"id_chambre" => "bigint(21) NOT NULL");
$spip_maison_chambre_key = array(
"PRIMARY KEY" => "id_maison, id_chambre",
"KEY id_chambre" => "id_chambre");
$tables_auxiliaires['spip_maison_chambre'] = array(
'field' => &$spip_maison_chambre,
'key' => &$spip_maison_chambre_key);
return $tables_auxiliaires;
}