Seitenkontrolle und ScrollingStyles

Alles zusammenfügen

Wir haben gesehen wie ein Paginator Objekt erstellt wurd, wie die Elemente der aktuellen Seite dargestellt werden und wie ein Navigationselement dargestellt wird um durch die Seiten zu navigieren. In diesem Kapitel sehen wir wie Paginator in den Rest der MVC Anwendung passt.

Im folgenden Beispiel ignorieren wir die Implementation der besten Praxis bei der ein Service Layer verwendet wird um das Beispiel einfach und leichter verständlich zu machen. Sobald wir mit der Verwendung von Service Layern vertraut sind, sollte es einfach sein zu sehen wie Paginator in diesen Ansatz der besten Praxis passt.

Beginnen wir mit dem Controller. Die Beispielanwendung ist einfach und wir geben alles einfach in den IndexController und die IndexAction. Wie gesagt ist das nur zu Zwecken der Demonstration. Eine echte Anwendung sollte Controller nicht in dieser Art und Weise verwenden.

  1. class IndexController extends Zend_Controller_Action
  2. {
  3.     public function indexAction()
  4.     {
  5.         // Das Seitenkontroll View Skript einrichten. Siehe das Handbuch zu
  6.         // Seitenkontrollen für weitere Informationen über dieses View Skript
  7.         Zend_View_Helper_PaginationControl::setDefaultViewPartial('controls.phtml');
  8.  
  9.         // Holt eine bereits instanzierte Datenbank Verbindung von der Registry
  10.         $db = Zend_Registry::get('db');
  11.  
  12.         // Erstellt ein Select Objekt welches Blog Posts holt, und absteigend
  13.         // anhand des Erstellungsdatums sortiert
  14.         $select = $db->select()->from('posts')->sort('date_created DESC');
  15.  
  16.         // Erstellt einen Paginator für die Abfrage der Blog Posts
  17.         $paginator = Zend_Paginator::factory($select);
  18.  
  19.         // Die aktuelle Seitenzahl von der Anfrage lesen. Der Standardwert ist
  20.         // 1 wenn keine explizite Seitenzahl angegeben wurde
  21.         $paginator->setCurrentPageNumber($this->_getParam('page', 1));
  22.  
  23.         // Weist das Paginator Objekt der View zu
  24.         $this->view->paginator = $paginator;
  25.     }
  26. }

Das folgende View Skript ist das index.phtml View Skript für die indexAction des IndexController's. Das View Skript kann einfach gehalten werden. Wir nehmen an das der standardmäßige ScrollingStyle verwendet wird.

  1. <ul>
  2. <?php
  3. // Den Titel jedes Eintrags für die aktuelle Seite
  4. // in einem Listen-Element darstellen
  5. foreach ($this->paginator as $item) {
  6.     echo '<li>' . $item->title . '</li>';
  7. }
  8. ?>
  9. </ul>
  10. <?php echo $this->paginator; ?>

Jetzt zum Index des Projekts navigieren und Paginator in Aktion sehen. Was wir in diesem Tutorial diskutiert haben ist nur die Spitze des Eisbergs. Das Referenz Handbuch und die API Dokumentation können mehr darüber sagen das mit Zend_Paginator alles getan werden kann.


Seitenkontrolle und ScrollingStyles