Zend_Paginator im Einsatz – kleines Tutorial
Hallo LimeSpacer,
wir haben uns Gestern bei einer Seite damit beschäftigt, für eine Produktliste das im Web typische Paging einzubauen. Manuell hatten wir dieses bereits öfters umgesetzt, nun wollten wir es mal mit den dem Zend_Paginator testen.
Anfangs sah es irgendwie doch recht kompliziert aus, aber beim zweiten Anlauf klappte es dann problemlos.
Wir gehen davon aus das ihr bereits ein Array mit euren Daten habt, und das Zend Framework nutzt (1.9.x).
Zum Ausgeben mit Paging geht man nun wie folgt vor. Im Controller übergeben wir die Daten an den Zend_Paginator, und diesen anstelle der Daten an das View Script.
Weiterhin wird die aktuelle Seiten Zahl benötigt,sowie die Anzahl der Datensätze pro Seite. Um das Anhängen der Zahl kümmert sich der Paginator selber.
// Seite aus URL besorgen $page=$this->_getParam('page',1); // Daten übergeben $paginator = Zend_Paginator::factory($result); // Anzahl Datensätzte $paginator->setItemCountPerPage(5); // Momentane Seite $paginator->setCurrentPageNumber($page); // Paginator an die View geben $this->view->paginator = $paginator;
Als nächstes muss im View Script die Ausgabe der Datensätze erfolgen.
foreach ($this->paginator as $p) { echo $p['spalte1']; echo $p['spalte2]; }
Um nun die „Seiten-Navigation“ zu erhalten, benötigt man ein entsprechendes Template, dieses legen wir unter „paginator.phtml“ ab.
Für eine Anzeige im Stil von „[1] [2] [3]“ kann folgendes Template verwendet werden : Link zum Template
Als letzter Schritt muss noch in der View, die Anzeige für die Seiten eingebunden werden:
echo $this->paginationControl($this->paginator, 'All', 'indexpagination.phtml');
Wenn jetzt alles geklappt hat, erhält man folgende Ausgabe:
Man kann anstelle von Arrays, auch direkt ein Zend DB Select Object übergeben, und selbstverständlich noch viele andere Einstellungen vornehmen. Weitere Infos finden sich wie immer in der online Dokumentation des Frameworks.
Neue Kommentare