Tri d’articles par année scolaire

Trie les articles d’une rubrique par année scolaire avec sa pagination

Sur la base du squelette de la distribution de spip, nous afficherons les articles “dans la même rubrique” par année scolaire en ajoutant une pagination suivant précédent de type 2005/2006 2007/2008.

Il s’agit de créer nos délimiteurs temps, soit deux dates, à placer dans la boucle article_principal :

[(#_article_principal:DATE|mois|<{8}|?{#SET{annee_apres,#_article_principal:DATE|annee}, #SET{annee_apres,#_article_principal:DATE|annee|plus{1}}})]
[(#_article_principal:DATE|mois|<{8}|?{#SET{annee_avant,#_article_principal:DATE|annee|moins{1}}, #SET{annee_avant,#_article_principal:DATE|annee}})]

Ces deux variables annee_apres et annee_avant, comme leur nom l’indique, servent à obtenir l’année avant celle de l’article consulté et celle d’après.

La partie “dans la même rubrique”.

Nous allons ici récupérer tous les articles dans l’année scolaire en cours, soit de début aôut à fin juillet.

<ul>
     <BOUCLE_articles_rubrique(ARTICLES) {id_rubrique} {date>(#GET{annee_avant})-08-01} {date<(#GET{annee_apres})-07-31} {par date}{inverse}>
     <li>
          <a href="[(#URL_ARTICLE)]"[ class="(#EXPOSE)"]>[(#TITRE)]</a>
     </li>
     </BOUCLE_articles_rubrique>
</ul>

Nous y ajoutons :
-  la pagination suivante

     <BOUCLE_navigation_annee_suivante(ARTICLES) {id_rubrique} {id_article!=56} {date>(#GET{annee_apres})-08-01} {par date} {0,1}>
     <a href="#URL_ARTICLE">[(#GET{annee_apres})]/[(#GET{annee_apres}|plus{1})]</a>
     </BOUCLE_navigation_annee_suivante>

-  et la pagination précédente

     <BOUCLE_articles_annee_precedente(ARTICLES) {id_rubrique} {id_article!=56} {date<(#GET{annee_avant})-07-31} {par date} {inverse} {0,1}>
     <a href="#URL_ARTICLE">[(#GET{annee_avant}|moins{1})]/[(#GET{annee_avant})]</a>
     </BOUCLE_articles_annee_precedente>

Discussion

4 discussions

  • Bonjour et merci pour cette super contrib!

    j’aimerai l’utiliser dans une page rubrique (et non une page article), je sens qu’il faut modifier les “délimiteurs de temps” (annee_avant et annee_apres) pour partir de la date courante, mais je trouve pas comment faire.

    Merci d’avance!

    Reply to this message

  • Merci, je vais regarder cela de plus près. Si je trouve une solution, je la posterai ici.

    Reply to this message

  • Bonjour,
    je n’ai pas approfondi dans cette voie, mais je crois que vous devriez vous orienter vers la méthode des “modèles” ou “noisettes” qui servent à inclure plus nativement certains bouts de squelette au sein du vôtre.

    Reply to this message

  • Bonjour,
    J’utilise votre astuce dans le plan du site d’une école maternelle. Cà fonctionne super alors, tout d’abord : merci !

    Ma question est la suivante : si je souhaite utiliser ce filtre dans tout mon site sauf dans une page d’archives, est-ce que je dois répéter la déclaration des variables dans chaque fichier squelette ou est-ce qu’on peut les déplacer à un niveau supérieur (et dans ce cas, où ? + quelle est la syntaxe ?).
    Merci beaucoup !

    Reply to this message

Add a comment

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite / PostgreSQL
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparait.

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.

Who are you?
[Log in]

To show your avatar with your message, register it first on gravatar.com (free et painless) and don’t forget to indicate your Email addresse here.

Enter your comment here

This form accepts SPIP shortcuts {{bold}} {italic} -*list [text->url] <quote> <code> and HTML code <q> <del> <ins>. To create paragraphs, just leave empty lines.

Add a document

Follow the comments: RSS 2.0 | Atom