[SPIP Zone] critere conditionnel

Bonjour

Je voudrais eviter de dupliquer du code. Donc je cherche une solution rendant conditionnel un critere

[(#SET{mon_tableau, [(#ENV{docs}|explode{','})]})]

Si #ENV{docs} existe :
<BOUCLE_img(DOCUMENTS){id_article=#ENV{id}}{id_document IN #GET{mon_tableau}}>
Sinon :
<BOUCLE_img(DOCUMENTS){id_article=#ENV{id}}>
...
</BOUCLE_img>

J'essaye avec ?IN, ca ne fonctionne pas
Avec une boucle d'exclusion, ca ne doit pas fonctionner non plus, car on ne peut mettre de boucle dans un test...

Une piste ?

--
-------
Yffic Cloarec, Espace Culture Multimedia du Fourneau

---------------------------------------
Le Fourneau, Centre national des arts de la rue [en Bretagne] : http://www.lefourneau.com
Portail rue : http://www.cliclarue.info
Liste de diffusion "arts de la rue" : http://www.lefourneau.com/liste_diffusion

Le 23/06/10 18:42, Yffic a écrit :

Je voudrais eviter de dupliquer du code. Donc je cherche une solution
rendant conditionnel un critere
Une piste ?

hors INCLURE point de salut...

Le 23/06/2010 21:50, denisb a écrit :

Le 23/06/10 18:42, Yffic a écrit :

Je voudrais eviter de dupliquer du code. Donc je cherche une solution
rendant conditionnel un critere
Une piste ?

hors INCLURE point de salut...

Mon dieu :wink:

--
-------
Yffic Cloarec, Espace Culture Multimedia du Fourneau

---------------------------------------
Le Fourneau, Centre national des arts de la rue [en Bretagne] : http://www.lefourneau.com
Portail rue : http://www.cliclarue.info
Liste de diffusion "arts de la rue" : http://www.lefourneau.com/liste_diffusion

Le 23/06/2010 21:50, denisb a écrit :
> Le 23/06/10 18:42, Yffic a écrit :
>> Je voudrais eviter de dupliquer du code. Donc je cherche une solution
>> rendant conditionnel un critere
>> Une piste ?
>
> hors INCLURE point de salut...
>

Ou alors la bonne vieille boucle feinte, mais bon c'est pas le top...

++
b_b

Le 23/06/10 22:24, Bruno Bergot a écrit :

Le 23/06/2010 21:50, denisb a écrit :
> Le 23/06/10 18:42, Yffic a écrit :
>> Je voudrais eviter de dupliquer du code. Donc je cherche une solution
>> rendant conditionnel un critere
>> Une piste ?
> hors INCLURE point de salut...
Ou alors la bonne vieille boucle feinte, mais bon c'est pas le top...

bon.
tout le monde s'assoit parce que c'est chaud...

<BOUCLE_img(DOCUMENTS)
     {id_document==^((#ENV{docs}|replace{',',|}|sinon{.*}))$}>

si #ENV{docs} existe sous la forme 1,2,3,4
la requête sql produite est :
   AND (documents.id_document REGEXP '^(1|2|3|4)$')

si #ENV{docs} n'existe pas, ou pas sous la forme 1,2,3,4
la requête sql produite est :
   AND (documents.id_document REGEXP '^(.*)$')

on notera (pour les plus attentifs) l'écriture
particulièrement particulière avec les *doubles* parenthèses !

"que la paix soit sur vous"

Yes, ca fonctionne... Alors la bravo !

Le 23/06/2010 22:34, denisb a écrit :

bon.
tout le monde s'assoit parce que c'est chaud...

<BOUCLE_img(DOCUMENTS)
    {id_document==^((#ENV{docs}|replace{',',|}|sinon{.*}))$}>

si #ENV{docs} existe sous la forme 1,2,3,4
la requête sql produite est :
  AND (documents.id_document REGEXP '^(1|2|3|4)$')

si #ENV{docs} n'existe pas, ou pas sous la forme 1,2,3,4
la requête sql produite est :
  AND (documents.id_document REGEXP '^(.*)$')

on notera (pour les plus attentifs) l'écriture
particulièrement particulière avec les *doubles* parenthèses !

"que la paix soit sur vous"

_______________________________________________
spip-zone@rezo.net - http://listes.rezo.net/mailman/listinfo/spip-zone

--
-------
Yffic Cloarec, Espace Culture Multimedia du Fourneau

---------------------------------------
Le Fourneau, Centre national des arts de la rue [en Bretagne] : http://www.lefourneau.com
Portail rue : http://www.cliclarue.info
Liste de diffusion "arts de la rue" : http://www.lefourneau.com/liste_diffusion

Bonjour,
J'en ai pas l'utilité tout de suite, mais c'est un truc à se mettre au chaud pour le jour idoine !

Merci !

**"et avec ton esprit"

Le 23/06/2010 22:34, denisb a écrit :

bon.
tout le monde s'assoit parce que c'est chaud...

<BOUCLE_img(DOCUMENTS)
    {id_document==^((#ENV{docs}|replace{',',|}|sinon{.*}))$}>

si #ENV{docs} existe sous la forme 1,2,3,4
la requête sql produite est :
  AND (documents.id_document REGEXP '^(1|2|3|4)$')

si #ENV{docs} n'existe pas, ou pas sous la forme 1,2,3,4
la requête sql produite est :
  AND (documents.id_document REGEXP '^(.*)$')

on notera (pour les plus attentifs) l'écriture
particulièrement particulière avec les *doubles* parenthèses !

"que la paix soit sur vous"

_______________________________________________
spip-zone@rezo.net - http://listes.rezo.net/mailman/listinfo/spip-zone

Bonjour,

J'ai a peu près la même problématique mais au niveau des dates. Je
souhaite avoir un intervalle de date.

<BOUCLE_article_date(ARTICLES){date ?>= #ENV{date_mini}}{date ?<=
#ENV{date_maxi}}>
bla bla
</BOUCLE_article_date_mini>
    
Bien évidemment, vu que la partie variable #ENV ne correspond pas à la
partie en dur (date) cela ne fonctionne pas.
cf : http://programmer.spip.org/Criteres-optionnels-avec

Est-ce que vous avez une idée de génie pour gérer ca avec la même
élégance que la solution précédente ?

Merci par avance

Le 23 juin 2010 22:34, denisb <denisb@laposte.net> a écrit :

Le 23/06/10 22:24, Bruno Bergot a écrit :

Le 23/06/2010 21:50, denisb a écrit :
> Le 23/06/10 18:42, Yffic a écrit :
>> Je voudrais eviter de dupliquer du code. Donc je cherche une solution
>> rendant conditionnel un critere
>> Une piste ?
> hors INCLURE point de salut...
Ou alors la bonne vieille boucle feinte, mais bon c'est pas le top...

bon.
tout le monde s'assoit parce que c'est chaud...

<BOUCLE_img(DOCUMENTS)
{id_document==^((#ENV{docs}|replace{',',|}|sinon{.*}))$}>

si #ENV{docs} existe sous la forme 1,2,3,4
la requête sql produite est :
AND (documents.id_document REGEXP '^(1|2|3|4)$')

si #ENV{docs} n'existe pas, ou pas sous la forme 1,2,3,4
la requête sql produite est :
AND (documents.id_document REGEXP '^(.*)$')

on notera (pour les plus attentifs) l'écriture
particulièrement particulière avec les *doubles* parenthèses !

"que la paix soit sur vous"

_______________________________________________
spip-zone@rezo.net - http://listes.rezo.net/mailman/listinfo/spip-zone

pour les dates, il y a tout plein de critères :
a commencer par
{agenda date, periode, (ENV{date_mini}|annee), (ENV{date_mini}|mois), (ENV{date_mini}|jour),(ENV{date_maxi}|annee), (ENV{date_maxi}|mois), (ENV{date_maxi}|jour)}
cf http://www.spip.net/fr_article3182.html#agenda

Sinon, dans ton cas, il est assez aisé de faire un

<BOUCLE_article_date(ARTICLES){date >= #ENV{date_mini,0000-00-00}}{date <=#ENV{date_maxi,9999-99-99}}>

Cédric

Le 29 juin 2010 à 15:04, yoann nogues a écrit :

Bonjour,

J'ai a peu près la même problématique mais au niveau des dates. Je
souhaite avoir un intervalle de date.

<BOUCLE_article_date(ARTICLES){date ?>= #ENV{date_mini}}{date ?<=
#ENV{date_maxi}}>
bla bla
</BOUCLE_article_date_mini>
    
Bien évidemment, vu que la partie variable #ENV ne correspond pas à la
partie en dur (date) cela ne fonctionne pas.
cf : http://programmer.spip.org/Criteres-optionnels-avec

Est-ce que vous avez une idée de génie pour gérer ca avec la même
élégance que la solution précédente ?

Merci par avance

Le 23 juin 2010 22:34, denisb <denisb@laposte.net> a écrit :

Le 23/06/10 22:24, Bruno Bergot a écrit :

Le 23/06/2010 21:50, denisb a écrit :
> Le 23/06/10 18:42, Yffic a écrit :
>> Je voudrais eviter de dupliquer du code. Donc je cherche une solution
>> rendant conditionnel un critere
>> Une piste ?
> hors INCLURE point de salut...
Ou alors la bonne vieille boucle feinte, mais bon c'est pas le top...

bon.
tout le monde s'assoit parce que c'est chaud...

<BOUCLE_img(DOCUMENTS)
   {id_document==^((#ENV{docs}|replace{',',|}|sinon{.*}))$}>

si #ENV{docs} existe sous la forme 1,2,3,4
la requête sql produite est :
AND (documents.id_document REGEXP '^(1|2|3|4)$')

si #ENV{docs} n'existe pas, ou pas sous la forme 1,2,3,4
la requête sql produite est :
AND (documents.id_document REGEXP '^(.*)$')

on notera (pour les plus attentifs) l'écriture
particulièrement particulière avec les *doubles* parenthèses !

"que la paix soit sur vous"

_______________________________________________
spip-zone@rezo.net - http://listes.rezo.net/mailman/listinfo/spip-zone

_______________________________________________
spip-zone@rezo.net - http://listes.rezo.net/mailman/listinfo/spip-zone

Salut,

Le 29/06/2010 15:04, yoann nogues a écrit :

Bonjour,

J'ai a peu près la même problématique mais au niveau des dates. Je
souhaite avoir un intervalle de date.

<BOUCLE_article_date(ARTICLES){date ?>= #ENV{date_mini}}{date ?<=
#ENV{date_maxi}}>
bla bla
</BOUCLE_article_date_mini>
    
Pourquoi ne pas utiliser le critère agenda pour ça ?

http://www.spip.net/fr_article3182.html#agenda

++
b_b