SPIP - Contrib

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



Accueil du site > Navigation > Navigation à suivre

Pagination sous forme de select avec boutons précédent et suivant

dimanche 21 août 2005, par Yorghos. Dernier ajout mercredi 6 décembre 2006


Le but ici est de fournir du code facilement insérable dans n’importe quelle squelette article pour gérer la pagination quelque soit le critère de tri.


Inutile d’insister sur l’importance des systèmes de pagination. Il en existe d’excellents dans SPIP, voir par exemple l’article « Pagination ».

Dans certains cas, il peut être utile de parcourir le contenu d’une rubrique page par page. De plus, l’ordre choisi peut se faire avec divers critères :
- Numérotation de type 1. Titre
- Ordre imposé par un numéro inscrit dans un champs, par exemple sous-titre.

Le but donc ici est de fournir du code facilement insérable dans n’importe quelle squelette article.

Explications sur le squelette proposé

Construction du tableau des id_article à partir d’une boucle qui liste les articles de la même rubrique.
Le critère de classement est ici le numéro placé dans le sous-titre. Il suffit de le remplacer par le critère de votre choix. Il est indispensable de déclarer dans une variable php la valeur de #ID_ARTICLE juste après la boucle englobante de la page article :

La boucle while permet de repérer l’id_article actuellement affiché et de sélectionner son index pour la suite.

Le deuxième bout de code concerne l’affichage du sélecteur à l’emplacement souhaité dans la page.

J’ai choisi la présentation en tableau pour le bon affichage des flèches.

Évidemment, pour la redirection du select j’utilise un petit javascript qui correspond aux noms du formulaire et du select, à copier dans l’en-tête :

function Reselect(){
idoption = document.choix.subject.value;
this.location.href = idoption;
}

Installation et Personnalisation

Le squelette est totalement générique. Ceci signifie qu’il s’insère dans tout squelette de type article, quel que soit son nom. Ceci est obtenu en appliquant une regexp sur la balise #SELF. Vous n’avez qu’à recopier le couple select_generic.php3/ select_generic.html à la racine de votre site (ou dans votre dossier squelettes), puis utiliser la syntaxe : <INCLURE(select_generic.php3){id_article}> à l’emplacement voulu d’un squelette article.
Le squelette utilise le critère {par num soustitre} pour fabriquer les liens de pagination, vous pouvez changer simplement ce critère dans la boucle au début du fichier select_generic.html s’il ne vous convient pas (et mettre par exemple {par titre}).

P.-S.

Il ne vous reste plus qu’à changer éventuellement les images correspondant par exemple à des flèches comme celles de l’img_pack.

Vous pouvez voir le fonctionnement ici

Documents joints


Répondre à cet article



Suivre la vie du site RSS 2.0 | Plan du site | Espace privé | Charte et vie SPIP-Contrib | SPIP | L'autre.net