<?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>
