diff --git a/ecrire/inc_filtres.php3 b/ecrire/inc_filtres.php3 index 9577777681ef9df31e00bcce4d566a6bac306a42..b7b5e606ee9d4d1064e8d81983e2cc023cdf40e5 100644 --- a/ecrire/inc_filtres.php3 +++ b/ecrire/inc_filtres.php3 @@ -13,6 +13,17 @@ if (!defined("_ECRIRE_INC_VERSION")) return; +// Appliquer un filtre (eventuellement defini dans la matrice) aux donnees +// et arguments +function filtrer($filtre) { + if ($f = $GLOBALS['spip_matrice'][$filtre]) + include_local($f); + + $tous = func_get_args(); + array_shift($tous); # enlever $filtre + return call_user_func_array($filtre, $tous); +} + // Echappement des entites HTML avec correction des entites "brutes" // (generees par les butineurs lorsqu'on rentre des caracteres n'appartenant // pas au charset de la page [iso-8859-1 par defaut]) @@ -2106,9 +2117,9 @@ function tags2dcsubject($tags) { } // fabrique un bouton de type $t de Name $n, de Value $v et autres attributs $a function boutonne($t, $n, $v, $a='') { - return "\n<input type='$t'" . - (!$n ? '' : " name='$n'") . - " value=\"$v\" $a />"; + return "\n<input type='$t'" + . (!$n ? '' : " name='$n'") + . " value=\"$v\" $a />"; } ?> diff --git a/inc-compilo-index.php3 b/inc-compilo-index.php3 index c26652f146759f5206c667ef349ae980167cfad3..619e8d12e68b3d48fc1d7facb1cb22fdcc9d88c1 100644 --- a/inc-compilo-index.php3 +++ b/inc-compilo-index.php3 @@ -363,8 +363,14 @@ function compose_filtres($p, $code) { $arglist = compose_filtres_args($p, $filtre, ($fonc == '?' ? ':' : ',')); - // le filtre existe sous forme de fonction ou de methode - if (function_exists($fonc) + // le filtre est defini dans la matrice ? il faut alors l'appeler + // de maniere indirecte, pour charger au prealable sa definition + if (isset($GLOBALS['spip_matrice'][$fonc])) { + $code = "filtrer('$fonc',$code$arglist)"; + } + // le filtre est defini sous forme de fonction ou de methode + // par ex. dans inc_texte, inc_filtres ou mes_fonctions + else if (function_exists($fonc) OR (preg_match("/^(\w*)::(\w*)$/", $fonc, $regs) AND is_callable(array($regs[1], $regs[2])) ))