I have the following method that creates and returns markup for my pagination links in PHP.
public function getPaginationLinks($options) {
if($options[\'
You just display the current page plus the previous and the following x (say 4) pages.
If you're on Page 1:
1 2 3 4 5
Page 35:
31 32 33 34 35 36 37 38 39
Page 70:
66 67 68 69 70
You could also add a quick link to the first and last page using « and » for instance.
Example:
$x = 4;
for ($i = $currentPage - $x; $i < $currentPage; $i++)
{
if ($i >= 1) { /* show link */}
else { /* show ellipsis and fix counter */ $i = 1; }
}
/* show current page number without link */
for ($i = $currentPage + 1; $i < $currentPage + $x; $i++)
{
if ($i <= $totalPages) { /* show link */}
else { /* show ellipsis and break */ break; }
}
You can also implement Infinite History / Pagination, which is uber cool. =)
UPDATE: A more elegant version of this @ Codepad.