Boucle selon valeur balise...

Bonjour à tous :slight_smile:

Petite question :
Existe-t-il une méthode "miracle" pour conditionner
le déclenchement ou non d'une boucle selon la valeur
d'une balise ?

Par exemple :

[(#BALISE|=={valeur}|?{' ',''})
<BOUCLE_test(ARTICLES) {id_rubrique}>
blabla
</BOUCLE>
]

Évidemment, ceci ne fonctionne pas :frowning:

J'ai pensé alors utiliser les inclusions, mais le problème
est que les critères "doublons" (nommés ou pas) ne sont
plus utilisables avec plusieurs inclusions...

Voilà... en l'état, c'est la quadrature du cercle :

- impossible de "boucler" dans une balise ;
- impossible de "dédoublonner" avec des inclusions.

Comment faire alors ?

Toute piste est la bienvenue... merci de vos lumières :slight_smile:

Fredo

FredoMkb wrote:

Existe-t-il une méthode "miracle" pour conditionner le déclenchement ou non d'une boucle selon la valeur d'une balise ?

utilise une fausse vraie boucle qui servira de testeur
(astuce donnée ici-même par RealET <http://comments.gmane.org/gmane.comp.web.spip.user/119136&gt;\)

<BOUCLE_test_01(ARTICLES){0,1}>[(#BALISE|=={valeur01}|?{' ',''})]</BOUCLE_test_01>
<BOUCLE_test01(ARTICLES) {id_rubrique}>
blabla
</BOUCLE_test01>
</B_test_01>
<BOUCLE_test_02(ARTICLES){0,1}>[(#BALISE|=={valeur02}|?{' ',''}]</BOUCLE_test_02>
<BOUCLE_test02(ARTICLES) {id_rubrique}>
blabla
</BOUCLE_test02>
</B_test_02>
<BOUCLE_test(ARTICLES) {id_rubrique}>
blabla
</BOUCLE_test>
<//B_test_02>
<//B_test_01>

si BALISE = valeur01, alors la boucle test_01 retourne un espace, donc quelque chose, et la partie entre </BOUCLE_test_01 et </B_test_01> est exécutée ;
sinon si BALISE = valeur02, alors la boucle test_02 retourne un espace, donc quelque chose, et la partie entre </BOUCLE_test_02 et </B_test_02> est exécutée
sinon, par défaut, boucle test est exécutée

Re...

denisb <denisb <at> laposte.net> writes:

FredoMkb wrote:
> Existe-t-il une méthode "miracle" pour conditionner
> le déclenchement ou non d'une boucle selon la valeur
> d'une balise ?

utilise une fausse vraie boucle qui servira de testeur
(astuce donnée ici-même par RealET
<http://comments.gmane.org/gmane.comp.web.spip.user/119136&gt;\)

<BOUCLE_test_01(ARTICLES){0,1}>[(#BALISE|=={valeur01}|?{'
',''})]</BOUCLE_test_01>
<BOUCLE_test01(ARTICLES) {id_rubrique}>
blabla
</BOUCLE_test01>
</B_test_01>
<BOUCLE_test_02(ARTICLES){0,1}>[(#BALISE|=={valeur02}|?{'
',''}]</BOUCLE_test_02>
<BOUCLE_test02(ARTICLES) {id_rubrique}>
blabla
</BOUCLE_test02>
</B_test_02>
<BOUCLE_test(ARTICLES) {id_rubrique}>
blabla
</BOUCLE_test>
<//B_test_02>
<//B_test_01>

si BALISE = valeur01, alors la boucle test_01 retourne un espace, donc
quelque chose, et la partie entre </BOUCLE_test_01 et </B_test_01> est
exécutée ;
sinon si BALISE = valeur02, alors la boucle test_02 retourne un espace,
donc quelque chose, et la partie entre </BOUCLE_test_02 et </B_test_02>
est exécutée
sinon, par défaut, boucle test est exécutée

Wouw !!!

Merci pour cette piste, ce n'est pas ce que j'appellerai une solution
vraiment "élégante", mais ça devrait me rendre bien service...

Merci beaucoup, je m'en vais tester tout ça dans la foulée...
Je vous tiendrai au courant, encore merci !

à+ :slight_smile:
Fredo