[spip-dev] 12076 {branche} ne peut pas être utilisé sur une boucle (FORUMS)

Avec le squelette suivant :

<BOUCLE_Secteurs(RUBRIQUES){racine}>
<h2>[(#TITRE)]</h2>
  <BOUCLE_Forums(FORUMS){branche}>
#TITRE<br />
  </BOUCLE_Forums>
</BOUCLE_Secteurs>

je n'ai que les titres des rubriques affichés, et aucun titre de forums (il y a des forums dans le site).

Avec {id_secteur} à la place de {branche}, c'est bon, mais c'est parce que je suis dans le cas particulier où branche est équivalent à secteur puisque je suis à la racine.

Donc, {branche} semble cassé en l'état.
En tout cas, c'est ce que j'en comprend en lisant la doc de http://www.spip.net/fr_article900.html#branche puisque (FORUMS) a un #ID_RUBRIQUE possible (qui peut lui venir de son #ID_ARTICLE).

Non seuls les forums associés à des rubriques ont un id_rubrique...
pas ceux qui sont liés à des articles contenus dans les rubriques en
question.

C'est d'ailleurs pénible, mais trop de risques à mettre ça en chantier
pour la 2.0

Ce que je fais pour cela : deux boucles.
La première liste les ID_ARTICLE de la {branche} et les stocke dans un
#ARRAY ; la seconde récupère tous les forums liés à un id_article dans
ce #ARRAY :

    [(#REM) Liens des forums ]
    #SET{l,#ARRAY}
    <BOUCLE_lesarticles(ARTICLES){id_secteur}>[(#SET{l,
      [(#GET{l}|push{#ID_ARTICLE})]})]</BOUCLE_lesarticles>
    <B_forums_liens>
    <div class="menu forums">
      <h2>Derniers commentaires</h2>
      <ul>
        <BOUCLE_forums_liens(FORUMS) {id_article IN #GET{l}} {plat}
        {!par date_heure} {0,12}>
        <li>[(#AUTEUR)&nbsp;: ]<a href="#URL_FORUM"[
          title="(#TITRE|couper{60}|texte_backend)" [(#TEXTE|couper{80}|typo)]</a>
        [<small>[(#DATE|affdate_court) ]@(#DATE|heures):[(#DATE|minutes)
</small>]</li>
        </BOUCLE_forums_liens>
      </ul>
    </div>
    </B_forums_liens>

-- Fil

plus ou moins connexe, il y a un ticket sur ce sujet :
http://trac.rezo.net/trac/spip/ticket/980

* Fil tapuscrivait, le 15/07/2008 23:35:
Merci pour ta réponse.
C'est effectivement un moyen de contourner.

Mais en fait, j'ai "forgé" cet exemple pour voir si en SPIP natif, je pouvais avoir le même bug que http://permalink.gmane.org/gmane.comp.web.spip.devel/48562

Dans les 2 cas, on a :
- T1 en relation avec spip_articles
- on veut faire une requête sur id_rubrique de spip_article ou branche de spip_article

Et avant les jointures sur les objets des dernières modifications des mots clefs, ça marchait pour agenda (pas pour forums)

Je dis peut être une bêtise Fil, mais cela n'est-il pas la même chose :

<BOUCLE_f(FORUMS){articles.id_secteur=#ID_SECTEUR}{plat}{!par date_heure} {0,12}>
- #ID_FORUM - #TITRE<br />
</BOUCLE_f>

Syntaxe uniquement valable en SPIP 2.0, et introduite magiquement par http://trac.rezo.net/trac/spip/changeset/11161

Par ailleurs, cela permet aussi :

<BOUCLE_f(FORUMS){articles.id_rubrique=#ID_RUBRIQUE}{plat}>
- #ID_FORUM - #TITRE<br />
</BOUCLE_f>

Et plein d'autres choses :wink:

MM.

Fil a écrit :

Excellent !

vérification faite il fallait ajouter les deux critères de statut :
article publié *et* forum publié. Si on ne fait rien on a le critère
par défaut "forum publié", ce qui est insuffisant ; et si on ajoute
{articles.statut=publie}, le critère "forum publié" disparaît : il
faut donc le remettre explicitement.

<BOUCLE_f(FORUMS){articles.id_secteur=#ID_SECTEUR}{statut=publie}{articles.statut=publie}{plat}{!par
date_heure} {0,12}>
- #ID_FORUM - #TITRE<br />
</BOUCLE_f>

permet de fermer le ticket http://trac.rezo.net/trac/spip/ticket/980