Boucler sur un tableau, un compteur, les langues, une condition ... - commentaires spip_recursions 2008-04-17T15:00:56Z https://contrib.spip.net/Boucler-sur-un-tableau-un-compteur#comment405204 2008-04-17T15:00:56Z <p>J'ai enlevé la 2<sup class="typo_exposants">e</sup> boucle imbriquée dans la boucle tableau :</p> <div class="precode"><pre class="spip_code spip_code_block" dir="ltr" style="text-align:left;"><code><B_pays_tableau> <h2>Liste des pays cochés</h2> <ul> <BOUCLE_pays_tableau(TABLEAU){var=pays}> <li>Clé : #CLE | Valeur : #VALEUR</li> </BOUCLE_pays_tableau> </ul> </B_pays_tableau> <h2>Aucun pays n'est sélectionné...</h2> <//B_pays_tableau></code></pre></div> <p>Mais j'obtiens toujours cette ligne de résultats en trop :</p> <h2>Liste des pays cochés</h2> <ul> <li>Clé : 0 | Valeur : 7</li> <li>Clé : 1 | Valeur : 89</li> <li>Clé : 2 | Valeur : 14</li> <li>Clé : 3 | Valeur : 92</li> <li>Clé : spip_recursions | Valeur : 1</li> </ul> <p>Quand aux noms de variables, je n'ai aucune idée de là où je peux agir.</p> spip_recursions 2008-04-14T19:26:00Z https://contrib.spip.net/Boucler-sur-un-tableau-un-compteur#comment405125 2008-04-14T19:26:00Z <p>Ça ressemble à un conflit entre variables de même nom, mais je n'ai jamais constaté ça.<br class="manualbr">Par contre, j'ai déjà eu des comportements louches quand il y a des boucles « normales » imbriquées dans des boucles tableau. ça ressemble bien à ton problème.<br class="manualbr">Sans être devant ce code exact, avec la même version de spip, c'est pas évident d'en dire plus, désolé</p> Boucler sur un tableau, un compteur, les langues, une condition ... 2008-04-14T18:21:25Z https://contrib.spip.net/Boucler-sur-un-tableau-un-compteur#comment405116 2008-04-14T18:21:25Z <p>Merci pour ces codes, notamment la boucle_tableau que j'utilise sur un site que je ne peux pas passer en 1.9<small class="fine d-inline"> </small>!</p> <p>Je note cependant un comportement assez étrange : la boucle tableau me retourne un élément dont la clé, au lieu de porter une valeur numérique, porte la valeur 'spip_recursions'... du coup j'ai un enregistrement de trop dans mes résultats, que j'ai beaucoup de mal à filtrer (car je fais une autre boucle derrière...)</p> <p>une boucle de ce type :</p> <div class="precode"><pre class="spip_code spip_code_block" dir="ltr" style="text-align:left;"><code> <B_pays_tableau> <h2>Liste des pays cochés</h2> <ul> <BOUCLE_pays_tableau(TABLEAU){var=pays}> <li>Clé : #CLE | Valeur : #VALEUR | Nom : <BOUCLE_nom_pays(MOTS){id_mot=#VALEUR}>#TITRE</BOUCLE_nom_pays></li> </BOUCLE_pays_tableau> </ul> </B_pays_tableau> <h2>Aucun pays n'est sélectionné...</h2> <//B_pays_tableau></code></pre></div> <p>Me donne le résultat suivant :</p> <h2>Liste des pays cochés</h2> <ul> <li>Clé : 0 | Valeur : 137 | Nom : Austria</li> <li>Clé : 1 | Valeur : 7 | Nom : Cyprus</li> <li>Clé : 2 | Valeur : 89 | Nom : Estonia</li> <li>Clé : 3 | Valeur : 10 | Nom : France</li> <li>Clé : spip_recursions | Valeur : 1 | Nom : Titre n'ayant rien à voir</li> </ul> <p>Comment se débarrasser de cet enregistrement plutôt gênant<small class="fine d-inline"> </small>?</p> <p>Merci<small class="fine d-inline"> </small>!</p> Boucler sur un tableau, un compteur, les langues, une condition ... 2008-03-28T12:17:52Z https://contrib.spip.net/Boucler-sur-un-tableau-un-compteur#comment404470 2008-03-28T12:17:52Z <p>Oui, on peut mettre plusieurs conditions, mais la syntaxe est assez ésotérique, du fait qu'on mixe du spip et du php.<br class="autobr"> Voici un exemple :</p> <div class="precode"><pre class="spip_code spip_code_block" dir="ltr" style="text-align:left;"><code><BOUCLE_si(IF){condition (#ENV{machin}|=={#MACHIN}|?{1,0}) && #ENV{truc}|=={#TRUC}|?{1,0})}>...</code></pre></div> <p>on a donc 2 conditions avec un <code class="spip_code spip_code_inline" dir="ltr">&&</code> pour faire un ET entre les 2.<br class="autobr"> chacune d'elle effectue un <code class="spip_code spip_code_inline" dir="ltr">|==</code> pour comparer à quelquechose, mais comme ce filtre ne retourne rien si la condition est fausse, il faut enchainer sur un <code class="spip_code spip_code_inline" dir="ltr">|?</code> pour avoir 0 ou 1 explicitement.</p> <p>La syntaxe <code class="spip_code spip_code_inline" dir="ltr">#ENV{machin}==#MACHIN && #ENV{truc}==#TRUC</code> nécessite de mettre des apostrophes ou des guillemets, mais dans ce cas, le parseur spip se paume. Je n'ai donc pas trouvé de solution plus simple.</p> Boucler sur un tableau, un compteur, les langues, une condition ... 2008-03-28T10:34:15Z https://contrib.spip.net/Boucler-sur-un-tableau-un-compteur#comment404466 2008-03-28T10:34:15Z <p>est ce que la boucle if accepte plusieurs conditions<small class="fine d-inline"> </small>? Je cherche à n'afficher un bloc dans un boucle article que si une des balises que je veux afficher dans le bloc est présente et sinon ne pas afficher le bloc</p> les exemples 2006-08-08T06:49:14Z https://contrib.spip.net/Boucler-sur-un-tableau-un-compteur#comment386939 2006-08-08T06:49:14Z <p>Je viens de rapatrier le tar.gz et il contient bien les fichiers. Problème de transfert lors de votre download<small class="fine d-inline"> </small>?</p> <p>Sinon, ce code existe désormais sous forme de plugins pour 1.9, <a href="http://trac.rezo.net/trac/spip-zone/browser/_plugins_/_boucles_/Boucles_sans_tables" class="spip_out" rel='nofollow external'>ici</a></p> Les exemples 2006-08-07T20:27:19Z https://contrib.spip.net/Boucler-sur-un-tableau-un-compteur#comment386936 2006-08-07T20:27:19Z <p>Bonjour,</p> <p>Je ne trouve rien dans le fichier d'archive, il semble vide. Y a-t-il une autre façon d'obtenir les exemples<small class="fine d-inline"> </small>?</p> <p>Merci d'avances</p>