branchement conditionnel sur #ENV

Bonjour,

ça fait des heures que je ma'rrache les cheveux avec un truc apparemment tout con : le branchement conditionnel en fonction d'une variable (d'environnement).

mon pb est le suivant :
je veux afficher une liste d'article dans un tableau et donner au visiteur la possibilité de trier selon les champs presents. j'ai un champ auteur, ce qui implique d'avoir deux boucles :

1- boucle ARTICLES pour afficher par titre, date, id_article
2- boucle AUTEURS puis ARTICLES pour afficher par nom

mes deux boucles fonctionnent bien independemment quand je les utilise avec le(s) critère de tri approprié(s).

le choix de la boucle est définit par #ENV{tri}

solution 1:

[(#ENV{tri}|=={'nom'}|?{
mes boucles AUTEURS et ARTICLES (tri par auteur)
,
ma boucle ARTICLES (tri par champ article)
})]

solution 2:

[(#ENV{tri}|=={'nom'}|?{' ',''})
mes boucles AUTEURS et ARTICLES (tri par auteur)
]

[(#ENV{tri}|!={'nom'}|?{' ',''})
ma boucle ARTICLES (tri par champ article)
]

mais dans les deux cas je vois l'instruction [(mon_critere|=={'nom'}|?{ , })] affiché dans mon navigateur, elle n'est pas interprété !

j'ai essayé de remplacé #ENV par un #GET{tri} apres avoir fait un #SET{tri,#ENV{tri,titre}}

Quelque chose m'échappe, j'ai pourtant vu de nombreux exemples qui utilisent de tels types de branchement.... je comprends pas !

Si vous avez une idéee, merci

On Thu, 2007-03-01 at 10:56 +0100, Frank wrote:

[(#ENV{tri}|=={'nom'}|?{
mes boucles AUTEURS et ARTICLES (tri par auteur)
,
ma boucle ARTICLES (tri par champ article)
})]

On ne peut pas imbriquer une boucle dans une balise.
Si tu veux écrire ça, il faut utiliser des INCLURE pour chaque
boucle, ou utiliser la "boucle if" définie dans le plugin "boucles
sans tables"

--
À+, Pif.

il faut remplacer les boucles par des fichiers inclus contenant les boucles cela
marchera apres.

Cordialement,

Xavier BUROT

Selon christian lefebvre <christian.lefebvre@atosorigin.com>:

On Thu, 2007-03-01 at 10:56 +0100, Frank wrote:
> [(#ENV{tri}|=={'nom'}|?{
> mes boucles AUTEURS et ARTICLES (tri par auteur)
> ,
> ma boucle ARTICLES (tri par champ article)
> })]

On ne peut pas imbriquer une boucle dans une balise.
Si tu veux écrire ça, il faut utiliser des INCLURE pour chaque
boucle, ou utiliser la "boucle if" définie dans le plugin "boucles
sans tables"

--
À+, Pif.
_______________________________________________
liste spip
spip@rezo.net - désabonnement : spip-off@rezo.net
Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Documentation de SPIP : http://www.spip.net/
irc://irc.freenode.net/spip
FAQ : http://www.spip-contrib.net/spikini/FaQ

Merci pour cet éclaircissement, ça simplifie pas la vie mais bon si c'est le seul moyen allons-y.

en revanche je bute pour passer mon parametre de tri à mon inclure, j'ai écris ceci :

<INCLURE{fond=tri_article_par_champ}{id_rubrique}{tri=#GET{tri}}>

et dans mon fichier inclus :

<BOUCLE_liste_projets(ARTICLES) {id_rubrique}{tri}>

mais j'ai une erreur car spip n'évalue pas tri comme étant égal à titre ou id_article ou ...

Xavier BUROT a écrit :

il faut remplacer les boucles par des fichiers inclus contenant les boucles cela
marchera apres.

Cordialement,

Xavier BUROT
http://xebiaut.free.fr

Selon christian lefebvre <christian.lefebvre@atosorigin.com>:

On Thu, 2007-03-01 at 10:56 +0100, Frank wrote:

[(#ENV{tri}|=={'nom'}|?{
mes boucles AUTEURS et ARTICLES (tri par auteur)
,
ma boucle ARTICLES (tri par champ article)
})]

On ne peut pas imbriquer une boucle dans une balise.
Si tu veux écrire ça, il faut utiliser des INCLURE pour chaque
boucle, ou utiliser la "boucle if" définie dans le plugin "boucles
sans tables"

--
À+, Pif.
_______________________________________________
liste spip
spip@rezo.net - désabonnement : spip-off@rezo.net
Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Documentation de SPIP : http://www.spip.net/
irc://irc.freenode.net/spip
FAQ : http://www.spip-contrib.net/spikini/FaQ

On Thu, 2007-03-01 at 12:41 +0100, Frank wrote:

Merci pour cet éclaircissement, ça simplifie pas la vie mais bon si
c'est le seul moyen allons-y.

La "boucle if" permet d'éviter des "inclure" que pour ça, et evite donc
de paumer en route des elements de l'ENV

en revanche je bute pour passer mon parametre de tri à mon inclure, j'ai
écris ceci :

<INCLURE{fond=tri_article_par_champ}{id_rubrique}{tri=#GET{tri}}>

plutot
<INCLURE{fond=tri_article_par_champ}{id_rubrique}{tri=#ENV{tri}}>
voir
<INCLURE{fond=tri_article_par_champ}{id_rubrique}{tri}>

et dans mon fichier inclus :

<BOUCLE_liste_projets(ARTICLES) {id_rubrique}{tri}>

plutot
<BOUCLE_liste_projets(ARTICLES) {id_rubrique}{par #ENV{tri}}>

--
À+, Pif.

christian lefebvre a écrit :

On Thu, 2007-03-01 at 12:41 +0100, Frank wrote:

Merci pour cet éclaircissement, ça simplifie pas la vie mais bon si c'est le seul moyen allons-y.

La "boucle if" permet d'éviter des "inclure" que pour ça, et evite donc
de paumer en route des elements de l'ENV

en revanche je bute pour passer mon parametre de tri à mon inclure, j'ai écris ceci :

<INCLURE{fond=tri_article_par_champ}{id_rubrique}{tri=#GET{tri}}>

plutot
<INCLURE{fond=tri_article_par_champ}{id_rubrique}{tri=#ENV{tri}}>
voir
<INCLURE{fond=tri_article_par_champ}{id_rubrique}{tri}>

et dans mon fichier inclus :

<BOUCLE_liste_projets(ARTICLES) {id_rubrique}{tri}>

plutot
<BOUCLE_liste_projets(ARTICLES) {id_rubrique}{par #ENV{tri}}>

merci beaucoup, j'ai compris le pb

J'utilise #GET{#ENV{tri},'titre'}} pour avoir un critere par defaut.

dans l'inclure il faut passer la parametre {critere_tri=#VARIABLE}

et le récuperer dans l'inclusion {par #ENV{critere_tri}}

et ça marche nickel ! reste plus qu'à faire des tris inverse...

merci beaucoup

Frank

On Thu, 2007-03-01 at 13:10 +0100, Frank wrote:

J'utilise #GET{#ENV{tri},'titre'}} pour avoir un critere par defaut.

et pourquoi pas simplement #ENV{tri,titre} ?

--
À+, Pif.

il te faut mettre dans le fichier inclus le parametre {#ENV{tri}} et non {tri}.

Xavier BUROT

Selon Frank <frkdavid2@free.fr>:

Merci pour cet éclaircissement, ça simplifie pas la vie mais bon si
c'est le seul moyen allons-y.

en revanche je bute pour passer mon parametre de tri à mon inclure, j'ai
écris ceci :

<INCLURE{fond=tri_article_par_champ}{id_rubrique}{tri=#GET{tri}}>

et dans mon fichier inclus :

<BOUCLE_liste_projets(ARTICLES) {id_rubrique}{tri}>

mais j'ai une erreur car spip n'évalue pas tri comme étant égal à titre
ou id_article ou ...

Xavier BUROT a écrit :
> il faut remplacer les boucles par des fichiers inclus contenant les boucles
cela
> marchera apres.
>
> Cordialement,
>
> Xavier BUROT
> http://xebiaut.free.fr
>
>
> Selon christian lefebvre <christian.lefebvre@atosorigin.com>:
>
>> On Thu, 2007-03-01 at 10:56 +0100, Frank wrote:
>>> [(#ENV{tri}|=={'nom'}|?{
>>> mes boucles AUTEURS et ARTICLES (tri par auteur)
>>> ,
>>> ma boucle ARTICLES (tri par champ article)
>>> })]
>> On ne peut pas imbriquer une boucle dans une balise.
>> Si tu veux écrire ça, il faut utiliser des INCLURE pour chaque
>> boucle, ou utiliser la "boucle if" définie dans le plugin "boucles
>> sans tables"
>>
>> --
>> À+, Pif.
>> _______________________________________________
>> liste spip
>> spip@rezo.net - désabonnement : spip-off@rezo.net
>> Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
>> Documentation de SPIP : http://www.spip.net/
>> irc://irc.freenode.net/spip
>> FAQ : http://www.spip-contrib.net/spikini/FaQ
>>

_______________________________________________
liste spip
spip@rezo.net - désabonnement : spip-off@rezo.net
Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Documentation de SPIP : http://www.spip.net/
irc://irc.freenode.net/spip
FAQ : http://www.spip-contrib.net/spikini/FaQ

Xavier BUROT a écrit :

il te faut mettre dans le fichier inclus le parametre {#ENV{tri}} et non {tri}.

heu, c'est pas plutot {par #ENV{tri}} ?