Продвинутое использование Создание собственных адаптеров к источникам данных Вы можете столкнуться с таким типом данных, для которого не предусмотрено адаптера. В этом случае нужно создать собственный адаптер. Для этого нужно реализовать интерфейс Zend_Paginator_Adapter_Interface. Он включает в себя два метода: count() getItems($offset, $itemCountPerPage) Кроме того, нужно реализовать конструктор, который принимает источник данных в качестве параметра и сохраняет его в защищенном или закрытом свойстве. Как его обрабатывать - решать вам. Если вы когда-либо использовали SPL-интерфейс Countable, то знаете, для чего используется метод count(). В Zend_Paginator он возвращает общее количество элементов в наборе данных. Метод getItems() ненамного сложнее. Он должен принимать смещение и количество элементов на странице и возвращать соответствующий кусок данных. В случае массива он мог бы выглядеть следующим образом: _array, $offset, $itemCountPerPage);]]> Посмотрите, как реализованы адаптеры, входящие в поставку Zend Framework (все они реализуют Zend_Paginator_Adapter_Interface), чтобы понять, как реализовать свой адаптер. Создание своих стилей прокрутки При создании своего стиля прокрутки требуется, чтобы он реализовывал интерфейс Zend_Paginator_ScrollingStyle_Interface, который определяет единственный метод, getPages(): Этот метод должен вычислять верхний и нижний пределы номеров страниц в ряде так называемых "локальных" страниц (т.е. страниц, которые находятся рядом с текущей страницей). Если только ваш стиль прокрутки не наследует от уже существующего (для примера смотрите Zend_Paginator_ScrollingStyle_Elastic), то этот метод должен заканчиваться чем-то вроде следующего кода: getPagesInRange($lowerBound, $upperBound);]]> Этим вызовом не делается ничего специального, данный метод просто для удобства. Он проверяет на корректность верхний и нижний пределы и возвращает массив номеров страниц для постраничной навигации. Для того, чтобы использовать новый стиль прокрутки, следует указать Zend_Paginator-у, в какой директории он находится. Для этого сделайте следующее: