Contrôles de la pagination et styles de défilement

Rendre visuellement les éléments d'une page est un bon départ. Dans les sections précédentes, nous avons aperçu la méthode setCurrentPageNumber() pour déterminer la page active. Le point suivant est la navigation au travers de ces pages. Le paginateur vous fournit des outils pour ça comme la possibilité de rendre un script de vue partiel et le support des styles de défilement (ScrollingStyles).

La vue partiel est un bout de vue qui rend juste les contrôles de la pagination comme les boutons suivant et précédent. Le design de la vue partielle est libre, il vous faudra simplement un objet Zend_View. Commencez donc par créer un nouveau script de vue dans le dossier des scripts de vue. Vous pouvez l'appeler comme vous voulez, nous l'appellerons "controls.phtml" de notre coté. Le manuel comporte des exemples de tels scripts, en voici un.

  1. <?php if ($this->pageCount): ?>
  2. <!-- First page link -->
  3. <?php if (isset($this->previous)): ?>
  4.   <a href="<?php echo $this->url(array('page' => $this->first)); ?>">
  5.     First
  6.   </a> |
  7. <?php else: ?>
  8.   <span class="disabled">First</span> |
  9. <?php endif; ?>
  10.  
  11. <!-- Previous page link -->
  12. <?php if (isset($this->previous)): ?>
  13.   <a href="<?php echo $this->url(array('page' => $this->previous)); ?>">
  14.     &lt; Previous
  15.   </a> |
  16. <?php else: ?>
  17.   <span class="disabled">&lt; Previous</span> |
  18. <?php endif; ?>
  19.  
  20. <!-- Next page link -->
  21. <?php if (isset($this->next)): ?>
  22.   <a href="<?php echo $this->url(array('page' => $this->next)); ?>">
  23.     Next &gt;
  24.   </a> |
  25. <?php else: ?>
  26.   <span class="disabled">Next &gt;</span> |
  27. <?php endif; ?>
  28.  
  29. <!-- Last page link -->
  30. <?php if (isset($this->next)): ?>
  31.   <a href="<?php echo $this->url(array('page' => $this->last)); ?>">
  32.     Last
  33.   </a>
  34. <?php else: ?>
  35.   <span class="disabled">Last</span>
  36. <?php endif; ?>
  37.  
  38. </div>
  39. <?php endif; ?>

Il faut maintenant indiquer à Zend_Paginator la vue partielle à utiliser. Ajoutez ceci à votre bootstrap:

  1. Zend_View_Helper_PaginationControl::setDefaultViewPartial('controls.phtml');

La dernière étape est la plus simple. Passez un objet Paginator à un script de vue (PAS 'controls.phtml'!). Ensuite, demandez simplement l'affichage de l'objet Paginator lui-même. Ceci va faire intervenir l'aide de vue PaginationControl. Dans l'exemple qui suit, l'objet Paginator a été affecté comme variable de vue 'paginator'. Ne vous inquiétez pas si vous ne comprenez pas totalement le fonctionnement, les sections suivantes le détaillent.

  1. <?php echo $this->paginator; ?>

Pour décider quels numéros de page afficher, le paginateur utilise des styles de défilement. Le style par défaut est "Sliding", qui ressemble à la présentation des résultats de Yahoo! Un style ressemblant à Google est "Elastic". Le style par défaut se règle au moyen de la méthode statique setDefaultScrollingStyle(), ou lors du rendu du paginateur dans le script de vue mais ceci nécessite un appel manuel à l'aide de vue.

  1. // $this->paginator est un objet Paginator
  2. <?php echo $this->paginationControl($this->paginator, 'Elastic', 'controls.phtml'); ?>

Pour une liste de tous les styles de défilement, consultez le manuel.

blog comments powered by Disqus