<?xml version="1.0" encoding="UTF-8"?>
<!-- EN-Revision: 24249 -->
<!-- Reviewed: no -->
<sect1 id="learning.paginator.control">
    <title>Seitenkontrolle und ScrollingStyles</title>

    <para>
        Die Darstellung von Elementen für eine Bildschirmseite ist ein guter Start. In den Code
        Abschnitten der vorhergehenden Sektion haben wir die
        <methodname>setCurrentPageNumber()</methodname> Methode gesehen um die aktive Seitenzahl zu
        setzen. Der nächste Schritt ist die Navigation durch die Seiten. Um das zu tun bietet
        Paginator zwei wichtige Tools: die Möglichkeit den Paginator mit Hilfe eines View Partials
        darzustellen und Unterstützung von sogenannten ScrollingStyles.
    </para>

    <para>
        Der View Partial ist ein kleines View Skript welches die Seitenkontrollen darstellt, wie
        Buttons um zur nächsten oder vorigen Seite zu gehen. Welche Seitenkontrollen dargestellt
        werden hängt vom Inhalt des View Partials ab. Die Arbeit mit View Partials benötigt deren
        Einrichtung in <classname>Zend_View</classname>. Um mit den Seitenkontrollen anzufangen muss
        irgendwo in eigenen View Skript Pfad ein neues View Skript erstellt werden. Man kann es
        benennen wie man will, aber wir nennen es in diesem Text "controls.phtml". Das Referenz
        Handbuch enthält verschiedene Beispiele darüber was im View Skript möglich ist. Hier ist ein
        Beispiel:
    </para>

    <programlisting language="php"><![CDATA[
<?php if ($this->pageCount): ?>
<!-- Link zur ersten Seite -->
<?php if (isset($this->previous)): ?>
  <a href="<?php echo $this->url(array('page' => $this->first)); ?>">
    Erste
  </a> |
<?php else: ?>
  <span class="disabled">Erste</span> |
<?php endif; ?>

<!-- Link zur vorherigen Seite -->
<?php if (isset($this->previous)): ?>
  <a href="<?php echo $this->url(array('page' => $this->previous)); ?>">
    &lt; Vorherige
  </a> |
<?php else: ?>
  <span class="disabled">&lt; Vorherige</span> |
<?php endif; ?>

<!-- Link zur nächsten Seite -->
<?php if (isset($this->next)): ?>
  <a href="<?php echo $this->url(array('page' => $this->next)); ?>">
    Nächste &gt;
  </a> |
<?php else: ?>
  <span class="disabled">Nächste &gt;</span> |
<?php endif; ?>

<!-- Link zur letzten Seite -->
<?php if (isset($this->next)): ?>
  <a href="<?php echo $this->url(array('page' => $this->last)); ?>">
    Letzte
  </a>
<?php else: ?>
  <span class="disabled">Letzte</span>
<?php endif; ?>

</div>
<?php endif; ?>
]]></programlisting>

    <para>
        Der nächste Schritt ist es <classname>Zend_Paginator</classname> zu sagen welche View
        Partials verwendet werden können um die Navigationskontrollen darzustellen. Die folgende
        Zeile ist in die Bootstrap Datei der Anwendung zu geben.
    </para>

    <programlisting language="php"><![CDATA[
Zend_View_Helper_PaginationControl::setDefaultViewPartial('controls.phtml');
]]></programlisting>

    <para>
        Der letzte Schritt ist möglicherweise der einfachste. Man muss sicherstellen dass das
        Paginator Objekt dem Skript zugeordnet ist (NICHT dem 'controls.phtml' Skript!). Das einige
        was noch zu tun ist, ist es den Paginator im View Skript auszugeben. Das stellt automatisch
        den Paginator dar und verwendet den PaginationControl View Helfer. Im nächsten Beispiel
        wird das Paginator Objekt der 'paginator' View Variable zugeordnet. Keine Angst, man muss
        jetzt nicht vollständig verstehen wie alles funktioniert. Das nächste Kapitel zeigt ein
        komplettes Beispiel.
    </para>

    <programlisting language="php"><![CDATA[
<?php echo $this->paginator; ?>
]]></programlisting>

    <para>
        <classname>Zend_Paginator</classname>, stellt zusammen mit dem View Skript 'controls.phtml'
        das geschrieben wurde, sicher das die Seitenkontrollen richtig dargestellt werden. Um
        auszuwählen welche Seitenzahlen am Schirm angezeigt werden müssen, verwendet Paginator
        sogenannte ScrollingStyles. Der Standardstil wird "Sliding" genannt, was so ähnlich ist
        wie die Navigation für Yahoo's Suchergebnisse arbeitet. Um Googl's ScrollingStyle zu mimen,
        muss der Elastic Style verwendet werden. Man kann einen standardmäßigen ScrollingStyle
        mit der statischen <methodname>setDefaultScrollingStyle()</methodname> Methode setzen, oder
        man kann einen ScrollingStyle dynamisch spezifizieren wenn der Paginator im View Skript
        dargestellt wird. Das benötigt den manuellen Aufruf des View Helfers im View Skript.
    </para>

    <programlisting language="php"><![CDATA[
// $this->paginator ist ein Paginator Objekt
<?php echo $this->paginationControl($this->paginator, 'Elastic', 'controls.phtml'); ?>
]]></programlisting>

    <para>
        Für eine Liste aller vorhandenen ScrollingStyles, kann in das Referenz Handbuch gesehen
        werden.
    </para>
</sect1>
