| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 24249 -->
- <!-- Reviewed: no -->
- <sect1 id="learning.paginator.simple">
- <title>Einfaches Beispiel</title>
- <para>
- In diesem ersten Beispiel wollen wir nichts spektakuläres, aber hoffentlich gibt es eine
- gute Idee darüber wozu <classname>Zend_Paginator</classname> designt wurde. Angenommen wir
- haben ein Array das $data heißt mit den Zahlen 1 bis 100 in Ihm, welches wir in eine Anzahl
- von Seiten aufteilen wollen. Man kann die statische <methodname>factory()</methodname>
- Methode in der Klasse <classname>Zend_Paginator</classname> verwenden um ein
- <classname>Zend_Paginator</classname> Objekt mit unseren Array in Ihm zu erhalten.
- </para>
- <programlisting language="php"><![CDATA[
- // Erstellt ein Array mit den Zahlen 1 bis 100
- $data = range(1, 100);
- // Holt ein Paginator Objekt und verwendet Zend_Paginator's eingebaute Factory
- $paginator = Zend_Paginator::factory($data);
- ]]></programlisting>
- <para>
- Wir sind fast fertig! Die Variable $paginator enthält jetzt eine Referenz auf das Paginator
- Objekt. Standardmäßig ist es eingestellt 10 Elemente pro Seite anzuzeigen. Um die Elemente
- für die aktuell aktive Seite anzuzeigen, ist alles was getan werden muss durch das
- Paginator Objekt mit einer foreach Schleife zu iterieren. Die aktuell aktive Seite ist
- standardmäßig die erste Seite wenn Sie nicht explizit spezifiziert wurde. Wir werden später
- sehen wie eine spezifische Seite ausgewählt werden kann. Der folgende Abschnitt zeigt eine
- unsortierte Liste welche die Zahlen 1 bis 10 enthält ,welche die Zahlen der ersten Seite
- sind.
- </para>
- <programlisting language="php"><![CDATA[
- // Erstellt ein Array mit den Zahlen 1 bis 100
- $data = range(1, 100);
- // Holt ein Paginator Objekt und verwendet Zend_Paginator's eingebaute Factory
- $paginator = Zend_Paginator::factory($data);
- ?><ul><?php
- // Jedes Element der aktuellen Seite in einem Listen Element darstellen
- foreach ($paginator as $item) {
- echo '<li>' . $item . '</li>';
- }
- ?></ul>
- ]]></programlisting>
- <para>
- Jetzt versuchen wir die Elemente der zweiten Seite darzustellen. Die
- <methodname>setCurrentPageNumber()</methodname> Methode kann verwendet werden um auszuwählen
- welche Seite man sehen will.
- </para>
- <programlisting language="php"><![CDATA[
- // Erstellt ein Array mit den Zahlen 1 bis 100
- $data = range(1, 100);
- // Holt ein Paginator Objekt und verwendet Zend_Paginator's eingebaute Factory
- $paginator = Zend_Paginator::factory($data);
- // Wählt die zweite Seite
- $paginator->setCurrentPageNumber(2);
- ?><ul><?php
- // Jedes Element der aktuellen Seite in einem Listen Element darstellen
- foreach ($paginator as $item) {
- echo '<li>' . $item . '</li>';
- }
- ?></ul>
- ]]></programlisting>
- <para>
- Wie erwartet stellt dieser kleine Abschnitt eine unsortierte Liste mit den Zahlen 11 bis 20
- in Ihm dar.
- </para>
- <para>
- Dieses einfache Beispiel demonstriert einen kleinen Teil davon was mit
- <classname>Zend_Paginator</classname> getan werden kann. Aber eine echte Anwendung liest
- selten in seinen Daten von einem reinen Array, deshalb ist der nächste Abschnitt dazu
- gedacht zu zeigen wir man Paginator verwenden kann um Ergebnisse einer Datenbank Abfrage
- seitenweise darzustellen. Bevor weitergelesen wird, sollte man sicherstellen das man sich
- damit auskennt wie <classname>Zend_Db_Select</classname> arbeitet!
- </para>
- <para>
- Im Datenbank Beispiel sehen wir nach einer Tabelle mit Blog Posts welche 'posts' genannt
- wird. Gehen wir direkt hinein und schauen uns ein einfaches Beispiel an.
- </para>
- <programlisting language="php"><![CDATA[
- // Eine Select Abfrage erstellen. $db ist ein Zend_Db_Adapter Objekt, von dem
- // wir annehmen das es bereits im Skript existiert
- $select = $db->select()->from('posts')->order('date_created DESC');
- // Holt ein Paginator Objekt und verwendet Zend_Paginator's eingebaute Factory
- $paginator = Zend_Paginator::factory($select);
- // Wählt die zweite Seite
- $paginator->setCurrentPageNumber(2);
- ?><ul><?php
- // Jedes Element der aktuellen Seite in einem Listen Element darstellen
- foreach ($paginator as $item) {
- echo '<li>' . $item->title . '</li>';
- }
- ?></ul>
- ]]></programlisting>
- <para>
- Wie man sehen kann ist dieses Beispiel nicht sehr unterschiedlich vom vorhergehenden.
- Der einzige Unterschied besteht darin dass man ein <classname>Zend_Db_Select</classname>
- Objekt statt einem Array an die <methodname>factory()</methodname> Methode des Paginator's
- übergibt. Für weitere Details darüber wie der Datenbank Adapter sicherstellt das eigene
- Anfragen effizient ausgeführt werden, sollte in das <classname>Zend_Paginator</classname>
- Kapitel im Referenz Handbuch bei den Adaptern DbSelect und DbTableSelect nachgesehen werden.
- </para>
- </sect1>
|