#MODELE dans une boucle

Bonjour à tous,

Une petite chose que je comprends pas bien avec les #MODELE. Rien de grave, mais la compréhension de ce petit truc m'éclairerait beaucoup sur le fonctionnement de SPIP.

J'ai besoin d'un #MODELE pour afficher les résultats de plusieurs boucles d'une façon unique. Si j'en prends une, par exemple celle ci :

<B_billets_mots>
  <h5>Billets du blog (#GRAND_TOTAL)</h5>
  <ul class="tous-les-elements">
    <BOUCLE_billets_mots(ARTICLES) {id_mot} {id_secteur=16} {statut=publie} {par date} {inverse} {pagination}>
      [(#MODELE{recherche-afficher-billet})]
    </BOUCLE_billets_mots>
  </ul>
  [<p class="pagination">(#PAGINATION)</p>]
</B_billets_mots>

et avec le contenu de mon #MODELE contenant ceci (pour simplifier bien sur, je ferais pas un #MODELE pour une pauvre ligne comme ça) :

<li id="element-mot#ID_ARTICLE" class="un-element"><a href='[(#URL_ARTICLE)]' title="Lire le billet">[(#TITRE)]</a></li>

... je n'ai alors qu'un résultat partiel. #ID_ARTICLE est correctement remplacé, idem pour #URL_ARTICLE, mais #TITRE est absolument vide. Je précise que cette ligne fonctionne parfaitement si je la sors du modèle pour la mettre directement dans la boucle (cad : d'un point de vue bdd, tout est ok).

Alors, évidemment, la question c'est pourquoi ? Ne peut-on pas utiliser les modèles de cette façon ?

Merci d'éclairer ma lanterne,

Jonathan

Je ne sais pas pourquoi ça marche avec #ID_ARTICLE...
Je passerais id_article en paramètre du modèle
et encapsulerais le squelette du modele dans une boucle
(ARTICLES){id_article}
(ou au pire : {id_article=#ENV{id_article}})
JLuc

Jonathan a écrit :

Bonjour à tous,

Une petite chose que je comprends pas bien avec les #MODELE. Rien de grave, mais la compréhension de ce petit truc m'éclairerait beaucoup sur le fonctionnement de SPIP.

J'ai besoin d'un #MODELE pour afficher les résultats de plusieurs boucles d'une façon unique. Si j'en prends une, par exemple celle ci :

<B_billets_mots>
    <h5>Billets du blog (#GRAND_TOTAL)</h5>
    <ul class="tous-les-elements">
        <BOUCLE_billets_mots(ARTICLES) {id_mot} {id_secteur=16} {statut=publie} {par date} {inverse} {pagination}>
            [(#MODELE{recherche-afficher-billet})]
        </BOUCLE_billets_mots>
    </ul>
    [<p class="pagination">(#PAGINATION)</p>]
</B_billets_mots>

et avec le contenu de mon #MODELE contenant ceci (pour simplifier bien sur, je ferais pas un #MODELE pour une pauvre ligne comme ça) :

<li id="element-mot#ID_ARTICLE" class="un-element"><a href='[(#URL_ARTICLE)]' title="Lire le billet">[(#TITRE)]</a></li>

... je n'ai alors qu'un résultat partiel. #ID_ARTICLE est correctement remplacé, idem pour #URL_ARTICLE, mais #TITRE est absolument vide. Je précise que cette ligne fonctionne parfaitement si je la sors du modèle pour la mettre directement dans la boucle (cad : d'un point de vue bdd, tout est ok).

Alors, évidemment, la question c'est pourquoi ? Ne peut-on pas utiliser les modèles de cette façon ?

Merci d'éclairer ma lanterne,

Jonathan

JLuc a écrit :

Je ne sais pas pourquoi ça marche avec #ID_ARTICLE...

C'est justement là mon interrogation... comment cela peut-il fonctionner qu'à moitié ? Peut-on appeler ça un bug ?

Je passerais id_article en paramètre du modèle
et encapsulerais le squelette du modele dans une boucle
(ARTICLES){id_article}
(ou au pire : {id_article=#ENV{id_article}})

En effet, on peut contourner le problème en rajoutant une boucle comme tu le dis, ça fonctionne très bien... merci pour l'idée.