Browse Source

no_arobase : tests strict en se basant sur null, car on peut vouloir comparer une chaine vide

pull/21/head
Maïeul 2 years ago
parent
commit
b41d105db7
  1. 6
      inc/saisies_afficher_si_commun.php
  2. 6
      inc/saisies_afficher_si_php.php

6
inc/saisies_afficher_si_commun.php

@ -12,15 +12,15 @@
* Reçoit une condition
* la parse pour trouver champs/opérateurs/valeurs etc.
* @param string $condition
* @param bool=true $no_arobase, permet de ne pas parser le arobase
* @param null|string $no_arobase, permet de ne pas parser le arobase
* @return array tableau d'analyse (resultat d'un preg_match_all) montrant sous condition par sous condition l'analyse en champ/opérateur/valeur etc.
**/
function saisies_parser_condition_afficher_si($condition, $no_arobase=false) {
function saisies_parser_condition_afficher_si($condition, $no_arobase=null) {
static $cache = array(
'no_arobase' => array(),
'arobase' => array()
);
if ($no_arobase) {
if ($no_arobase !== null) {
$cache_ici = &$cache['no_arobase'];
$no_arobase = '?';
} else {

6
inc/saisies_afficher_si_php.php

@ -156,9 +156,10 @@ function saisies_afficher_si_get_valeur_champ($champ, $env, $saisies) {
* Tableau d'environnement transmis dans inclure/voir_saisies.html,
* NULL si on doit rechercher dans _request (pour saisies_verifier()).
* @param array $saisies
* @param string|null $no_arobase une valeur à tester là où il devrait y avoir un @@
* @return string $condition
**/
function saisies_transformer_condition_afficher_si($condition, $env = null, $saisies = array(), $no_arobase=false) {
function saisies_transformer_condition_afficher_si($condition, $env = null, $saisies = array(), $no_arobase=null) {
if ($tests = saisies_parser_condition_afficher_si($condition, $no_arobase)) {
if (!saisies_afficher_si_verifier_syntaxe($condition, $tests)) {
spip_log("Afficher_si incorrect. $condition syntaxe_incorrecte", "saisies"._LOG_CRITIQUE);
@ -203,9 +204,10 @@ function saisies_transformer_condition_afficher_si($condition, $env = null, $sai
* Tableau d'environnement transmis dans inclure/voir_saisies.html,
* NULL si on doit rechercher dans _request (pour saisies_verifier()).
* @param array $saisies
* @param string|null $no_arobase une valeur à tester là où il devrait y avoir un @@
* @return bool le résultat du test
**/
function saisies_evaluer_afficher_si($condition, $env = null, $saisies=array(), $no_arobase=false) {
function saisies_evaluer_afficher_si($condition, $env = null, $saisies=array(), $no_arobase=null) {
$condition = saisies_transformer_condition_afficher_si($condition, $env, $saisies, $no_arobase);
if ($condition) {
eval('$ok = '.$condition.';');

Loading…
Cancel
Save