ARTICLES PRÉCÉDENTS, ARTICLES SUIVANTS
ARTICLES PRÉCÉDENTS, ARTICLES SUIVANTS
Techniques SPIP

Vous trouverez ici des trucs et astuces destinés aux développeurs de sites sous SPIP.

La majorité de ces trucs est consacrée aux filtres graphiques introduits dans SPIP 1.9. Il y a là en effet un vaste champ d’expérimentation pour les webmestres et les graphistes.

Chaque truc est suivi d’un forum auquel nous vous invitons à participer.

N.B. La présence de ces trucs et astuces sur notre site professionnel est destinée à faire connaître notre activité de création de sites sous SPIP. Vous pouvez librement utiliser les morceaux de code fournis ici dans vos propres squelettes. Vous pouvez reprendre ces exemples sur votre site ou dans les forums d’un autre site ; dans ce cas, nous vous demandons simplement d’avoir la courtoisie de référencer la page d’où est tiré le code repris.

XML

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

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
Articles précédents, articles suivants

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

Mars 2006
Articles précédents, articles suivants
ARNO* (arnaud chez paris-beyrouth.net)

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.

Mars 2006
Articles précédents, articles suivants
rpapa

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

Avril 2006
et par "par num titre" ?
Sylvain (sylvain chez guaph.net)

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 ?

Votre message :
Un message, un commentaire ?

(Pour créer des paragraphes, laissez simplement des lignes vides.)

Qui êtes-vous ? (optionnel)