<?php
/**
* Basic pager example
*/
require_once 'package.oLimit.php';
/**
* How many items are to be displayed on the page
*
*/
DEFINE ('PER_PAGE', 20);
/**
* Defining the array to be displayed
*/
$aTab = range (1, 638, 5);
/**
* Counting how many pages will be needed
*/
$iNbPages = ceil (count ($aTab)/PER_PAGE);
/**
* checking and overwriting if necessary the GET variable (page number p)
*/
if (!isset ($_GET['p']) || !is_numeric ($_GET['p']) || $_GET['p'] < 0 || $_GET['p'] >= $iNbPages) {
$_GET['p'] = 0;
}
/**
* Displaying the pager
*/
$sHtml = '<div>';
for ($i = 0; $i < $iNbPages; $i ++) {
$iDisplay = $i + 1;
$sColor=(isset($_GET['p']) && (int)$_GET['p'] === $i)?'background-color: rgb(195,195,195);':'';
$sHtml .= <<<HTML
<span style="border: 1px solid rgb(0,0,0); padding: 3px; {$sColor}"><a href="limit.pager.php?p={$i}">{$iDisplay}</a></span>
HTML;
}
$sHtml .= '</div><br /><br />';
/**
* Determining starting offset from current page number
*/
$iOffset = (int)$_GET['p'] * PER_PAGE;
echo $sHtml;
try {
/**
* Creating the arrayLimit object, using the factory, and determined values (starting offset, items to be displayed on a page)
*/
$limit = LimitFactory::factory ('ARRAY', $aTab, $iOffset, PER_PAGE);
while (true === $limit -> valid()) {
echo $limit -> key (), ' => ', $limit -> current (), '<br />';
$limit -> next ();
}
} catch (Exception $e) {
echo $e -> getMessage (), ' on line ', $e -> getLine ();
}
?>
|