CSS Pagination

Posted by Admin on Oct 26 2008 | Uncategorized

A Pagination is process to split a large number of records to be several records per page which you can determine how much number of records per page by your self. For example, you will be load 1000 records into your web page in one page, that is disadvantage performance for your server because it’s to hard and slowly process. To be wise if you use pagination mechanism.


How it can be? for load 1000 records, you can splitting to be 10 records per page. it means that you have 100 pages. So we need to make page index, also previous and next page navigation to cover all records.

Screenshoot:

Download CSSPagination

CSSPagination.class.php code files is:

<code>

<?php

/**
* @author Dodit Suprianto
* Email: d0dit@yahoo.com
* Website: http://doditsuprianto.com, http://goiklan.co.nr
* Website: http://www.meozit.com, http://easyads.co.nr
*
* CSSPagination is a pagination class which combines with Cascading Style Sheet for good looking style;
* CSSPagination has main function to split all records before they will be loaded into one website,
* to be several records in one page (you can determine how many records in one page).
* So, if you want to jump at the other page, you can choose once of them.
* CSSPagination is easy to use and good looking. I try to throw the complexity code.
* The most important is, that you can change the CSS code to make it suitable with your own page style.
*/

class CSSPagination
{
private $totalrows;
private $rowsperpage;
private $website;
private $page;
private $sql;

public function __construct($sql, $rowsperpage, $website)
{
$this->sql = $sql;
$this->website = $website;
$this->rowsperpage = $rowsperpage;
}

public function setPage($page)
{
if (!$page) { $this->page=1; } else  { $this->page = $page; }
}

public function getLimit()
{
return ($this->page - 1) * $this->rowsperpage;
}

private function getTotalRows()
{
$result = @mysql_query($this->sql) or die (”query failed!”);
$this->totalrows = mysql_num_rows($result);
}

private function getLastPage()
{
return ceil($this->totalrows / $this->rowsperpage);
}

public function showPage()
{
$this->getTotalRows();

$pagination = “”;
$lpm1 = $this->getLastPage() - 1;
$page = $this->page;
$prev = $this->page - 1;
$next = $this->page + 1;

$pagination .= “<div class=\”pagination\”";
if($margin || $padding)
{
$pagination .= ” style=\”";
if($margin)
$pagination .= “margin: $margin;”;
if($padding)
$pagination .= “padding: $padding;”;
$pagination .= “\”";
}
$pagination .= “>”;

if ($this->getLastPage() > 1)
{
if ($page > 1)
$pagination .= “<a href=$this->website&page=$prev>« prev</a>”;
else
$pagination .= “<span class=\”disabled\”>« prev</span>”;

if ($this->getLastPage() < 9)
{
for ($counter = 1; $counter <= $this->getLastPage(); $counter++)
{
if ($counter == $page)
$pagination .= “<span class=\”current\”>”.$counter.”</span>”;
else
$pagination .= “<a href=$this->website&page=$counter>”.$counter.”</a>”;
}
}

elseif($this->getLastPage() >= 9)
{
if($page < 4)
{
for ($counter = 1; $counter < 6; $counter++)
{
if ($counter == $page)
$pagination .= “<span class=\”current\”>”.$counter.”</span>”;
else
$pagination .= “<a href=$this->website&page=$counter/>”.$counter.”</a>”;
}
$pagination .= “…”;
$pagination .= “<a href=$this->website&page=$lpm1>”.$lpm1.”</a>”;
$pagination .= “<a href=$this->website&page=”.$this->getLastPage().”>”.$this->getLastPage().”</a>”;
}
elseif($this->getLastPage() - 3 > $page && $page > 1)
{
$pagination .= “<a href=$this->website&page=1>1</a>”;
$pagination .= “<a href=$this->website&page=2>2</a>”;
$pagination .= “…”;
for ($counter = $page - 1; $counter <= $page + 1; $counter++)
{
if ($counter == $page)
$pagination .= “<span class=\”current\”>”.$counter.”</span>”;
else
$pagination .= “<a href=$this->website&page=$counter>”.$counter.”</a>”;
}
$pagination .= “…”;
$pagination .= “<a href=$this->website&page=$lpm1>$lpm1</a>”;
$pagination .= “<a href=$this->website&page=”.$this->getLastPage().”>”.$this->getLastPage().”</a>”;
}
else
{
$pagination .= “<a href=$this->website&page=1>1</a>”;
$pagination .= “<a href=$this->website&page=2>2</a>”;
$pagination .= “…”;
for ($counter = $this->getLastPage() - 4; $counter <= $this->getLastPage(); $counter++)
{
if ($counter == $page)
$pagination .= “<span class=\”current\”>”.$counter.”</span>”;
else
$pagination .= “<a href=$this->website&page=$counter>”.$counter.”</a>”;
}
}
}

if ($page < $counter - 1)
$pagination .= “<a href=$this->website&page=$next>next »</a>”;
else
$pagination .= “<span class=\”disabled\”>next »</span>”;
$pagination .= “</div>\n”;
}

return $pagination;
}
}
?>

</code>

1 comment for now

Next »