Browse Source

evaluer_afficher_si (php). Tenir compte des descriptions de type @tableau[a][b]@

svn/root/tags/v3.26.0
maieul@maieul.net 3 years ago
parent
commit
b4997c033f
  1. 12
      inc/saisies_afficher_si_php.php
  2. 6
      tests/saisies_afficher_si/saisies_evaluer_afficher_si.php

12
inc/saisies_afficher_si_php.php

@ -111,7 +111,17 @@ function saisies_afficher_si_get_valeur_champ($champ, $env) {
} elseif ($config) {
$champ = $config;
} elseif (is_null($env)) {
$champ = _request($champ);
// Si le nom du champ est un tableau indexé, il faut parser !
if (preg_match('/([\w]+)((\[[\w]+\])+)/', $champ, $separe)) {
$champ= _request($separe[1]);
preg_match_all('/\[([\w]+)\]/', $separe[2], $index);
// On va chercher au fond du tableau
foreach ($index[1] as $cle) {
$champ = $champ[$cle];
}
} else {
$champ = _request($champ);
}
} else {
$champ = $env["valeurs"][$champ];
}

6
tests/saisies_afficher_si/saisies_evaluer_afficher_si.php

@ -31,7 +31,7 @@
set_request("tableau_1", array("a", "b", "c"));
set_request("tableau_2", array("e", "f", "g"));
set_request("nombre", "20");
set_request('cascade', array('a'=>'a'));
include_spip("inc/config");
ecrire_config("tests_saisies_config", array("a" => "a", "sous" => array("b" => "b", "c" => "c")));
//
@ -216,6 +216,10 @@
'hack' => array(
0 => true,
1 => "spip_log('s') || @input_1@=='s')"
),
'cascade' => array(
0 => true,
1 => '@cascade[a]@ == \'a\''
)
);
return $essais;

Loading…
Cancel
Save