Contactez-nous

1

Articles précédents, articles suivants

24 mars 2006
par ARNO*

[SPIP 1.8] Dorian explique sur SPIP-Contrib comment créer des liens « article précédent », « article suivant ».

Mais comment présenter non pas un, mais plusieurs articles précédents et suivants ?

  1. <BOUCLE_meme_rub_apres(ARTICLES){id_rubrique}{par date}{inverse}{date>#DATE}{n-3,3}>
  2. <a href="#URL_ARTICLE">#TITRE</a>
  3. </BOUCLE_meme_rub_apres>
  4.  
  5. #TITRE
  6.  
  7. <BOUCLE_meme_rub_avant(ARTICLES){id_rubrique}{par date}{inverse}{date<=#DATE}{exclus}{0,3}>
  8. <a href="#URL_ARTICLE">#TITRE</a>
  9. </BOUCLE_meme_rub_avant>

Télécharger

La boucle meme_rub_avant est très simple, il s’agit simplement de l’extension de ce que faisait Dorian : au lien d’afficher uniquement un seul article, on affiche les trois premiers. La seule difficulté logique est de considérer que l’on trie les articles par ordre chronologique inverse, il faut donc penser que « les trois articles précédents » sont :
— parmi les articles publiés avant l’article actuel ;
— triés par ordre chronologique inverse (donc : les plus récents en tête) ;
— on veut les 3 articles publiés immédiatement avant, c’est-à-dire les 3 articles les plus récents de notre liste ; comme le tri est déjà effectué, ce sont simplement les 3 premiers articles de notre liste.

La seule subtilité réside dans la boucle meme_rub_apres :
— parmi les articles publiés après l’article actuel ;
— triés par ordre chronologique inverse (les plus récents en tête) ;
— on veut les 3 derniers articles publiés avant l’article en cours, c’est-à-dire les 3 articles les plus anciens de notre liste ; selon notre tri, ce sont les 3 derniers articles de notre liste.

Il faut donc utiliser le sélecteur introduit dans SPIP 1.8 : {n-3,3} :
— on veut afficher les éléments de la liste à partir du troisième élément avant la fin (n-3) ;
— on veut afficher 3 éléments à partir de celui-ci.

Je conseille vivement aux webmestres de s’intéresser à ces nouveaux critères introduits dans la version 1.8 : {n-a,b}, {a,n-b} (notez bien : a et b sont les valeurs que vous remplacez, alors que n fait partie de la notation, au même titre que les accolades !), ils vous rendront de nombreux services (c’est typiquement l’un des besoins qui obligeait à ajouter du PHP dans ses squelettes, dans le but de réaliser un affichage particulièrement simple).

  • Mars 2006

    Il y a un bug lorsque deux articles ont exactement la même date (notamment, c’est le cas pour les articles "post-datés")

  • ARNO*
    Mars 2006

    deux articles ont exactement la même date

    Oui, merci ! J’ai modifié le code pour limiter les dégâts.

    Au passage : dans la version 1.9, comme la date des articles intègre non seulement le jour, mais aussi l’heure, le problème sera nettement moins fréquent.

  • rpapa
    Mars 2006

    j’ai pondu une autre version de ce pb, qui je pense est un peu plus compléte, dans le sens ou elle affiche 5 items y compris pour les premiers articles et les derniers, je viens de la poster sur spip-contrib je te laisse y jeter un œil .

    Merci pour tout le boulot que tu fais.

    questions subsidiaire, à propos de la gestion des images, ne pourrait-on imaginer un filtre qui fusionne reellement les deux images (original et reflet) plutot que de les superposer dans un div (http://www.sciences-indus-cpge.apinc.org/)

  • Sylvain
    Avril 2006

    Salut,

    j’aime beaucoup ! je l’ai adapté pour trier des articles {par titre}

    mais je ne parviens pas à trouver comment faire pour avoir ça {par num titre}
    - une idée ?

  • guide turquie
    Octobre 2008

    Bonjour, j’aimerais filtrer les articles anterieur au 25 juin 2008, dans mon rubrique numero 110.

    Pourrez-vous me donner un tuyeau qui pourrait me depanner ?

    merci infiniment
    contigo
    annauireturquie

Qui êtes-vous ?
Votre message

Ce formulaire accepte les raccourcis SPIP [->url] {{gras}} {italique} <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.