From c4cdff8b02533678cce3191c46485720eb080d3f Mon Sep 17 00:00:00 2001 From: Fil <fil@rezo.net> Date: Wed, 1 Feb 2006 17:50:02 +0000 Subject: [PATCH] =?UTF-8?q?corrige=20le=20bug=20qui=20s'=C3=A9tait=20gliss?= =?UTF-8?q?=C3=A9=20sous=20#LOGO=5Fxxxxx=20et=20qui=20faisait=20que=20le?= =?UTF-8?q?=20premier=20filtre=20donn=C3=A9=20apr=C3=A8s=20||=20=C3=A9tait?= =?UTF-8?q?=20jet=C3=A9=20=C3=A0=20la=20poubelle=20L'origine=20du=20bug=20?= =?UTF-8?q?:=20un=20d=C3=A9calage=20entre=20$p->fonctions=20et=20$p->param?= =?UTF-8?q?=20pour=20le=20filtre=20"vide"=20(celui=20qui=20est=20entre=20l?= =?UTF-8?q?es=20deux=20pipes=20de=20||)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- inc-balises.php3 | 60 ++++++++++++++++++++++++++++-------------------- 1 file changed, 35 insertions(+), 25 deletions(-) diff --git a/inc-balises.php3 b/inc-balises.php3 index 3d0247cb72..0e7522567c 100644 --- a/inc-balises.php3 +++ b/inc-balises.php3 @@ -489,51 +489,61 @@ function calculer_balise_logo ($p) { eregi("^LOGO_([A-Z]+)(_.*)?$", $p->nom_champ, $regs); $type_objet = $regs[1]; $suite_logo = $regs[2]; + + // cas de #LOGO_SITE_SPIP if (ereg("^_SPIP(.*)$", $suite_logo, $regs)) { $type_objet = 'RUBRIQUE'; $suite_logo = $regs[1]; $_id_objet = "\"'0'\""; } else { - if ($type_objet == 'SITE') $_id_objet = champ_sql("id_syndic", $p); else $_id_objet = champ_sql("id_".strtolower($type_objet), $p); } - // analyser les faux filtres, - // supprimer ceux qui ont le tort d'etre vrais + + // analyser les faux filtres $flag_fichier = 0; $filtres = ''; + if (is_array($p->fonctions)) { foreach($p->fonctions as $couple) { - // eliminer les faux filtres if (!$flag_stop) { - array_shift($p->param); - $nom = $couple[0]; - if (ereg('^(left|right|center|top|bottom)$', $nom)) - $align = $nom; - else if ($nom == 'lien') { - $flag_lien_auto = 'oui'; - $flag_stop = true; - } - else if ($nom == 'fichier') { - $flag_fichier = 1; - $flag_stop = true; - } - // double || signifie "on passe aux filtres" - else if ($nom == '') { + $nom = trim($couple[0]); + + // double || signifie "on passe aux vrais filtres" + if ($nom == '') { if (!$params = $couple[1]) $flag_stop = true; - } - else if ($nom) { - $lien = $nom; - $flag_stop = true; } else { - + // faux filtres + array_shift($p->param); + switch($nom) { + case 'left': + case 'right': + case 'center': + case 'top': + case 'bottom': + $align = $nom; + break; + + case 'lien': + $flag_lien_auto = 'oui'; + $flag_stop = true; # apres |lien : vrais filtres + break; + + case 'fichier': + $flag_fichier = 1; + $flag_stop = true; # apres |fichier : vrais filtres + break; + + default: + $lien = $nom; + $flag_stop = true; # apres |#URL... : vrais filtres + break; + } } } - // apres un URL ou || ou |fichier ce sont - // des filtres (sauf left...lien...fichier) } } -- GitLab