Skip to content
Extraits de code Groupes Projets
Valider 6fac49b7 rédigé par Fil's avatar Fil
Parcourir les fichiers

report en 3.1-dev des filtres |set{} et |debug{}, cf....

report en 3.1-dev des filtres |set{} et |debug{}, cf. http://core.spip.org/projects/spip/repository/revisions/21376 et suivants
parent 66a1b8da
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -254,6 +254,39 @@ function filtrer($filtre) {
}
/*
*
* [(#CALCUL|set{toto})] enregistre le résultat de #CALCUL
* dans la variable toto et renvoie vide
*
* [(#CALCUL|set{toto,1})] enregistre le résultat de #CALCUL
* dans la variable toto et renvoie la valeur
*
*/
function filtre_set(&$Pile, $val, $key, $continue = null) {
$Pile['vars'][$key] = $val;
return $continue ? $val : '';
}
/*
* [(#TRUC|debug{avant}|calcul|debug{apres}|etc)] affiche
* la valeur de #TRUC avant et après le calcul
*/
function filtre_debug($val, $key=null) {
$debug = (
is_null($key) ? '' : (var_export($key,true)." = ")
) . var_export($val, true);
include_spip('inc/autoriser');
if (autoriser('webmestre'))
echo "<div class='spip_debug'>\n",$debug,"</div>\n";
spip_log($debug, 'debug');
return $val;
}
/**
* Exécute un filtre image
*
......
......@@ -62,7 +62,15 @@ 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)) {
$code = "$f($code$arglist)";
// cas particulier : le filtre |set doit acceder a la $Pile
// proto: filtre_set(&$Pile, $val, $args...)
$refs = (new ReflectionFunction($f))->getParameters();
if (isset($refs[0]) AND $refs[0]->name == 'Pile') {
$code = "$f(\$Pile,$code$arglist)";
}
else {
$code = "$f($code$arglist)";
}
}
// le filtre n'existe pas,
// on le notifie
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter