paginator-together.xml 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 24249 -->
  3. <!-- Reviewed: no -->
  4. <sect1 id="learning.paginator.together">
  5. <title>Assembler le tout</title>
  6. <para>
  7. Nous avons vu comment créer un objet Paginator, comment le rendre sur la page et aussi comment
  8. rendre les éléments de navigation au travers des pages. Dans cette section nous allons voir
  9. comment intégrer Paginator dans MVC.
  10. </para>
  11. <para>
  12. Dans les exemples qui suivent, nous allons ignorer une bonne pratique qu'est d'utiliser une
  13. couche de services (Service Layer) ceci dans le but de garder nos exemples concis et simples
  14. à comprendre. Lorsque vous manipulerez bien les couches de services, vous devriez pouvoir
  15. intégrer Paginator simplement et efficacement.
  16. </para>
  17. <para>
  18. Partons du contrôleur. L'application d'exemple est simple, et nous allons tout loger dans
  19. IndexController et IndexAction. Encore une fois ce choix est fait pour l'exemple, vous ne
  20. devriez pas utiliser les contrôleurs de cette façon.
  21. </para>
  22. <programlisting language="php"><![CDATA[
  23. class IndexController extends Zend_Controller_Action
  24. {
  25. public function indexAction()
  26. {
  27. // Configuration du script de navigation. Voyez le tutoriel sur le script
  28. // des éléments de contrôle de la pagination pour plus d'informations
  29. Zend_View_Helper_PaginationControl::setDefaultViewPartial('controls.phtml');
  30. // Cherchons une connection à une base depuis le registre
  31. $db = Zend_Registry::get('db');
  32. // Créons un objet select qui récupère des billets et les range par date de création descendante
  33. $select = $db->select()->from('posts')->sort('date_created DESC');
  34. // Créons un paginateur pour cette requête
  35. $paginator = Zend_Paginator::factory($select);
  36. // Nous lisons le numéro de page depuis la requête. Si le paramètre n'est pas précisé
  37. // la valeur 1 sera utilisée par défaut
  38. $paginator->setCurrentPageNumber($this->_getParam('page', 1));
  39. // Assignons enfin l'objet Paginator à notre vue
  40. $this->view->paginator = $paginator;
  41. }
  42. }
  43. ]]></programlisting>
  44. <para>
  45. Le script qui suit est index.phtml, le script de vue pour IndexController/indexAction par
  46. défaut. Gardons celui-ci simple : il utilisera le type de défilement par défaut.
  47. </para>
  48. <programlisting language="php"><![CDATA[
  49. <ul>
  50. <?php
  51. // Affiche le titre de chaque billet pour la page en cours
  52. foreach ($this->paginator as $item) {
  53. echo '<li>' . $item->title . '</li>';
  54. }
  55. ?>
  56. </ul>
  57. <?php echo $this->paginator; ?>
  58. ]]></programlisting>
  59. <para>
  60. Naviguez maintenant dans votre projet pour voir Paginator en action. Nous n''avons vu
  61. ici qu'une partie de l'utilisation et le manuel de référence vous en apprendra plus
  62. sur les possibilités de Zend_Paginator.
  63. </para>
  64. </sect1>