PHP Classes

File: CSSPagination.class.php

Recommend this page to a friend!
  Classes of Dodit Suprianto   CSS Pagination   CSSPagination.class.php   Download  
File: CSSPagination.class.php
Role: Class source
Content type: text/plain
Description: CSS Pagination Class File
Class: CSS Pagination
Good Looking of Pagination
Author: By
Last change: changing at website? to be website&
Date: 15 years ago
Size: 4,535 bytes
 

Contents

Class file image Download
<?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;
    }
}
?>