paginator-control.xml 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 24249 -->
  3. <!-- Reviewed: no -->
  4. <sect1 id="learning.paginator.control">
  5. <title>Contrôles de la pagination et styles de défilement</title>
  6. <para>
  7. Rendre visuellement les éléments d'une page est un bon départ. Dans les sections précédentes, nous
  8. avons aperçu la méthode <methodname>setCurrentPageNumber()</methodname> pour déterminer la page active.
  9. Le point suivant est la navigation au travers de ces pages. Le paginateur vous fournit des outils
  10. pour ça comme la possibilité de rendre un script de vue partiel et le support des styles de
  11. défilement (ScrollingStyles).
  12. </para>
  13. <para>
  14. La vue partiel est un bout de vue qui rend juste les contrôles de la pagination comme les boutons suivant
  15. et précédent. Le design de la vue partielle est libre, il vous faudra simplement un objet Zend_View.
  16. Commencez donc par créer un nouveau script de vue dans le dossier des scripts de vue. Vous pouvez
  17. l'appeler comme vous voulez, nous l'appellerons "controls.phtml" de notre coté. Le manuel comporte
  18. des exemples de tels scripts, en voici un.
  19. </para>
  20. <programlisting language="php"><![CDATA[
  21. <?php if ($this->pageCount): ?>
  22. <!-- First page link -->
  23. <?php if (isset($this->previous)): ?>
  24. <a href="<?php echo $this->url(array('page' => $this->first)); ?>">
  25. First
  26. </a> |
  27. <?php else: ?>
  28. <span class="disabled">First</span> |
  29. <?php endif; ?>
  30. <!-- Previous page link -->
  31. <?php if (isset($this->previous)): ?>
  32. <a href="<?php echo $this->url(array('page' => $this->previous)); ?>">
  33. &lt; Previous
  34. </a> |
  35. <?php else: ?>
  36. <span class="disabled">&lt; Previous</span> |
  37. <?php endif; ?>
  38. <!-- Next page link -->
  39. <?php if (isset($this->next)): ?>
  40. <a href="<?php echo $this->url(array('page' => $this->next)); ?>">
  41. Next &gt;
  42. </a> |
  43. <?php else: ?>
  44. <span class="disabled">Next &gt;</span> |
  45. <?php endif; ?>
  46. <!-- Last page link -->
  47. <?php if (isset($this->next)): ?>
  48. <a href="<?php echo $this->url(array('page' => $this->last)); ?>">
  49. Last
  50. </a>
  51. <?php else: ?>
  52. <span class="disabled">Last</span>
  53. <?php endif; ?>
  54. </div>
  55. <?php endif; ?>
  56. ]]></programlisting>
  57. <para>
  58. Il faut maintenant indiquer à Zend_Paginator la vue partielle à utiliser. Ajoutez ceci à votre
  59. bootstrap:
  60. </para>
  61. <programlisting language="php"><![CDATA[
  62. Zend_View_Helper_PaginationControl::setDefaultViewPartial('controls.phtml');
  63. ]]></programlisting>
  64. <para>
  65. La dernière étape est la plus simple. Passez un objet Paginator à un script de vue
  66. (PAS 'controls.phtml'!). Ensuite, demandez simplement l'affichage de l'objet Paginator
  67. lui-même. Ceci va faire intervenir l'aide de vue PaginationControl. Dans l'exemple qui suit,
  68. l'objet Paginator a été affecté comme variable de vue 'paginator'. Ne vous inquiétez pas
  69. si vous ne comprenez pas totalement le fonctionnement, les sections suivantes le détaillent.
  70. </para>
  71. <programlisting language="php"><![CDATA[
  72. <?php echo $this->paginator; ?>
  73. ]]></programlisting>
  74. <para>
  75. Pour décider quels numéros de page afficher, le paginateur utilise des styles de défilement.
  76. Le style par défaut est "Sliding", qui ressemble à la présentation des résultats de Yahoo!
  77. Un style ressemblant à Google est "Elastic". Le style par défaut se règle au moyen de la méthode
  78. statique <methodname>setDefaultScrollingStyle()</methodname>, ou lors du rendu du paginateur
  79. dans le script de vue mais ceci nécessite un appel manuel à l'aide de vue.
  80. </para>
  81. <programlisting language="php"><![CDATA[
  82. // $this->paginator est un objet Paginator
  83. <?php echo $this->paginationControl($this->paginator, 'Elastic', 'controls.phtml'); ?>
  84. ]]></programlisting>
  85. <para>
  86. Pour une liste de tous les styles de défilement, consultez le manuel.
  87. </para>
  88. </sect1>