diff --git a/ecrire/public/references.php b/ecrire/public/references.php index cc2ca769809506bf3b55623272e1d92d371318b8..5eedecae7cd78816ec845e94f7904c6f4de249ae 100644 --- a/ecrire/public/references.php +++ b/ecrire/public/references.php @@ -382,10 +382,15 @@ function compose_filtres($p, $code) { foreach($p->param as $filtre) { $fonc = array_shift($filtre); if ($fonc) { - // recuperer les arguments du filtre, en les separant par des - // virgules, *sauf* dans le cas du filtre "?" qui demande un ":" - $arglist = compose_filtres_args($p, $filtre, - ($fonc == '?' ? ':' : ',')); + // recuperer les arguments du filtre, les separer par des virgules + // *sauf* dans le cas du filtre "?" qui demande un ":" + if ($fonc == '?') { + // |?{a,b} *doit* avoir exactement 2 arguments ; on les force + if (count($filtre) != 2) + $filtre = array($filtre[0], $filtre[1]); + $arglist = compose_filtres_args($p, $filtre, ':'); + } else + $arglist = compose_filtres_args($p, $filtre, ','); // le filtre est defini dans la matrice ? il faut alors l'appeler // de maniere indirecte, pour charger au prealable sa definition