Drupal : Paginer un contenu avec les fonctions natives

Par défaut, Drupal propose un très bon système de pagination (celui par exemple proposé sur la page d'accueil). Mais il n'offre aucune interface d'utilisation. Ce qui est contraignant lorsqu'on édite un long contenu.

Il existe des modules pour palier le problème (Paging ou Custom Pagers) mais il est possible avec quelques connaissances PHP d'utiliser le système natif!

Voici un exemple simple. Celui ci va vous afficher toutes les entrées de blog à raison de 5 par page. Pour cela, éditer une Page Drupal en "full PHP" avec ce qui suit:

<?php
    $sql = "SELECT * FROM {node} n WHERE type = 'blog' AND status = 1 ORDER BY n.created DESC";
    $result = pager_query(db_rewrite_sql($sql), 5);
    while ($data = db_fetch_object($result)) {
        $node = node_load($data->nid);
        print node_view($node, TRUE);
    }
    print theme('pager', NULL, 5);
?>

Les fonctions  pager_query et theme('pager',... communiquent et s'entendent entre elles avec des variables globales. Plus d'information dans "\includes\pager.inc".

Simple et intéressant non?

J'en profite aussi pour mettre à jour le Post "Ajouter le module Lightbox2 à une gallerie d'images créée avec le module Image" avec l'ajout d'un système de pagination!

Commentaires

Poster un nouveau commentaire

Le contenu de ce champ ne sera pas montré publiquement.
Image CAPTCHA
Entrez les caractères affichés sur l'image sans espaces.
Syndiquer le contenu