Le problème :
Vous avez une rubrique qui contient 100 articles.
Recherche d’articles
Vous voulez afficher les titres d’articles par 10 avec des liens sur les autres titres d’articles groupés par 10. Exemple :
1 10 20 30 40 50 60 70 80 90 100
ou
G o o o o o o o o o gle
On appel ça de la "pagination".
Il y a plusieurs solutions. Voici une qui je pense est facile à intégrer.
La solution :
Vous avez besoin d’un paquet de scripts php que vous pouvez télécharger ici : Xpagination.tar.gz
Décompressez ce paquet dans le répertoire principal de SPIP.
Ensuite éditez le squelette dans lequel vous voulez afficher la pagination. Il suffit d’introduire 2 scripts php. La place ou vous introduisez les 2 scripts n’est pas fixe. Mais il faut que le SCRIPT 1 soit toujours avant le SCRIPT 2. Le SCRIPT 1 fait une sorte d’initialisation et le SCRIPT 2 affiche les liens de pagination.
Voici un exemple du style Google. Collez le SCRIPT 1 dans votre squelette.
<?php
// SCRIPT 1
//
include_once("Xpagination/Xpagination.php");
$xpage = & new xPagination();
// Modifiable selon vos besoins
//
$xpage->item = 'articles';
$xpage->debut_xxx = 'debut_art';
$xpage->limit = 10;
$xpage->ex_rubrique = '';
$xpage->ex_article = '';
$xpage->ex_secteur = '';
$xpage->ex_breve = '';
$xpage->counter = 'o';
$xpage->this_counter = '<b>o</b>';
$xpage->start_string = '<div class="pagination">G ';
$xpage->end_string = ' gle</div>';
$xpage->enclose1 = '';
$xpage->enclose2 = '';
$xpage->sepa = ' ';
$xpage->query = '';
// Construction des liens de pagination
//
$xpage->make_links();
?>Explication :
include_once("Xpagination/Xpagination.php") ;
Le script de base que vous avez décompressé avant dans le répertoire SPIP. OBLIGATOIRE
$xpage = & new xPagination() ;
Initialisation de la class php de pagination. OBLIGATOIRE
$xpage->item = ’articles’ ;
Le gendre des documents. Actuellement ça devrait marcher avec : ’articles’, ’breves’. Mais c’est seulement testé avec ’articles’. Ca marche aussi pour la recherche ! OBLIGATOIRE
$xpage->debut_xxx = ’debut_art’ ;
Le nom de la variable qui définit le début de l’affichage des articles. Il est important que ce nom soit le même que celui dans la tête de boucle d’article : debut_art,10 OBLIGATOIRE
$xpage->limit = 10 ;
Le nombre de titres d’article à afficher à la fois. Il est important que ce chiffre soit le même que celui dans la tête de boucle d’article : debut_art,10 OBLIGATOIRE
$xpage->ex_rubrique = ’5,8,13’ ;
$xpage->ex_article = ’35,59,89’ ;
$xpage->ex_secteur = ’6,15’ ;
$xpage->ex_breve = ’5,8,13’ ;
Exclure des documents du résultat de certaines rubriques,articles,secteurs ou breves. Les ID’s sont séparé par des virgules. Cela donne uniquement un sens si vous faites de même dans la boucle.
$xpage->counter = ’’ ;
Définition du gendre du compteur de pagination. Si vous le laissez vide la pagination utilise un compteur de numéro automatique. Autrement vous pouvez introduire n’importe quel caractères ou une définition en html (ex.:image).
Exemple avec numéro :
[1] - [10] - [20]
Exemple avec caractère :
G o o o o o o o gle
$xpage->this_counter = ’’ ;
Si vous utilisez un compteur de caractère vous pouvez définir ici le caractère de la page actuelle.
$xpage->start_string = ’G ’ ;
$xpage->end_string = ’ gle’ ;
Définition de ce qui se trouve avant et après la pagination. De préférence le formatage html de la pagination
$xpage->enclose1 = ’’ ;
$xpage->enclose2 = ’’ ;
La définition des caractères de gauche et droite qui entourent le caractère de la page actuelle.
$xpage->sepa = ’ ’ ;
Signe de séparation entre les numéros ou caractères des pages
$xpage->query = ’’ ;
Elements à ajouter à l’url selon les besoins
$xpage->make_links() ;
Construction des liens de paginations OBLIGATOIRE
Ensuite vous devez modifier la tête de la boucle d’articles. Ce qui est important c’est la commande debut_art,10. Cela signifie que vous voulez afficher les articles par 10, débutant avec le contenu de la variable "debut_art". Le nom de cette variable doit commencer par "debut_". Le reste du nom vous pouvez le nommer comme vous voulez. Le contenu de cette variable est géré automatiquement.
<BOUCLE_art(ARTICLES) {id_rubrique} {par date} {inverse} {debut_art,10} >
<a href="#URL_ARTICLE">#TITRE</a><br>
</BOUCLE_art>Le script suivant affiche les liens vers les autres titres d’articles. Vous pouvez l’introduire avant ou après la boucle d’article. Mais toujours après le premier script php.
<?php
// SCRIPT 2
//
echo $xpage->links;
?>