What is Pager?
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 = & new Pager($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']
//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:
| ---------
RewriteEngine on
#Options FollowSymlinks
RewriteBase /
RewriteRule ^articles/([a-z])/art([0-9])\.html$ /article.php?num=&month= [L]
--------- |
It should transform an url like "/articles/march/art15.html"
into "/article.php?num=15&month=march"
| require_once 'Pager/Pager.php';
$month = 'september';
$params = array(
'mode' => 'Sliding',
'append' => false,
'urlVar' => 'num',
'path' => 'http://myserver.com/articles/' . $month,
'fileName' => 'art%d.html', //Pager replaces "%d" with page number...
'itemData' => array('a','b','c',[...omissis...],'z'),
'perPage' => 3
);
$pager = & new Pager($params);
$data = $pager->getPageData();
echo $pager->links;
echo 'Data for current page: '; print_r($data); |