Skip to content
Extraits de code Groupes Projets
Valider 19f11861 rédigé par esj's avatar esj
Parcourir les fichiers

L'utilisation des tables auxiliaires de SPIP dans les boucles de squelettes ne marchait plus.

parent 0f6282ef
Branches
Étiquettes
Aucune requête de fusion associée trouvée
......@@ -22,17 +22,18 @@ if (!defined("_ECRIRE_INC_VERSION")) return;
//
// http://doc.spip.org/@boucle_DEFAUT_dist
function boucle_DEFAUT_dist($id_boucle, &$boucles) {
global $table_des_tables;
global $table_des_tables, $tables_auxiliaires;
$boucle = &$boucles[$id_boucle];
$type = $boucle->type_requete;
$id_table = $table_des_tables[$type];
if (!$id_table)
;
if (isset($table_des_tables[$type]))
// les tables principales de spip ont un prefixe et un surnom
$boucle->from[$table_des_tables[$type]] = 'spip_' . $type ;
else if (isset($tables_auxiliaires['spip_' .$type]))
// les tables auxiliaires de spip ont un prefixe et pas de surnom
$boucle->from[$type] = 'spip_' . $type ;
// table hors SPIP
$boucle->from[$type] = $type;
else {
// les tables declarees par spip ont un prefixe et un surnom
$boucle->from[$id_table] = 'spip_' . $type ;
}
else $boucle->from[$type] = $type;
return calculer_boucle($id_boucle, $boucles);
}
......
......@@ -701,16 +701,16 @@ function public_compiler_dist($squelette, $nom, $gram, $sourcefile) {
$type = $boucle->type_requete;
if ($type != 'boucle') {
$boucles[$id]->descr = &$descr;
if ($x = $table_des_tables[$type]) {
$boucles[$id]->id_table = $x;
if (isset($table_des_tables[$type])) {
$boucles[$id]->id_table = $x = $table_des_tables[$type];
$boucles[$id]->primary = $tables_principales["spip_$x"]['key']["PRIMARY KEY"];
if ((!$boucles[$id]->jointures)
AND (is_array($x = $tables_jointures['spip_' . $x])))
$boucles[$id]->jointures = $x;
} else if (isset($tables_auxiliaires[$type])) {
} else if (isset($tables_auxiliaires['spip_' .$type])) {
// table auxiliaire
$boucles[$id]->id_table = $type;
$boucles[$id]->primary = $tables_auxiliaires[$type]['key']["PRIMARY KEY"];
$boucles[$id]->primary = $tables_auxiliaires['spip_' . $type]['key']["PRIMARY KEY"];
} else {
// table non Spip.
$boucles[$id]->id_table = $type;
......
......@@ -70,23 +70,24 @@ function index_pile($idb, $nom_champ, &$boucles, $explicite='') {
*/
// http://doc.spip.org/@description_type_requete
function description_type_requete($type, $serveur='') {
global $table_des_tables, $tables_des_serveurs_sql;
global $table_des_tables, $tables_des_serveurs_sql, $tables_auxiliaires;
if (!$serveur) {
$s = 'localhost';
// indirection (pour les rares cas ou le nom de la table!=type)
$t = $table_des_tables[$type];
} else $s = $serveur;
// pour les tables non Spip
if (!$t) {
$nom_table = $t = $type;
} else {
if (isset($table_des_tables[$type])) {
// indirection (pour les rares cas ou le nom de la table!=type)
$t = $table_des_tables[$type];
$nom_table = 'spip_' . $t;
}
} elseif (isset($tables_auxiliaires['spip_' .$type])) {
$t = $type;
$nom_table = 'spip_' . $t;
} else $nom_table = $t = $type;
$desc = $tables_des_serveurs_sql[$s][$nom_table];
if (!isset($desc['field'])) {
$desc = $table_des_tables[$type] ?
$desc = ($nom_table != $type) ?
(($GLOBALS['table_prefix'] ? $GLOBALS['table_prefix'] : 'spip')
. '_' . $t) : $nom_table;
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter