Programmer's Reference Guide

Konfiguration

Advanced usage

Eigene Adapter für Quelldaten

An irgendeinem Punkt kann es passieren das man auf einen Datentyp stößt der nicht von den mitgelieferten Adaptern abgedeckt wird. In diesem Fall muß man seinen eigenen schreiben.

Um das zu tun, muß man Zend_Paginator_Adapter_Interface implementieren. Es gibt zwei Methoden die hierfür benötigt werden:

  • count()

  • getItems($offset, $itemCountPerPage)

Zusätzlich kann es gewünscht sein einen Konstruktor zu implementieren der die Datenquelle als Parameter entgegennimmt und als geschützte oder private Eigenschaft abspeichert. Wie man das realisieren will liegt komplett in Eigenverantwortung.

Wenn man jemals schon das SPL Interface » Countable verwendet hat, wird man mit count() umgehen können. Zend_Paginator verwendet es als totale Anzahl an Elementen in der Datensammlung.

Die getItems() Methode ist nur etwas komplizierter. Hierfür, wird der Adapter mit einem Offset und der Anzahl an Einträgen die pro Seite dargestellt werden sollen, gefüttert. Man muß den entsprechenden Bereich an Daten zurückgeben. Für ein Array wurde das wie folgt funktionieren:

return array_slice($this->_array, $offset, $itemCountPerPage);

            

Man sollte einen Blick auf die mitgelieferten Adapter werfen (alle welche Zend_Paginator_Adapter_Interface implementieren) um eine Idee zu bekommen wie man das selbst implementieren könnte.

Eigene Scrolling Stile

Das Erstellen von eigenen Scrolling Stilen erfordert das man Zend_Paginator_ScrollingStyle_Interface implementiert, welche eine eizelne Methode, getPages(), definiert. Speziell,

public function getPages(Zend_Paginator $paginator, $pageRange = null);

            

Diese Methode sollten eine untere und obere Grenze für die Seitenzahl innerhalb der sogenannten "lokalen" Seiten berechnen (das sind Seiten nahe der aktuellen Seite).

Solange es keinen anderen Scrolling Stil erweitert (siehe zum Beispiel Zend_Paginator_ScrollingStyle_Elastic, wird der eigene Scrolling Stil üblicherweise mit etwas ähnlichem sie der folgenden Codezeile enden:

return $paginator->getPagesInRange($lowerBound, $upperBound);

            

Es ist nichts speziellen an diesem Aufruf; es ist mehr eine übliche Methode um die Gültigkeit der unteren und oberen Grenze zu prüfen und ein Array des Bereichs an den Paginator zurückzugeben.

Wenn man bereit ist den neuen Scrolling Stil zu benutzen, muß man Zend_Paginator bekanntgeben in welchem Verzeichnis er nachschauen muß. Um das zu tun muß das folgende ausgeführt werden:

$prefix = 'My_Paginator_ScrollingStyle';
$path   = 'My/Paginator/ScrollingStyle/';
Zend_Paginator::addScrollingStylePrefixPath($prefix, $path);

            


Konfiguration
blog comments powered by Disqus

Select a Version

Languages Available

Components

Search the Manual