Valider 9c14dd9f rédigé par esj's avatar esj
Parcourir les fichiers

Le '0' rajouté d'office dans le critère doublon était inutile depuis déjà...

Le '0' rajouté d'office dans le critère doublon était inutile depuis déjà longtemps (optimisation de la construction IN) et même faux si on utilise ce critère dans une table externe dont la clé primaire peut être nulle.
Par ailleurs, la détection des {{{0=0}}} n'était pas systématique.

Cela fait, ceci:
{{{
<BOUCLE_syndiczone(SYNDIC_ARTICLES){id_mot=233}{doublons zone}>
...
</BOUCLE_syndiczone>
}}}
se compile en:
{{{
SELECT syndic_articles.id_syndic_article, syndic_articles.id_syndic
FROM Essai_syndic_articles AS `syndic_articles` 
    INNER JOIN Essai_mots_syndic AS L1 ON syndic_articles.id_syndic=L1.id_syndic
    INNER JOIN Essai_syndic AS L2 ON syndic_articles.id_syndic=L2.id_syndic
WHERE (L1.id_mot = '233')
    AND (syndic_articles.statut = 'publie')
    AND (L2.statut = 'publie')
GROUP BY syndic_articles.id_syndic_article,syndic_articles.id_syndic
}}}
avec des warnings supeflus en moins.
parent fb2de7d8
Chargement en cours
Chargement en cours
Chargement en cours
Chargement en cours
+8 −3
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -486,7 +486,9 @@ function balise_LESAUTEURS_dist ($p) {
		$p->code = "safehtml($_lesauteurs)";
		// $p->interdire_scripts = true;
	} else {
		$connect = $p->boucles[$p->id_boucle]->sql_serveur;
		$connect = !$p->id_boucle ? '' 
		  : $p->boucles[$p->id_boucle]->sql_serveur;

		$p->code = "recuperer_fond(
			'modeles/lesauteurs',
			array('id_article' => ".champ_sql('id_article', $p)
@@ -999,7 +1001,8 @@ function balise_INCLUDE_dist($p) {
// http://doc.spip.org/@balise_INCLURE_dist
function balise_INCLURE_dist($p) {
	$champ = phraser_arguments_inclure($p, true);
	$_contexte = argumenter_inclure($champ, $p->descr, $p->boucles, $p->id_boucle, false);
	$id_boucle = $p->id_boucle;
	$_contexte = argumenter_inclure($champ, $p->descr, $p->boucles, $id_boucle, false);

	if (isset($_contexte['fond'])) {
		// Critere d'inclusion {env} (et {self} pour compatibilite ascendante)
@@ -1013,7 +1016,9 @@ function balise_INCLURE_dist($p) {
		if ($flag_env) {
			$l = "array_merge(\$Pile[0],$l)";
		}
		$connect = $p->boucles[$p->id_boucle]->sql_serveur;
		$connect = !$id_boucle ? '' 
		  : $p->boucles[$id_boucle]->sql_serveur;

		$p->code = "recuperer_fond('',".$l.", false, " . sql_quote($connect) .")";
	} else {
		$n = interprete_argument_balise(1,$p);
+1 −0
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -482,6 +482,7 @@ function calculer_select ($select = array(), $from = array(),

	$menage = false;
	foreach($where as $k => $v) { 
		if (is_array($v)) $v = $v[0];
		if ((!$v) OR ($v==1) OR ($v=='0=0')) {
			unset($where[$k]);
			$menage = true;
+1 −1
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -61,7 +61,7 @@ function critere_doublons_dist($idb, &$boucles, $crit) {
	// mettre un tableau pour que ce ne soit pas vu comme une constante
	$boucle->where[]= array("sql_in('".$boucle->id_table . '.' . $boucle->primary .
	  "', " .
	  '"0".$doublons[' . 
	  '$doublons[' . 
	  ($crit->not ? '' : ($boucle->doublons . "[]= ")) .
	  "('" .
	  $boucle->type_requete . 
+1 −1
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -410,7 +410,7 @@ function debug_dumpfile ($texte, $fonc, $type) {
	// en cas de squelette inclus,  virer le code de l'incluant:
	// - il contient souvent une Div restreignant la largeur a 3 fois rien
	// - ca fait 2 headers !
	ob_end_clean();
	if (ob_get_length()) ob_end_clean();
	$self = str_replace("\\'", '&#39;', self());
	$self = parametre_url($self,'var_mode', 'debug');
	echo debug_debut($fonc);