L’article 601 propose un calendrier d’article du même genre, mais voici une boucle abordant un problème similaire d’une façon un peu différente.
Comment ça marche ?
1-
Commençons par lister tous les articles qui nous intéressent :
<BOUCLE_article(ARTICLES){par date}{inverse}>
[(#TITRE|couper{50})]
-
[(#DATE|jour)]/[(#DATE|mois)]
</BOUCLE_article>
Une boucle toute simple, qui liste tous les articles du site, triés par date. On pourrait ajouter n’importe quel critère :
- pour limiter la boucle à une rubrique {id_rubrique=XX}
,
- pour se limiter à des articles d’un certain age {age>XX}
- etc ...
2-
La prochaine étape est la plus complexe : faire l’affichage par mois.
<BOUCLE_article(ARTICLES){par date}{inverse}>
<BOUCLE_premierdumois(ARTICLES){id_article}{doublons}>
<ul>
<b> [(#DATE|nom_mois|majuscules)] [(#DATE|annee)] </b>
<li>[(#TITRE|couper{50})]
-
[(#DATE|jour)]/[(#DATE|mois)]</li>
</BOUCLE_premierdumois>
<BOUCLE_MOIS(ARTICLES){mois_relatif=0}{doublons}{par
date}{inverse} >
<li>[(#TITRE|couper{50})]
-
[(#DATE|jour)]/[(#DATE|mois)]</li>
</BOUCLE_MOIS>
</ul>
</BOUCLE_article>
On affiche avant tout le premier article trouvé grâce à la boucle premierdumois. Comme son nom l’indique, cet article est le premier du mois. On affiche donc le nom du mois, puis le titre de l’article et sa date.
Notez le critère {doublons}
. Celui ci va nous permettre d’éliminer l’article déjà affiché des prochaines boucles.
La deuxième boucle MOIS va nous permettre d’afficher tous les autres articles du mois. En effet, le critère {mois_relatif=0}
sélectionne tous les articles du même mois que l’article en cours [1]. Grâce au critère {doublons}
présent ici encore, on évite d’afficher le 1er article du mois qui a déjà été affiché.
Une fois tous les articles du mois affichés, on arrive au bout de la boucle principale. Celle ci va donc passer au prochain article et donc au prochain mois. Et ainsi de suite.
Discussions par date d’activité
7 discussions
J’ai mis en place cette contrib qui es ttres bien.
Mais pour une histoire de clartée et de lisibilité, je cherche à « plier » tous les Mois. Lorsque l’utilisateur clique sur un mois, cela le « dépli » et affiche les articles contenus à l’intérieur.
Estèce que quelqu’un saurait m’aider ?
Il me semble qu’il faut utiliser du javascript...
regarde cette contrib, elle devrait te guider un peu je pense :
Usage du filtre « unique » pour classer des articles
Répondre à ce message
On peut simplifier par : {mois_relatif}
Par ailleurs pourquoi ne pas gérer « mois_relatif » comme un critère global, c à d, pouvant être associé à la date du jour #DATE même sans article courant (cas de la page d’accueil) ?
Par quelle magie le id_article va t’il faire que la boucle premierdumois n’affiche qu’un seul article ? Ne manque-il pas un critère 0,1 ?
il n’y a qu’un article avec cet id, donc il n’y aura qu’un article selectionné.
Pardon, je me suis mal exprimé et merci de ta patience. Le question est plutôt pourquoi la boucle premierdumois n’est-elle pas invoquée N fois avec un id_article à chaque fois différent ?
ça va donner quelque chose comme cela :
La boucle _premierdumois affichera donc plusieurs articles, tous les premiers article du mois en fait. Le critère doublons empéchant d’afficher un article que l’on a déjà affiché avant.
Oui effectivement mais n’aurais tu pas le même effet sans la boucle_article et avec le critère 0,1 dans la premiere ?
non :
Remarque que je ne dis pas que c’est la meilleure méthode (ce ne l’est pas du tout) et c’est pas très optimale en fait. Il y a d’autre solution, comme Calendrier des articles ou le filtre unique, ou même le nouveau critère agenda probablement.
Tu as raison, c’est une belle boucle !
Merci
Répondre à ce message
Comment faire pour exclure les 10 premiers articles ???
je pense que la contrib Usage du filtre « unique » pour classer des articles sera plus efficace pour faire cela.
Répondre à ce message
Si vous voulez grouper les articles qui sont publiés le même jour, voici un exemple :
Bon je sait pas si mon code est trop assaini mais dites-moi si ça marche !
Maintenant je tente de voir si c’est possible de trier par mois le plus récent en premier mais en commençant par le premier article du mois...
Répondre à ce message
Voir aussi la nouvelle contrib : Usage du filtre « unique » pour classer des articles
Répondre à ce message
1- Le menu (repris de cette contrib) qui liste toutes les dates de publication des articles : placé dans sommaire.html par exemple
2- Un fichier date.html (associé à date.php3)
Affiche par rubrique les articles publiés à la date passée dans l’url
2bis - Un fichier liste.html (associé à liste.php3)
Répondre à ce message
Il me semble que les ul et li ne sont pas placés correctement.
Sinon la boucle est superbe, et très pratique.
J’en propose ci après une version avec une boucle supplémentaire qui me permet de limiter à 4 mois la liste des derniers articles.
Je n’ai pas trouvé d’autre moyen que de rajouter une boucle, mais si quelqu’un a mieux, je suis preneur !
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 : |