Login   Register  
PHP Classes
elePHPant
Icontem

File: CSSPagination.class.php

Recommend this page to a friend!
Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  Classes of Dodit Suprianto  >  CSS Pagination  >  CSSPagination.class.php  
File: CSSPagination.class.php
Role: Class source
Content type: text/plain
Description: CSS Pagination Class File
Class: CSS Pagination
Good Looking of Pagination
 

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() - $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;
    }
}
?>