SPIP - Contrib

SPIP - Contrib

[ar] [en] [es] [fr] [it]

173 visiteurs en ce moment

fontsizeup fontsizedown
Accueil du site > Contribs > Agendas et Dates > Tris par date > Archives Tris par date > Une liste d’article trié par mois
[16 commentaires]

Une liste d’article trié par mois

vendredi 22 octobre 2004, par mortimer

  • Digg
  • Del.icio.us
  • Facebook
  • Google
  • Technorati
0 vote

Voici une boucle proposée par homo-numericus pour afficher une liste d’articles mois par mois.

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 :

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.

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.

Notes

[1] celui sélectionné par la boucle article

Retour en haut de la page

16 Messages de forum

Voir toute la discussion

Pages 1 | 2

  • Répondre à ce message

    3 mars 2006 23:57 , par mortimer

    regarde cette contrib, elle devrait te guider un peu je pense : Usage du filtre « unique » pour classer des articles

  • Répondre à ce message

    3 mars 2006 23:46 , par DumbaDonf

    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...

  • Répondre à ce message

    31 octobre 2005 13:13 , par Marc

    Tu as raison, c’est une belle boucle ! Merci

  • Répondre à ce message

    31 octobre 2005 12:59 , par mortimer

    non :

    1. on ne peut pas vraiment supprimer la boucle _article puisqu’elle sert aussi dans la boucle _MOIS qui liste seulement les article avec un mois "relatif" de 0 (le même mois) par rapport à la boucle englobante. Mais effectivement, il est peut être possible de passer cette boucle à l’intérieure de la boucle _premierdumois et alors la boucle _article est obsoléthe
    2. dans tous les cas, on ne peut pas utiliser {0,1} dans la boucle _premierdumois, puisque cela limiterai à UN SEUL article. Mais nous on veut qu’elle affiche TOUS LES permiers articles de chaque mois (donc plusieurs). Avec cette approche, c’est donc doublons le mieux.

    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.

  • Répondre à ce message

    31 octobre 2005 12:39 , par Marc

    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 ?

  • Répondre à ce message

    31 octobre 2005 12:19 , par mortimer
    1. la boucle _article selectionne successivement tous les articles,
    2. la boucle _premierdumois va afficher le premier article trouvé pour se mois, que l’on n’a pas encore affiché,
    3. la boucle _MOIS va afficher les articles suivant dans le même mois.

    ça va donner quelque chose comme cela :

    1. _article sélectionne l’article le plus récent,
    2. _premierdumois affiche cet article et se rappelle avec doublons qu’elle l’a déjà affiché,
    3. _MOIS va afficher tous les articles du même moi et se rappeler avec doublons qu’elle les a passés.
    4. _article sélectionne le prochain article le plus récent,
    5. _premierdumois essaie de l’afficher, mais si on l’a déjà affiché avant, on ne l’affiche plus, grâce au critère doublons
    6. pareil pour la boucle _MOIS
    7. et ainsi de suite.

    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.

  • Répondre à ce message

    31 octobre 2005 12:01 , par Marc

    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 ?

  • Répondre à ce message

    31 octobre 2005 10:47 , par mortimer

    il n’y a qu’un article avec cet id, donc il n’y aura qu’un article selectionné.

  • Répondre à ce message

    31 octobre 2005 10:37 , par Marc

    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 ?

  • Répondre à ce message

    6 octobre 2005 10:54 , par Balluche

    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) ?

Pages 1 | 2

Répondre à cet article

Retour en haut de la page

Ça discute par ici

SPIP | Squelette | | Plan du site | Suivre la vie du site RSS 2.0