Critères boucles en parametres optionels

Bonjour,
j'essaie de faire une page squelette qui permette d'afficher le
contenu d'une table renseignée par Form & tables.

Pour ça j'utilise comme critere de boucle:
{champ=#ENV{champ_filtre}}
ça marche si le champ_filtre est passé en parametre, mais je voudrais
que ce critère soit appliqué seulement si champ_filtre existe

Bref je voudrais ne pas utiliser les critères si ils ne sont pas
passés en parametre

quelqu'un sait?

merci

--
Thierry

Le 19/10/2015 11:16, Solidairnet Chôm'Actif a écrit :

Pour ça j'utilise comme critere de boucle:
{champ=#ENV{champ_filtre}}
ça marche si le champ_filtre est passé en parametre, mais je voudrais

Bon, alors là c'est pas simple :stuck_out_tongue:

C'est plus simple si le nom du param est le même que le champ ; dans ce cas là : {champ ?} et hop (sous entendu que ta valeur arrive dans #ENV{champ}).

Lire par exemple :
- Critères optionnels - Programmer avec SPIP 4
- Critères optionnels avec opérateurs - Programmer avec SPIP 4

Sinon, faut vraiment feinter avec une expression régulière ou une condition que tu sais systématiquement vraie…

Du style (non testé) :
{champ == #ENV{champ_filtre}|?{^#ENV{champ_filtre}$,.*}}

Sinon encore, faire 2 boucles.

La première avec {si #ENV{champ_filtre}}{champ=#ENV{champ_filtre}}, la seconde avec {si #ENV{champ_filtre}|non}

MM.

super!
merci, j'avais bien lu Critères optionnels - Programmer avec SPIP 4
mais je n'avais pas compris que je pouvais l'utiliser en modifiant le
nom de mon parametre ...ngheu...
du coup {champ ?} me convient pour ma boucle.
merci

Thierry

<BOUCLE_filtre(forms_donnees_champs) {tout} {champ ?} {valeur ?}>
<BOUCLE_donnees(forms_donnees) {id_form} {id_donnee=#ID_DONNEE}>
<tr><td> #ID_DONNEE </td>
<td><BOUCLE_nomauteur(AUTEURS){id_auteur=#ID_AUTEUR} {tout}> #NOM
</BOUCLE_nomauteur></td>
<BOUCLE_champs(FORMS_CHAMPS) {tout}{id_form} {par rang}>
<td>#LESVALEURS</td>
</BOUCLE_champs>
</BOUCLE_donnees>
</tr>
</BOUCLE_filtre>

Le 19 octobre 2015 11:45, Matthieu Marcillaud <marcimat@rezo.net> a écrit :

Le 19/10/2015 11:16, Solidairnet Chôm'Actif a écrit :

Pour ça j'utilise comme critere de boucle:
{champ=#ENV{champ_filtre}}
ça marche si le champ_filtre est passé en parametre, mais je voudrais

Bon, alors là c'est pas simple :stuck_out_tongue:

C'est plus simple si le nom du param est le même que le champ ; dans ce cas
là : {champ ?} et hop (sous entendu que ta valeur arrive dans #ENV{champ}).

Lire par exemple :
- Critères optionnels - Programmer avec SPIP 4
- Critères optionnels avec opérateurs - Programmer avec SPIP 4

Sinon, faut vraiment feinter avec une expression régulière ou une condition
que tu sais systématiquement vraie…

Du style (non testé) :
{champ == #ENV{champ_filtre}|?{^#ENV{champ_filtre}$,.*}}

Sinon encore, faire 2 boucles.

La première avec {si #ENV{champ_filtre}}{champ=#ENV{champ_filtre}}, la
seconde avec {si #ENV{champ_filtre}|non}

MM.
_______________________________________________
liste spip
spip@rezo.net - désabonnement : envoyer un mail à spip-off@rezo.net

Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Discuter chez rezo.net

Documentation de SPIP : http://www.spip.net/

Irc : de l'aide à toute heure : http://spip.net/irc