From 0fc1f916fafdda542b419537a9b49b9f9d521400 Mon Sep 17 00:00:00 2001 From: Cerdic <cedric@yterium.com> Date: Thu, 13 Mar 2008 17:20:52 +0000 Subject: [PATCH] porter le formulaire recherche dans la nouvelle api balise dynamique au passage permettre de definir une fonction balise_XX_stat() pour argumenter sans pour autant definir de fonction _dyn la fonction stat permet ici de continuer provisoirement le support de [(#FORMULAIRE_RECHERCHE|spip.php?page=tralala)] on encourage vivement a utiliser la seule ecriture qui devrait etre acceptee : [(#FORMULAIRE_RECHERCHE{spip.php?page=tralala})] --- dist/formulaires/recherche.html | 4 ++-- ecrire/balise/formulaire_recherche.php | 25 +------------------------ ecrire/public/composer.php | 13 ++++++++++++- 3 files changed, 15 insertions(+), 27 deletions(-) diff --git a/dist/formulaires/recherche.html b/dist/formulaires/recherche.html index f14db58fea..f8d684a2c6 100644 --- a/dist/formulaires/recherche.html +++ b/dist/formulaires/recherche.html @@ -1,6 +1,6 @@ <div class="formulaire_spip formulaire_recherche" id="formulaire_recherche"> -<form action="[(#ENV{lien})]" method="get"><div> - [(#ENV{lien}|form_hidden)] +<form action="[(#ENV{lien})]" method="get" class='noajax'><div> + #ACTION_FORMULAIRE{#ENV{lien}} [<input type="hidden" name="lang" value="(#ENV{lang})" />] <label for="recherche"><:info_rechercher:></label> <input type="text" class="forml" size="10" name="recherche" id="recherche"[ value="(#ENV{recherche})"] accesskey="4" /> diff --git a/ecrire/balise/formulaire_recherche.php b/ecrire/balise/formulaire_recherche.php index dd6eb6554d..1a61105483 100644 --- a/ecrire/balise/formulaire_recherche.php +++ b/ecrire/balise/formulaire_recherche.php @@ -14,33 +14,10 @@ if (!defined("_ECRIRE_INC_VERSION")) return; #securite // Pas besoin de contexte de compilation - -// http://doc.spip.org/@balise_FORMULAIRE_RECHERCHE -function balise_FORMULAIRE_RECHERCHE ($p) -{ - return calculer_balise_dynamique($p, 'FORMULAIRE_RECHERCHE', array()); -} - // http://doc.spip.org/@balise_FORMULAIRE_RECHERCHE_stat function balise_FORMULAIRE_RECHERCHE_stat($args, $filtres) { // filtres[0] doit etre un script (a revoir) return array($filtres[0], $args ? $args[0] : ''); } - -// http://doc.spip.org/@balise_FORMULAIRE_RECHERCHE_dyn -function balise_FORMULAIRE_RECHERCHE_dyn($lien, $rech) { - - if ($GLOBALS['spip_lang'] != $GLOBALS['meta']['langue_site']) - $lang = $GLOBALS['spip_lang']; - else - $lang=''; - - return array('formulaires/recherche', 3600, - array( - 'lien' => ($lien ? $lien : generer_url_public('recherche')), - 'recherche' => _request('recherche'), - 'lang' => $lang - )); -} -?> +?> \ No newline at end of file diff --git a/ecrire/public/composer.php b/ecrire/public/composer.php index 943ca15b1c..1892b57072 100644 --- a/ecrire/public/composer.php +++ b/ecrire/public/composer.php @@ -251,7 +251,6 @@ function executer_balise_dynamique($nom, $args, $filtres, $lang, $ligne) { else die ("pas de balise dynamique pour #". strtolower($nom)." !"); } - // Y a-t-il une fonction de traitement filtres-arguments ? $f = 'balise_' . $nom . '_stat'; if (function_exists($f)) @@ -261,6 +260,18 @@ function executer_balise_dynamique($nom, $args, $filtres, $lang, $ligne) { if (!is_array($r)) return $r; else { + // verifier que la fonction dyn est la, sinon se replier sur la generique si elle existe + if (!function_exists('balise_' . $nom . '_dyn')){ + // regarder si une fonction generique n'existe pas + if (($p = strpos($nom,"_")) + && ($file = find_in_path(strtolower(substr($nom,0,$p+1)) .'.php', 'balise/', true))) { + // dans ce cas, on lui injecte en premier arg le nom de la balise qu'on doit traiter + array_unshift($r,$nom); + $nom = substr($nom,0,$p+1); + } + else + die ("pas de balise dynamique pour #". strtolower($nom)." !"); + } if (!_DIR_RESTREINT) $file = _DIR_RESTREINT_ABS . $file; return synthetiser_balise_dynamique($nom, $r, $file, $lang, $ligne); -- GitLab