<?php
/**************************************************************************************
* Class: Pager
* Methods:
* findStart
* findPages
* pageList
* nextPrev
**************************************************************************************/
class Pager
{
/***********************************************************************************
* int findStart (int limit)
* Returns the start offset based on $_GET['page'] and $limit
***********************************************************************************/
function findStart
($limit)
{
if ((!
isset($_GET['page'])) ||
($_GET['page'] ==
"1"))
{
$start =
0;
$_GET['page'] =
1;
}
else
{
$start =
($_GET['page']-1) *
$limit;
}
return $start;
}
/***********************************************************************************
* int findPages (int count, int limit)
* Returns the number of pages needed based on a count and a limit
***********************************************************************************/
function findPages
($count,
$limit)
{
$pages =
(($count %
$limit) ==
0) ?
$count /
$limit :
floor($count /
$limit) +
1;
return $pages;
}
/***********************************************************************************
* string pageList (int curpage, int pages)
* Returns a list of pages in the format of "« < [pages] > »"
***********************************************************************************/
function pageList
($curpage,
$pages)
{
$page_list =
"";
/* Print the first and previous page links if necessary */
if (($curpage !=
1) &&
($curpage))
{
$page_list .=
" <a href=\"".
$_SERVER['PHP_SELF'].
"?page=1\" title=\"First Page\" class='aPager'>«</a> ";
}
if (($curpage-1) >
0)
{
$page_list .=
"<a href=\"".
$_SERVER['PHP_SELF'].
"?page=".
($curpage-1).
"\" title=\"Previous Page\" class='aPager'><</a> ";
}
/* Print the numeric page list; make the current page unlinked and bold */
for ($i=
1;
$i<=
$pages;
$i++
)
{
if ($i ==
$curpage)
{
$page_list .=
"<b>".
$i.
"</b>";
}
else
{
$page_list .=
"<a href=\"".
$_SERVER['PHP_SELF'].
"?page=".
$i.
"\" title=\"Page ".
$i.
"\" class='aPager'>".
$i.
"</a>";
}
$page_list .=
" ";
}
/* Print the Next and Last page links if necessary */
if (($curpage+1) <=
$pages)
{
$page_list .=
"<a href=\"".
$_SERVER['PHP_SELF'].
"?page=".
($curpage+1).
"\" title=\"Next Page\" class='aPager'>></a> ";
}
if (($curpage !=
$pages) &&
($pages !=
0))
{
$page_list .=
"<a href=\"".
$_SERVER['PHP_SELF'].
"?page=".
$pages.
"\" title=\"Last Page\" class='aPager'>»</a> ";
}
$page_list .=
"</td>\n";
return $page_list;
}
/***********************************************************************************
* string nextPrev (int curpage, int pages)
* Returns "Previous | Next" string for individual pagination (it's a word!)
***********************************************************************************/
function nextPrev
($curpage,
$pages)
{
$next_prev =
"";
if (($curpage-1) <=
0)
{
$next_prev .=
"Previous";
}
else
{
$next_prev .=
"<a href=\"".
$_SERVER['PHP_SELF'].
"?page=".
($curpage-1).
"\">Previous</a>";
}
$next_prev .=
" | ";
if (($curpage+1) >
$pages)
{
$next_prev .=
"Next";
}
else
{
$next_prev .=
"<a href=\"".
$_SERVER['PHP_SELF'].
"?page=".
($curpage+1).
"\">Next</a>";
}
return $next_prev;
}
}
?>