Objectif
On veut une liste d’articles triés par année et par mois affichés dans une imbrication de listes non-enumérées. Exemple :
- 2005
- octobre
- article truc
- article bidule
- novembre
- autre article truc
- décembre
- autre article bidule
- octobre
- 2006
- janvier
- bonne année
- février
- bonne fièvre
- mars
- etc
- etc
- etc...
- janvier
La boucle
En fait, les boucles (il y en a 3) :
<B1>
<ul>
<BOUCLE1(ARTICLES){par date}{inverse}{fusion YEAR(date)}>
<li>[(#DATE|annee)]
<B2>
<ul>
<BOUCLE2(ARTICLES){annee_relatif}
{par date}{inverse}{lang_select=non}
{fusion MONTH(date)}>
<li>[(#DATE|nom_mois)]
<B3>
<ul>
<BOUCLE3(ARTICLES){mois_relatif}
{par date}{inverse}>
<li><a href="#URL_ARTICLE">#TITRE</a></li>
</BOUCLE3>
</ul>
</B3>
</li>
</BOUCLE2>
</ul>
</B2>
</li>
</BOUCLE1>
</ul>
</B1>
Explications
3 boucles parce que 3 niveaux de listes : l’année, le mois, le titre de l’article.
La BOUCLE1 trie les articles dans l’ordre chronologique ({par date}{inverse}
) mais dont les résultats seront groupés par année ({fusion YEAR(date)}
).
Le critère fusion ajoute une clause GROUP BY à la requête SQL, et on a la possibilité d’y appliquer une formule que le serveur de base de donnée comprendra pour extraire l’année du champ date de chaque article et effectuer le regroupement sur cette valeur.
La BOUCLE2 récupère les articles de l’année en cours ({annee_relatif}
). Comme la précédente, elle trie dans l’ordre chronologique mais les résultats sont groupés par mois ({fusion MONTH(date)}
).
La BOUCLE3 récupère les articles du mois en cours ({mois_relatif}
) et les trie dans l’ordre chronologique.
À noter, la présence du critère {lang_select=non}
dans la seconde boucle. Sa fonction est d’empêcher l’écriture des noms des mois dans des langues différente afin que la liste soit homogène.
Discussions par date d’activité
Une discussion
Juste parce que ça pourrait être pris pour un bug, mais ça ne marche pas forcément avec une boucle DATA.
Voir : https://git.spip.net/spip/spip/-/issues/4295#note_181299
Répondre à ce message
Ajouter un commentaire
Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :
Merci d’avance pour les personnes qui vous aideront !
Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.
Suivre les commentaires : |