Programmer's Reference Guide

Configuration

Utilisation avancée

Adaptateurs de source de données personnalisée

À partir d'un moment, vous pourriez avoir besoin de parcourir un type de données qui n'est pas couvert par les adaptateurs fournis par défaut. Dans ce cas, vous devrez écrire vos propres adaptateurs.

Pour faire ceci, vous devez implémenter Zend_Paginator_Adapter_Interface. Il existe deux méthodes requises :

  • count()

  • getItems($offset, $itemCountPerPage)

De plus, vous voudrez peut-être implémenter un constructeur qui prend votre source de données comme paramètre et le stocke comme propriété protégée ou privée. La manière suivant laquelle vous allez spécifiquement faire ceci, vous incombe.

Si vous avez déjà utilisé l'interface SPL » Countable, vous êtes familier avec count(). Utilisé avec Zend_Paginator, il s'agit du nombre total d'éléments dans la collection de données.

La méthode getItems() est seulement légèrement plus compliquée. Pour ceci, les paramètres sont un point de départ et un nombre d'éléments à afficher par page. Vous devez retourner la portion appropriée de données. Pour un tableau, il s'agirait :

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

Regardez les adaptateurs fournis par défaut (ils implémentent tous Zend_Paginator_Adapter_Interface) pour avoir une idée de la manière d'implémenter votre propre adaptateur.

Styles de défilement personnalisés

Créer votre propre style de défilement requiert que vous implémentiez Zend_Paginator_ScrollingStyle_Interface, qui définit une seule méthode, getPages(). Et plus spécifiquement :

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

Cette méthode doit calculer des bornes inférieures et supérieures des numéros de page dans la plage des pages dites "local" (c'est-à-dire qui sont proches de la page courante).

A moins que votre style étende un autre style de défilement (voir Zend_Paginator_ScrollingStyle_Elastic par exemple), votre style personnalisé devra inévitablement se terminer par quelque chose de similaire à ceci :

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

Il n'y a rien de spécial au sujet de cet appel ; c'est simplement une méthode pratique pour vérifier la validité de la limite inférieure et supérieure et pour renvoyer un tableau de ces bornes au pagineur.

Quand vous êtes prêt à utiliser votre style de défilement, vous devez informer Zend_Paginator dans quel dossier le chercher, en réalisant ceci :

$prefix = 'Mon_Paginator_StyleDefilement';
$path   = 'Mon/Paginator/StyleDefilement/';
Zend_Paginator::addScrollingStylePrefixPath($prefix, $path);


Configuration
blog comments powered by Disqus

Select a Version

Languages Available

Components

Search the Manual