Boucle pour afficher les forums de tous les articles d'une rubrique + sous rubriques

Salut,

je viens de la faire, ça fonctionne, j'en fais profiter ceux que ça
interesse.
Le principe est de permettre l'affichage des xx (10 ici) derniers
messages de forum des articles contenus dans une rubrique et ses sous
rubriques.

Le code suivant est à intégrer dans un inc-derniersforums.html qu'on
appellera dans le squelette de rubrique
par <INCLURE{fond=inc-derniersforums}{id_rubrique}>

On commence par identifier la rubrique en cours et ses sous rubriques
(L0 et L1) pour les exclure, puis (L2) on parcourt toute l'arborescence
des rubriques (sauf les précédentes donc) , de leurs articles et des
forums respectifs.

Ne reste ensuite qu'à afficher les messages de forum non pris en compte
dans L2.

<BOUCLE_L0(RUBRIQUES){id_rubrique}{doublons}></BOUCLE_L0>

<BOUCLE_L1(RUBRIQUES){id_parent}{doublons}>

  <BOUCLE_RecursiveL1(BOUCLE_L1)></BOUCLE_RecursiveL1>
</BOUCLE_L1>

<BOUCLE_L2(RUBRIQUES){racine}{doublons}>

    <BOUCLE_L21(ARTICLES){id_rubrique}>
      <BOUCLE_L211(FORUMS){id_article}{tout}{doublons}>
  </BOUCLE_L211>
    </BOUCLE_L21>

  <BOUCLE_L3(RUBRIQUES){id_parent}{doublons}>

    <BOUCLE_L4(ARTICLES){id_rubrique}>
      <BOUCLE_L5(FORUMS){id_article}{tout}{doublons}>
  </BOUCLE_L5>
    </BOUCLE_L4>

    <BOUCLE_RecursiveL3(BOUCLE_L3)></BOUCLE_RecursiveL3>

  </BOUCLE_L3>
</BOUCLE_L2>

<B_derniersforums>
<div id="derniersforums">
  <div class="titre">Forums</div>
  <ul>

    <BOUCLE_derniersforums(FORUMS){par date}{inverse}{0,10}{tout}{doublons}>
      <li>[(#DATE|affdate{'d/m'}) &ndash; ]<a
href="#URL_FORUM">#TITRE</a></li>
    </BOUCLE_derniersforums>
  </ul>
</div>
</B_derniersforums>

a+
Pascal

je te propose la meme en plus simple et avec pagination :
<BOUCLE_A(ARTICLES){branche}>
  <BOUCLE_F(FORUMS){id_article}{doublons}>
  </BOUCLE_F>
</BOUCLE_a>

<B_derniersforums>
<div id="derniersforums">
   #ANCRE_PAGINATION
   <div class="titre">Forums</div>
   [<div class="pagination">(#PAGINATION)</div>]
<ul>
     <BOUCLE_derniersforums(FORUMS){par date}{inverse}{pagination 10}{!doublons}>
       <li>[(#DATE|affdate{'d/m'}) &ndash; ]<a
href="#URL_FORUM">#TITRE</a></li>
     </BOUCLE_derniersforums>
   </ul>
</div>
</B_derniersforums>

A voir si tu veux les threads ou les messages (ajouter alors le critere {plat} à BOUCLE_F)

@++

Pascal Desroche a écrit :

Salut,

je viens de la faire, ça fonctionne, j'en fais profiter ceux que ça
interesse.
Le principe est de permettre l'affichage des xx (10 ici) derniers
messages de forum des articles contenus dans une rubrique et ses sous
rubriques.

Le code suivant est à intégrer dans un inc-derniersforums.html qu'on
appellera dans le squelette de rubrique
par <INCLURE{fond=inc-derniersforums}{id_rubrique}>

On commence par identifier la rubrique en cours et ses sous rubriques
(L0 et L1) pour les exclure, puis (L2) on parcourt toute l'arborescence
des rubriques (sauf les précédentes donc) , de leurs articles et des
forums respectifs.

Ne reste ensuite qu'à afficher les messages de forum non pris en compte
dans L2.

<BOUCLE_L0(RUBRIQUES){id_rubrique}{doublons}></BOUCLE_L0>

<BOUCLE_L1(RUBRIQUES){id_parent}{doublons}>

  <BOUCLE_RecursiveL1(BOUCLE_L1)></BOUCLE_RecursiveL1>
</BOUCLE_L1>

<BOUCLE_L2(RUBRIQUES){racine}{doublons}>

    <BOUCLE_L21(ARTICLES){id_rubrique}>
      <BOUCLE_L211(FORUMS){id_article}{tout}{doublons}>
  </BOUCLE_L211>
    </BOUCLE_L21>

  <BOUCLE_L3(RUBRIQUES){id_parent}{doublons}>

    <BOUCLE_L4(ARTICLES){id_rubrique}>
      <BOUCLE_L5(FORUMS){id_article}{tout}{doublons}>
  </BOUCLE_L5>
    </BOUCLE_L4>

    <BOUCLE_RecursiveL3(BOUCLE_L3)></BOUCLE_RecursiveL3>

  </BOUCLE_L3>
</BOUCLE_L2>

<B_derniersforums>
<div id="derniersforums">
  <div class="titre">Forums</div>
  <ul>

    <BOUCLE_derniersforums(FORUMS){par date}{inverse}{0,10}{tout}{doublons}>
      <li>[(#DATE|affdate{'d/m'}) &ndash; ]<a
href="#URL_FORUM">#TITRE</a></li>
    </BOUCLE_derniersforums>
  </ul>
</div>
</B_derniersforums>

a+
Pascal

Merci Stéphane, je ne connaissais pas cette syntaxe !doublons, et
effectivement l'approche est quand même plus limpide !

Pascal

Stephane a écrit :

je te propose la meme en plus simple et avec pagination :
<BOUCLE_A(ARTICLES){branche}>
  <BOUCLE_F(FORUMS){id_article}{doublons}>
  </BOUCLE_F>
</BOUCLE_a>

<B_derniersforums>
<div id="derniersforums">
   #ANCRE_PAGINATION
   <div class="titre">Forums</div>
   [<div class="pagination">(#PAGINATION)</div>]
<ul>
     <BOUCLE_derniersforums(FORUMS){par date}{inverse}{pagination
10}{!doublons}>
       <li>[(#DATE|affdate{'d/m'}) &ndash; ]<a
href="#URL_FORUM">#TITRE</a></li>
     </BOUCLE_derniersforums>
   </ul>
</div>
</B_derniersforums>

A voir si tu veux les threads ou les messages (ajouter alors le critere
{plat} à BOUCLE_F)

@++

Pascal Desroche a écrit :

Salut,

je viens de la faire, ça fonctionne, j'en fais profiter ceux que ça
interesse.
Le principe est de permettre l'affichage des xx (10 ici) derniers
messages de forum des articles contenus dans une rubrique et ses sous
rubriques.

Le code suivant est à intégrer dans un inc-derniersforums.html qu'on
appellera dans le squelette de rubrique
par <INCLURE{fond=inc-derniersforums}{id_rubrique}>

On commence par identifier la rubrique en cours et ses sous rubriques
(L0 et L1) pour les exclure, puis (L2) on parcourt toute l'arborescence
des rubriques (sauf les précédentes donc) , de leurs articles et des
forums respectifs.

Ne reste ensuite qu'à afficher les messages de forum non pris en compte
dans L2.

<BOUCLE_L0(RUBRIQUES){id_rubrique}{doublons}></BOUCLE_L0>

<BOUCLE_L1(RUBRIQUES){id_parent}{doublons}>

  <BOUCLE_RecursiveL1(BOUCLE_L1)></BOUCLE_RecursiveL1>
</BOUCLE_L1>

<BOUCLE_L2(RUBRIQUES){racine}{doublons}>

    <BOUCLE_L21(ARTICLES){id_rubrique}>
      <BOUCLE_L211(FORUMS){id_article}{tout}{doublons}>
  </BOUCLE_L211>
    </BOUCLE_L21>

  <BOUCLE_L3(RUBRIQUES){id_parent}{doublons}>

    <BOUCLE_L4(ARTICLES){id_rubrique}>
      <BOUCLE_L5(FORUMS){id_article}{tout}{doublons}>
  </BOUCLE_L5>
    </BOUCLE_L4>

    <BOUCLE_RecursiveL3(BOUCLE_L3)></BOUCLE_RecursiveL3>

  </BOUCLE_L3>
</BOUCLE_L2>

<B_derniersforums>
<div id="derniersforums">
  <div class="titre">Forums</div>
  <ul>

    <BOUCLE_derniersforums(FORUMS){par date}{inverse}{0,10}{tout}{doublons}>
      <li>[(#DATE|affdate{'d/m'}) &ndash; ]<a
href="#URL_FORUM">#TITRE</a></li>
    </BOUCLE_derniersforums>
  </ul>
</div>
</B_derniersforums>

a+
Pascal

_______________________________________________
liste spip
spip@rezo.net - désabonnement : spip-off@rezo.net
Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Documentation de SPIP : http://www.spip.net/
irc://irc.freenode.net/spip
FAQ : FAQ webmestre - SPIP