diff --git a/ecrire/public/phraser_html.php b/ecrire/public/phraser_html.php index c93606d8cbc743c1e534e43bd878fc96ce1fabec..f1910bceafbc567c637ffb0857e778e79150a093 100644 --- a/ecrire/public/phraser_html.php +++ b/ecrire/public/phraser_html.php @@ -502,24 +502,25 @@ function phraser_criteres($params, &$result) { $not = ""; } else { // Le debut du premier argument est l'operateur - preg_match("/^([!]?)([a-zA-Z][a-zA-Z0-9_]*)[[:space:]]*(.*)$/ms", $param, $m); + preg_match("/^([!]?)([a-zA-Z][a-zA-Z0-9_]*)[[:space:]]*(\??)[[:space:]]*(.*)$/ms", $param, $m); $op = $m[2]; $not = $m[1]; + $cond = $m[3]; // virer le premier argument, // et mettre son reliquat eventuel // Recopier pour ne pas alterer le texte source // utile au debusqueur - if ($m[3]) { + if ($m[4]) { // une maniere tres sale de supprimer les "' autour de {critere "xxx","yyy"} - if (preg_match(',^(["\'])(.*)\1$,', $m[3])) { + if (preg_match(',^(["\'])(.*)\1$,', $m[4])) { $c = null; - eval ('$c = '.$m[3].';'); + eval ('$c = '.$m[4].';'); if (isset($c)) { - $m[3] = $c; + $m[4] = $c; } } $texte = new Texte; - $texte->texte = $m[3]; + $texte->texte = $m[4]; $v[1][0]= $texte; } else { array_shift($v[1]); @@ -529,6 +530,7 @@ function phraser_criteres($params, &$result) { $crit = new Critere; $crit->op = $op; $crit->not = $not; + $crit->cond = $cond; $crit->exclus =""; $crit->param = $v; $args[] = $crit;