Avec le plugin cfg, j'ai voulu enregistrer une valeur 0 (zéro).
Et l'utiliser avec #CONFIG{soyezcreateurs/nombres_alanune,3}
Autrement dit, en proposant une valeur par défaut si non renseigné.
Or, la balise produit la valeur si non renseigné (3 ici) au lieu de 0 (zéro, la valeur effectivement renseignée)
D'après mes tests, c'est dans cfg_options.php ici :
function balise_CONFIG($p) {
if (!$arg = interprete_argument_balise(1,$p)) {
$arg = "''";
}
$sinon = interprete_argument_balise(2,$p);
$p->code = 'lire_config(' . $arg . ',' .
($sinon && $sinon != "''" ? $sinon : 'null') . ',1)';
return $p;
}
Si je ne met pas de valeur par défaut, il me renvoit bien 0 (zéro)
J'ai trouvé : à la fin de cfg_options.php
- return !$ret && $def ? $def : $ret;
+ if ($ret === '' && $def) {
+ return $def;
+ } else {
+ return $ret;
+ }
Je commite ?
Non, parce que ça flingue les cas ou la variable de config est inconnue, les tests avec pasla,
cf. tests/ (à lancer par spip/tests/ puis donner base = plugins/cfg)
Avec le plugin cfg, j'ai voulu enregistrer une valeur 0 (zéro).
Et l'utiliser avec #CONFIG{soyezcreateurs/nombres_alanune,3}
Autrement dit, en proposant une valeur par défaut si non renseigné.
Or, la balise produit la valeur si non renseigné (3 ici) au lieu de 0 (zéro, la valeur effectivement renseignée)
D'après mes tests, c'est dans cfg_options.php ici :
function balise_CONFIG($p) {
if (!$arg = interprete_argument_balise(1,$p)) {
$arg = "''";
}
$sinon = interprete_argument_balise(2,$p);
$p->code = 'lire_config(' . $arg . ',' .
($sinon && $sinon != "''" ? $sinon : 'null') . ',1)';
return $p;
}
Si je ne met pas de valeur par défaut, il me renvoit bien 0 (zéro)
J'ai trouvé : à la fin de cfg_options.php
- return !$ret && $def ? $def : $ret;
+ if ($ret === '' && $def) {
+ return $def;
+ } else {
+ return $ret;
+ }
Je commite ?
Non, parce que ça flingue les cas ou la variable de config est inconnue, les tests avec pasla,
cf. tests/ (à lancer par spip/tests/ puis donner base = plugins/cfg)
Faut qu'on trouve mieux...
Voilà c'est fait [9734], c'est is_null() qu'il fallait ... je vérifie la compat
--
toggg