From 42f09a250f775a2c3c9031ebe0ebdf7bd6aa5f3f Mon Sep 17 00:00:00 2001 From: "Committo,Ergo:sum" <esj@rezo.net> Date: Sat, 17 Jun 2006 19:15:56 +0000 Subject: [PATCH] =?UTF-8?q?Dans=20cette=20bard=C3=A9e=20de=20Warnings=20sa?= =?UTF-8?q?ns=20importance,=20il=20y=20avait=20un=20vrai=20bug=20qui=20fai?= =?UTF-8?q?sait=20a=20nouveau=20produire=20plusieurs=20fois=20le=20meme=20?= =?UTF-8?q?nom=20pour=20diff=C3=A9rents=20tables=20de=20jointures=20dans?= =?UTF-8?q?=20le=20cas=20de=20boucles=20DOCUMENTS.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ecrire/inc/filtres.php | 4 +++- ecrire/inc/texte.php | 5 ++--- ecrire/public/compiler.php | 3 ++- ecrire/public/composer.php | 2 +- ecrire/public/criteres.php | 7 +++---- 5 files changed, 11 insertions(+), 10 deletions(-) diff --git a/ecrire/inc/filtres.php b/ecrire/inc/filtres.php index db3e6d907c..6f19f9fed4 100644 --- a/ecrire/inc/filtres.php +++ b/ecrire/inc/filtres.php @@ -2771,6 +2771,9 @@ function pagination_item($num, $txt, $pattern, $lien_base, $debut, $ancre) { // on peut la surcharger en definissant dans mes_fonctions : // function pagination($total, $nom, $pas, $liste) {...} // + +define('PAGINATION_MAX', 10); + function calcul_pagination($total, $nom, $pas, $liste = true) { static $ancres = array(); $bloc_ancre = ""; @@ -2781,7 +2784,6 @@ function calcul_pagination($total, $nom, $pas, $liste = true) { return pagination($total, $nom, $pas, $liste); $separateur = ' | '; - define('PAGINATION_MAX', 10); $debut = 'debut'.$nom; diff --git a/ecrire/inc/texte.php b/ecrire/inc/texte.php index 1ae60347cb..80eb565a54 100644 --- a/ecrire/inc/texte.php +++ b/ecrire/inc/texte.php @@ -313,6 +313,7 @@ function couper($texte, $taille=50) { // prendre <intro>...</intro> sinon couper a la longueur demandee function couper_intro($texte, $long) { $texte = extraire_multi(eregi_replace("(</?)intro>", "\\1intro>", $texte)); // minuscules + $intro = ''; while ($fin = strpos($texte, "</intro>")) { $zone = substr($texte, 0, $fin); $texte = substr($texte, $fin + strlen("</intro>")); @@ -328,9 +329,7 @@ function couper_intro($texte, $long) { } // supprimer un eventuel chapo redirecteur =http:/..... - $intro = preg_replace(',^=[^[:space:]]+,','',$intro); - - return $intro; + return preg_replace(',^=[^[:space:]]+,','',$intro); } diff --git a/ecrire/public/compiler.php b/ecrire/public/compiler.php index 2ec2f31047..2657d2b697 100644 --- a/ecrire/public/compiler.php +++ b/ecrire/public/compiler.php @@ -631,12 +631,12 @@ function public_compiler_dist($squelette, $nom, $gram, $sourcefile) { foreach($boucles as $idb => $boucle) { if (($boucle->type_requete == 'documents') && $boucle->doublons) { $descr['documents'] = true; break; } - $boucles[$idb]->descr = &$descr; } // Commencer par reperer les boucles appelees explicitement // car elles indexent les arguments de maniere derogatoire foreach($boucles as $id => $boucle) { if ($boucle->type_requete == 'boucle') { + $boucles[$id]->descr = &$descr; $rec = &$boucles[$boucle->param[0]]; if (!$rec) { return array(_T('zbug_info_erreur_squelette'), @@ -656,6 +656,7 @@ 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"]; diff --git a/ecrire/public/composer.php b/ecrire/public/composer.php index 9c1f6d475d..f01ffc0d2a 100644 --- a/ecrire/public/composer.php +++ b/ecrire/public/composer.php @@ -311,7 +311,7 @@ function calcul_exposer ($id, $type, $reference) { } // And the winner is... - return isset($exposer[$type]) ? $exposer[$type][$id] : ''; + return isset($exposer[$type]) ? isset($exposer[$type][$id]) : ''; } function lister_objets_avec_logos ($type) { diff --git a/ecrire/public/criteres.php b/ecrire/public/criteres.php index 5f121ae0d1..5b763b3136 100644 --- a/ecrire/public/criteres.php +++ b/ecrire/public/criteres.php @@ -51,7 +51,7 @@ function critere_doublons_dist($idb, &$boucles, $crit) { $boucle = &$boucles[$idb]; if (!$boucle->primary) erreur_squelette(_L('doublons sur une table sans index'), $param); - $nom = calculer_liste($crit->param[0], array(), $boucles, $boucles[$idb]->id_parent); + $nom = !isset($crit->param[0]) ? "''" : calculer_liste($crit->param[0], array(), $boucles, $boucles[$idb]->id_parent); // mettre un tableau pour que ce ne soit pas vu comme une constante $boucle->where[]= array("calcul_mysql_in('".$boucle->id_table . '.' . $boucle->primary . "', " . @@ -97,10 +97,9 @@ function critere_debut_dist($idb, &$boucles, $crit) { function critere_pagination_dist($idb, &$boucles, $crit) { // definition de la taille de la page - $pas = calculer_liste($crit->param[0], array(), - $boucles, $boucles[$idb]->id_parent); + $pas = !isset($crit->param[0]) ? "''" : calculer_liste($crit->param[0], array(), $boucles, $boucles[$idb]->id_parent); - $pas = "((\$a = intval($pas)) ? \$a : 10)"; # par defaut c'est 10 + $pas = ($pas== "''") ? '10' : "((\$a = intval($pas)) ? \$a : 10)"; $boucle = &$boucles[$idb]; $boucle->mode_partie = 'p+'; -- GitLab