| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 24249 -->
- <!-- Reviewed: no -->
- <sect1 id="learning.paginator.together">
- <title>Alles zusammenfügen</title>
- <para>
- 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.
- </para>
- <para>
- 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.
- </para>
- <para>
- 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.
- </para>
- <programlisting language="php"><![CDATA[
- class IndexController extends Zend_Controller_Action
- {
- public function indexAction()
- {
- // Das Seitenkontroll View Skript einrichten. Siehe das Handbuch zu
- // Seitenkontrollen für weitere Informationen über dieses View Skript
- Zend_View_Helper_PaginationControl::setDefaultViewPartial('controls.phtml');
- // Holt eine bereits instanzierte Datenbank Verbindung von der Registry
- $db = Zend_Registry::get('db');
- // Erstellt ein Select Objekt welches Blog Posts holt, und absteigend
- // anhand des Erstellungsdatums sortiert
- $select = $db->select()->from('posts')->sort('date_created DESC');
- // Erstellt einen Paginator für die Abfrage der Blog Posts
- $paginator = Zend_Paginator::factory($select);
- // Die aktuelle Seitenzahl von der Anfrage lesen. Der Standardwert ist
- // 1 wenn keine explizite Seitenzahl angegeben wurde
- $paginator->setCurrentPageNumber($this->_getParam('page', 1));
- // Weist das Paginator Objekt der View zu
- $this->view->paginator = $paginator;
- }
- }
- ]]></programlisting>
- <para>
- 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.
- </para>
- <programlisting language="php"><![CDATA[
- <ul>
- <?php
- // Den Titel jedes Eintrags für die aktuelle Seite
- // in einem Listen-Element darstellen
- foreach ($this->paginator as $item) {
- echo '<li>' . $item->title . '</li>';
- }
- ?>
- </ul>
- <?php echo $this->paginator; ?>
- ]]></programlisting>
- <para>
- 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
- <acronym>API</acronym> Dokumentation können mehr darüber sagen das mit
- <classname>Zend_Paginator</classname> alles getan werden kann.
- </para>
- </sect1>
|