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

Retour à la sémantique habituelle des doublons

parent a0153b34
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -18,7 +18,7 @@ function calculer_params($type, $params, $idb, &$boucles) ...@@ -18,7 +18,7 @@ function calculer_params($type, $params, $idb, &$boucles)
".\"'"; } ".\"'"; }
else if ($param == 'unique' OR $param == 'doublons') { else if ($param == 'unique' OR $param == 'doublons') {
$boucle->doublons = true; $boucle->doublons = true;
$boucle->where[] = "$id_field NOT IN (\$doublons)"; $boucle->where[] = "$id_field NOT IN (\" . \$doublons['$type'] . \")";
} }
else if (ereg('^(!)? *lang_select(=(oui|non))?$', $param, $match)) { else if (ereg('^(!)? *lang_select(=(oui|non))?$', $param, $match)) {
if (!$lang_select = $match[3]) $lang_select = 'oui'; if (!$lang_select = $match[3]) $lang_select = 'oui';
......
...@@ -69,7 +69,7 @@ function calculer_boucle($id_boucle, &$boucles) ...@@ -69,7 +69,7 @@ function calculer_boucle($id_boucle, &$boucles)
if ($x = $PileRow[$SP]["lang"]) $GLOBALS["spip_lang"] = $x;')) . if ($x = $PileRow[$SP]["lang"]) $GLOBALS["spip_lang"] = $x;')) .
$invalide . $invalide .
((!$boucle->doublons) ? "" : ((!$boucle->doublons) ? "" :
("\n\t\t\$doublons .= ','. \$PileRow[\$SP]['" . ("\n\t\t\$doublons['$type_boucle'] .= ','. \$PileRow[\$SP]['" .
$primary_key . "'];")). $primary_key . "'];")).
$corps . $corps .
(($return == "''") ? "" : (($return == "''") ? "" :
...@@ -224,8 +224,7 @@ function calculer_liste($tableau, $prefix, $id_boucle, $niv, $rec, &$boucles, $i ...@@ -224,8 +224,7 @@ function calculer_liste($tableau, $prefix, $id_boucle, $niv, $rec, &$boucles, $i
$c = $prefix . $c = $prefix .
ereg_replace("-","_", $nom) . ereg_replace("-","_", $nom) .
'($Cache, $PileRow, $PileNum, $SP' . '($Cache, $PileRow, $doublons, $PileNum, $SP)';
(!($rec || ( $objet->type_requete == 'boucle')) ? ", true" : ', $inidoublon') . ')';
$m = ""; $m = "";
} else { } else {
list($c,$m) = list($c,$m) =
...@@ -381,16 +380,13 @@ function calculer_squelette($squelette, $nom, $gram) { ...@@ -381,16 +380,13 @@ function calculer_squelette($squelette, $nom, $gram) {
foreach($boucles as $id => $boucle) foreach($boucles as $id => $boucle)
{ {
$code .= "\n\nfunction $nom" . ereg_replace("-","_",$id) . $code .= "\n\nfunction $nom" . ereg_replace("-","_",$id) .
'(&$Cache, &$PileRow, &$PileNum, $SP, $inidoublon="") {' . '(&$Cache, &$PileRow, &$doublons, &$PileNum, $SP) {' .
(!$boucle->doublons ? '' : '
static $doublons;
if ($inidoublon) $doublons = "0";') .
$boucle->return . $boucle->return .
"\n}\n"; "\n}\n";
} }
} }
return $code . ' return $code . '
function ' . $nom . '($Cache, $PileRow, $PileNum="", $SP=0, $inidoublon="") function ' . $nom . '($Cache, $PileRow, $doublons, $PileNum="", $SP=0)
{ {
' . ' .
$corps . "\n \$t0 = " . $return . '; $corps . "\n \$t0 = " . $return . ';
......
...@@ -54,7 +54,19 @@ function cherche_page($cache, $contexte, $fond, $id_rubrique, $lang='') ...@@ -54,7 +54,19 @@ function cherche_page($cache, $contexte, $fond, $id_rubrique, $lang='')
$fonc = ramener_squelette($skel); $fonc = ramener_squelette($skel);
$timer_a = explode(" ", microtime()); $timer_a = explode(" ", microtime());
$page = $fonc(array('cache' =>$cache), array($contexte)); $page = $fonc(array('cache' =>$cache),
array($contexte),
array( 'articles' => '0',
'rubriques' => '0',
'breves' => '0',
'auteurs' => '0',
'forums' => '0',
'signatures' => '0',
'mots' => '0',
'groupes_mots' => '0',
'syndication' => '0',
'documents' => '0'));
if ($GLOBALS['xhtml']) { if ($GLOBALS['xhtml']) {
include_ecrire("inc_tidy.php"); include_ecrire("inc_tidy.php");
$page['texte'] = xhtml($page['texte']); $page['texte'] = xhtml($page['texte']);
......
...@@ -174,7 +174,7 @@ function calculer_champ_divers($fonctions, $nom_champ, $id_boucle, &$boucles, $i ...@@ -174,7 +174,7 @@ function calculer_champ_divers($fonctions, $nom_champ, $id_boucle, &$boucles, $i
} }
$fonctions = $filtres; $fonctions = $filtres;
} }
$id_on_off = $table_primary[$boucles[$id_boucle]->type_requete]; $id_on_off = $doublons[$boucles[$id_boucle]->type_requete];
if ($id_on_off) if ($id_on_off)
$code = "(\$PileRow[0]['$id_on_off'] == \$PileRow[\$SP]['$id_on_off']) ? $code = "(\$PileRow[0]['$id_on_off'] == \$PileRow[\$SP]['$id_on_off']) ?
'$on' : '$off'"; '$on' : '$off'";
......
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