diff --git a/inc-criteres.php3 b/inc-criteres.php3 index 7cf0d38b3292026e885b259ccee6de5425df2893..fa11e7cce8052878a62d5db4ed8d8fd2e83f76fa 100644 --- a/inc-criteres.php3 +++ b/inc-criteres.php3 @@ -50,14 +50,22 @@ function critere_exclus_dist($idb, &$boucles, $crit) { // {doublons} ou {unique} // http://www.spip.net/@doublons +// attention: boucle->doublons designe une variable qu'on affecte function critere_doublons_dist($idb, &$boucles, $crit) { $boucle = &$boucles[$idb]; - $boucle->doublons = "'" . $boucle->type_requete . "' . " . - calculer_liste($crit->param[0], array(), $boucles, $boucles[$idb]->id_parent); $NOT_IN = $crit->not ? '' : 'NOT'; $boucle->where[] = '" .' . - "calcul_mysql_in('".$boucle->id_table . '.' . $boucle->primary."', " - .'"0".$doublons['.$boucle->doublons."], '$NOT_IN') . \""; + "calcul_mysql_in('".$boucle->id_table . '.' . $boucle->primary . + "', " . + '"0".$doublons[' . + $boucle->doublons . + " = ('" . + $boucle->type_requete . + "' . " . + calculer_liste($crit->param[0], array(), $boucles, $boucles[$idb]->id_parent) . + ')], \'' . + $NOT_IN . + " ') . \""; } // {lang_select} diff --git a/inc-html-squel.php3 b/inc-html-squel.php3 index 3d5a1cf374492083ea1ae37a437e06f3c46ccd3f..d017dc26852f6702503dfee3267d99c021d6d764 100644 --- a/inc-html-squel.php3 +++ b/inc-html-squel.php3 @@ -381,11 +381,11 @@ function phraser_criteres($params, &$result) { else { // pas d'emplacement statique, faut un dynamique /// mais il y a 2 cas qui ont les 2 ! - if (($param == 'unique') || ($param == 'doublons')) + if (($param == 'unique') || (ereg('^!?doublons *', $param))) { - // sera remplace ensuite par la bonne valeur - // mais il faut l'indiquer tout de suite - $result->doublons = true; + // cette variable sera inseree dans le code + // et son nom sert d'indicateur des maintenant + $result->doublons = '$doublons_index'; $param = 'doublons'; } elseif ($param == 'recherche') @@ -489,7 +489,6 @@ function phraser($texte, $id_parent, &$boucles, $nom, $ligne=1) { $milieu = substr($result->apres,1); $result->apres = ""; phraser_criteres($result->param, $result); - } // // Recuperer la partie conditionnelle avant