12
pagerange
page_range
SYNOPSIS
page_range($page, $npages, $offset=1)
DESCRIPTION
page_range retourne un tableau des numéros de page à afficher dans un sélecteur de pages.
$page est la page courante, $npages est le nombre total de pages et $offset indique le nombre de numéros de page affichés avant et après la page courante.
EXAMPLE
php > require 'library/pagerange.php';
php > print_r(page_range(8, 20));
Array
(
[0] => 1
[1] => 7
[2] => 8
[3] => 9
[4] => 20
)
CODE
- function page_range($page, $npages, $offset=1) {
- $range=2*$offset+1;
- if ($npages <= $range+$offset) {
- $pagenums=range(1, $npages);
- }
- else if (($page - $offset) <= 2) {
- $pagenums=array_merge(range(1, $range+1), array($npages));
- }
- else if (($page + $offset) >= ($npages-1)) {
- $pagenums=array_merge(array(1), range($npages-$range, $npages));
- }
- else {
- $pagenums=array_merge(array(1), range($page-$offset, $page+$offset), array($npages));
- }
- return $pagenums;
- }
Commentaires