Salut,
Voici un moyen de signaler d'une manière spécifique les articles récents.
Problème:
Lorsque l'on navigue dans un site de rubrique en rubrique, il est agréable de se voir signaler d'une manière spécifique (par exemple, un chouette petit logo "Nouveauté") les articles publiés récemment. Dans SPIP, on utilise généralement la page du sommaire pour le faire, mais une fois dans les rubriques du site, il n'y a plus de signalisation spécifique. Surtout, si on adopte une présentation des articles "par titre", impossible de signaler là-dedans qu'un de ces articles a été mis en ligne depuis moins d'un mois (ou une semaine, au choix...).
Il existe une méthode très simple pour provoquer, à côté du titre d'un article, le fait qu'il a été publié depuis moins d'une semaine.
Voici le principe, à utiliser par exemple dans une page de RUBRIQUE:
<BOUCLE_articles(ARTICLES){id_rubrique}{par titre}>
<li>#TITRE
<BOUCLE_nouveau(ARTICLES){id_article}{age < 30}>nouveau!!!</BOUCLE_nouveau>
</BOUCLE_articles>
La première boucle (BOUCLE_articles) est connue: dans une page de rubrique, elle affiche tous les articles contenus dans cette rubrique, classés ici selon leur titre.
A l'intérieur de cette rubrique, on affiche le #TITRE de l'article (compléter de manière habituelle avec le surtitre, le soustitre, les auteurs de l'article, éventuellement l'introduction du texte et le logo).
Toujours dans cette boucle (donc effectuée pour chaque article sucessivement), à la suite du #TITRE, il y a cette boucle très simple: BOUCLE_nouveau:
on sélectionne "les" articles dont l'id_article est le #ID_ARTICLE en cours; c'est-à-dire qu'on fait une boucle qui sélectionne l'article dans lequel on se trouve déjà. Ca semble idiot à priori: si on affichait un #TITRE à l'intérieur de cette boucle, on obtiendrait exactement le titre qu'on a déjà affiché!
Le "truc", ici, consiste à ajouter un critère {age < 30}: du coup, on sélectionne l'article courant SI il a été publié depuis moins de 30 jours. Dans la boucle, on affiche donc "nouveau" (ou un zoli logo pour l'occasion) uniquement si l'article est récent. Le tour est joué.
Si vous avez bien compris, le principe est de faire une boucle qui resélectionne l'élément qu'on est justement en train d'afficher, mais en y ajoutant un critère de date ({age < 7} si on veut afficher les articles de moins d'une semaine). Vous pouvez ainsi utiliser cette même méthode pour l'affichage des messages des forums: à chaque fois que vous affichez un message du forum, vous pouvez faire une boucle du type:
<BOUCLE_nouveau_forum(FORUMS){id_forum}{age < 7}>nouveau</BOUCLE_nouveau_forum>
qui va signaler que c'est un message récent.
Amicalement,
ARNO*
--
Le Scarabée : http://www.scarabee.com
uZine 2 : http://www.uzine.net
DH/DSS, 0x11930F0B, DEEB 602D B344 644B AF88 BF73 85F4 2297 1193 0F0B