[spip-dev] une boucle recursive dans une boucle statique

Bonjour,

Avec la 1.8b2 CVS, la boucle récursive située dans le code ci-dessous ne parvient pas à extraire correctement la balise #_racine_forums_parents:ID_FORUM qui fait référence à une boucle englobante. Tout se passe comme si la balise était aspirée à l'intérieur de la récurrence (alors que dans ce qui suit, elle devrait toujours valoir 330).

Salutations

Yves Grenier

--------- le résultat:
  Forum courant 330, _racine_forums_parents -> 330
     * Forum courant 331, _racine_forums_parents -> 330
           o Forum courant 334, _racine_forums_parents -> 331
                 + Forum courant 336, _racine_forums_parents -> 334

-------- le code avec la boucle qui pose problème:

<BOUCLE_forum_principal(FORUMS) {id_forum}>
<!-- remonter a l'origine du fil -->
<BOUCLE_racine_forums_parents(FORUMS){id_thread}>
<!-- deplier tout le fil -->
<ul class="forum-total">
  <li>
    Forum courant #ID_FORUM, _racine_forums_parents
    -> #_racine_forums_parents:ID_FORUM

    <!-- les forums qui en decoulent -->
    <div class="forum-indent">
    <B_forums_fils>
      <ul>
    <BOUCLE_forums_fils(FORUMS){id_parent}{par date}>
        <li>
          Forum courant #ID_FORUM,
          _racine_forums_parents ->
          #_racine_forums_parents:ID_FORUM
        </li>
        <div class="forum-indent">
    <BOUCLE_Forums_Fils_Boucle(boucle_forums_fils)> </BOUCLE_Forums_Fils_Boucle>
        </div>
    </BOUCLE_forums_fils>
      </ul>
    </B_forums_fils>
    </div>
    <!-- fermer le fil complet -->
  </li>
</ul>
<!-- fin de la boucle pour deplier tout le fil -->
</BOUCLE_racine_forums_parents>
</BOUCLE_forum_principal>

Oui, c'est une limitation du compilateur actuel: la localisation des champs se fait à la compilation,
or dans une boucle récursive on ne peut pas. Ce n'est pas rédhibitoire, mais ça exige d'écrire du code spécifique
pour "sauter" les blocs récursifs de la boucle. Je le ferai à terme, mais ce n'est pas dans mes priorités, et actuellement il faut considérer que la notation #nom-deboucle:nom-de-champ n'est pas disponible dans une boucle récursive.

      Emmanuel