Derniers messages de l’ensemble des forums

Comment afficher pour l’ensemble des articles d’un site une liste chronologique du dernier message forum de chacun des articles ?

Testé avec Spip 2.1.10

Dans Spip les propriétés des articles permettent que chaque article soit suivi d’un forum de discussion.

Un visiteur régulier du site souhaite savoir d’un coup d’oeil quels articles ont eu de nouveaux commentaires dans leur forum. Pour cela on doit créer une liste chronologique du dernier message forum reçu par chacun des articles. Disons par exemple depuis 2 mois. Cette liste ne doit comporter que le dernier message de chaque article, et non pas tous les messages reçus par chaque article depuis 2 mois. Cette liste doit aussi éliminer certaines rubriques et secteurs qu’on ne veut pas montrer sur la page affichée compte tenu du thème de la page, par exemple.

En Spip cela ne peut pas se résoudre par une boucle article, ni par une boucle forum. Par contre l’imbrication de deux boucles et l’utilisation du filtre « doublons » conduit au résultat recherché.

On peut voir le résultat ici en bas de page d’accueil : http://www.plaisance-pratique.com/

Explication :

  • La première boucle "doublons" permet d’éliminer tous les fils de discussion des secteurs X,Y,Z
  • La seconde boucle "doublons" éliminera tous les fils des rubriques X,Y,Z
  • La troisième boucle assure deux fonctions :
    • ne pas montrer des résultats qui appartiennent aux secteurs/rubriques X,Y,Z grâce au filtre "doublons"
    • afficher une liste des 40 derniers messages, et ceci en ne montrant que le dernier message de chaque article grâce au filtre "doublons", la base de donnée n’est examinée que sur les 60 jours derniers jour.
<!-- Si on veut cacher les réponses forum des articles des secteurs X,Y,Z-->
<BOUCLE_supp_rub_cache(ARTICLES){id_secteur IN X,Y,Z}{tout_voir}>
    <BOUCLE_supp_cache(FORUMS){id_article}{plat}{doublons}>
    </BOUCLE_supp_cache>
</BOUCLE_supp_rub_cache>  
<!-- Si on veut cacher les réponses forum des articles des rubriques X,Y,Z-->
<BOUCLE_supp_rub_cach(ARTICLES){id_rubrique IN X,Y,Z}{tout_voir}>
    <BOUCLE_supp_cach(FORUMS){id_article}{plat}{doublons}>
    </BOUCLE_supp_cach>
</BOUCLE_supp_rub_cach>

<!-- on affiche la liste de 40 items : l'auteur du dernier message, l'URL du message forum, et le titre de l'article -->
<B_sujet_forum>
        #SET{i,0}
        <ul>
        <BOUCLE_sujet_forum(FORUMS){plat}{doublons}{par date}{inverse}{age<60}>
                <B_arti>
                        [(#GET{i}|<={40}|oui)
                        <li>[(#DATE|jour)]-[(#DATE|mois)]
                        ]
                        <BOUCLE_arti(ARTICLES){id_article}{doublons}>
                                [(#GET{i}|<={40}|oui)
                                <a href="#URL_AUTEUR" title="[(#NOM)]">[(#NOM)] : &nbsp;                                
                                <a href="#URL_FORUM" title="[(#TITRE)]">&nbsp;[(#TITRE)]</a></li>
                                ]
                        </BOUCLE_arti>
                        #SET{i,#GET{i}|plus{1}}
                </B_arti>                        
        </BOUCLE_sujet_forum>
        </ul>
</B_sujet_forum>                

Discussion

Aucune discussion

Ajouter un commentaire

Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom

Dernière modification de cette page le 2 mai 2012