diff --git a/ecrire/public/sandbox.php b/ecrire/public/sandbox.php index dafcaffba14423a9bb457c7e5f1cc95c77ac79c9..7bc64d1bad683b8704a39b87a0fa62beb7670559 100644 --- a/ecrire/public/sandbox.php +++ b/ecrire/public/sandbox.php @@ -62,9 +62,14 @@ function sandbox_composer_filtre($fonc, $code, $arglist, &$p){ // le filtre est defini sous forme de fonction ou de methode // par ex. dans inc_texte, inc_filtres ou mes_fonctions elseif ($f = chercher_filtre($fonc)) { + // cas particulier : le filtre |set doit acceder a la $Pile // proto: filtre_set(&$Pile, $val, $args...) - $refl = new ReflectionFunction($f); + if (strpbrk($f, ':')) { // Class::method + $refl = new ReflectionMethod($f); + } else { + $refl = new ReflectionFunction($f); + } $refs = $refl->getParameters(); if (isset($refs[0]) AND $refs[0]->name == 'Pile') { $code = "$f(\$Pile,$code$arglist)";