diff --git a/ecrire/public/compiler.php b/ecrire/public/compiler.php index 2657d2b6972b37953bb183c649dc8bd57916a884..6de5783b4ff71440eb7e1b258972418b857aed0e 100644 --- a/ecrire/public/compiler.php +++ b/ecrire/public/compiler.php @@ -628,7 +628,24 @@ function public_compiler_dist($squelette, $nom, $gram, $sourcefile) { $descr = array('nom' => $nom, 'sourcefile' => $sourcefile); // une boucle documents est conditionnee par tout le reste! - foreach($boucles as $idb => $boucle) { + foreach($boucles as $id => $boucle) { + $type = $boucle->type_requete; + if ($type != 'boucle') { + $boucles[$id]->descr = &$descr; + if ($x = $table_des_tables[$type]) { + $boucles[$id]->id_table = $x; + $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 { + // table non Spip. + $boucles[$id]->id_table = $type; + $serveur = $boucle->sql_serveur; + $x = $tables_des_serveurs_sql[$serveur ? $serveur : 'localhost'][$type]['key']; + $boucles[$id]->primary = ($x["PRIMARY KEY"] ? $x["PRIMARY KEY"] : $x["KEY"]); + } + } if (($boucle->type_requete == 'documents') && $boucle->doublons) { $descr['documents'] = true; break; } } @@ -656,20 +673,6 @@ function public_compiler_dist($squelette, $nom, $gram, $sourcefile) { foreach($boucles as $id => $boucle) { $type = $boucle->type_requete; if ($type != 'boucle') { - $boucles[$id]->descr = &$descr; - if ($x = $table_des_tables[$type]) { - $boucles[$id]->id_table = $x; - $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 { - // table non Spip. - $boucles[$id]->id_table = $type; - $serveur = $boucle->sql_serveur; - $x = $tables_des_serveurs_sql[$serveur ? $serveur : 'localhost'][$type]['key']; - $boucles[$id]->primary = ($x["PRIMARY KEY"] ? $x["PRIMARY KEY"] : $x["KEY"]); - } if ($boucle->param) { $res = calculer_criteres($id, $boucles); if (is_array($res)) return $res; # erreur