Pager is a class to page an array of data.
It is taken as input and it is paged according to various parameters.
Pager also builds links within a specified range,
and allows complete customization of the output (it even works with mod_rewrite).
It is compatible with Pager v.1.x and
Pager_Sliding API
Example 1
This simple example will page the array of alphabetical letters, giving back
pages with 3 letters per page, and links to the previous two / next two pages:
require_once 'Pager/Pager.php';
$params = array(
'mode' => 'Jumping',
'perPage' => 3,
'delta' => 2,
'itemData' => array('a','b','c','d','e',[...omissis...],'z')
);
$pager = & Pager::factory($params);
$data = $pager->getPageData();
$links = $pager->getLinks();
//$links is an ordered+associative array with 'back'/'pages'/'next'/'first'/'last'/'all' links.
//NB: $links['all'] is the same as $pager->links;
//echo links to other pages:
echo $links['all'];
//Pager can also generate <link rel="first|prev|next|last"> tags
echo $pager->linkTags;
//Show data for current page:
echo 'PAGED DATA: ' ; print_r($data);
//Results from methods:
echo 'getCurrentPageID()...: '; var_dump($pager->getCurrentPageID());
echo 'getNextPageID()......: '; var_dump($pager->getNextPageID());
echo 'getPreviousPageID()..: '; var_dump($pager->getPreviousPageID());
echo 'numItems()...........: '; var_dump($pager->numItems());
echo 'numPages()...........: '; var_dump($pager->numPages());
echo 'isFirstPage()........: '; var_dump($pager->isFirstPage());
echo 'isLastPage().........: '; var_dump($pager->isLastPage());
echo 'isLastPageComplete().: '; var_dump($pager->isLastPageComplete());
echo '$pager->range........: '; var_dump($pager->range);
In case you're wondering, $pager->range is a numeric array; its keys are the numbers of
the pages in the current range, and the matching values are booleans (TRUE if its key
represents currentPage, FALSE otherwise). This array can be useful to build the links
manually, e.g. when using a template engine.
Example 2
This example shows how you can use this class with mod_rewite.
Let's suppose we have a .htaccess like this:
Since version 2.2.1, Pager works with PHP 5 too,
but it needs to be called via the factory() method
instead of the constructor (which is deprecated):
require_once 'Pager/Pager.php';
//wrong:
//$pager = & new Pager($params);
//right
$pager = & Pager::factory($params);
//continue as you did before
If you are using a previous revision and cannot update, you need to write
the following code on PHP 5:
//chose your preferred mode [Jumping | Sliding]:
//require_once 'Pager/Jumping.php';
require_once 'Pager/Sliding.php';
//$pager = & new Pager_Jumping($params);
$pager = & new Pager_Sliding($params);
//continue as you did before