HEX
Server: Apache/2.2.15 (CentOS)
System: Linux ip-10-0-2-146.eu-west-1.compute.internal 2.6.32-754.35.1.el6.centos.plus.x86_64 #1 SMP Sat Nov 7 11:33:42 UTC 2020 x86_64
User: root (0)
PHP: 5.6.40
Disabled: NONE
Upload Files
File: /www/exchange0old/exchange/classes/Lib/Paging.php
<?php
class Lib_Paging
{
	var $output=array();
	var $prev;
	var $next;
	
	function Lib_Paging($model,$par,$cssstyle)
	{
		if($model='classic')
			$this->doClassicPaging($par,$cssstyle);
	}
	
    function getPaginated()
    {
        return '<style>ul.pagination li a{font-size: 12px !important;}</style><nav><ul class="pagination">'.$this->prev.' '.implode(' ',$this->output).' '.$this->next.'</ul></nav>';
    }
    
	function doClassicPaging($par = array(),$cssstyle)
    {        
        if(empty($_GET['page']))
        {
            $_REQUEST['page']=$_GET['page']= 1; 
            $_SERVER['QUERY_STRING'] = $_SERVER['QUERY_STRING'].'&page=1';
        }

        if(count($par)>0)
        {
            if(!isset($_GET['page']))
            {
                $start = 1;
                $end = ($par['length']>$par['totalpages'] ? $par['totalpages'] : $par['length']);
                $s = 0;
                for($i=$start;$i<=$end;$i++)
                {
                    $tmp = $_SERVER['QUERY_STRING']."&page=".$i;
                    if(empty($_GET['page'])  && $i==1)
                        $this->output[++$s]= '<li class="active"><a>'.$i.'</a></li>';
                    else
                        $this->output[++$s]= '<li><a href="?'.$tmp.'">'.$i.'</a></li>';
                }
                if($par['totalpages']>$par['length'])
                {
                    $tmp = $_SERVER['QUERY_STRING']."&page=".($start+1);
                    $this->next = '<li><a href="?'.($tmp).'">Next </a></li>';
                }
                return true;
            }
            elseif (isset($_GET['page']))
            {
                $cpage = (int)$_GET['page'];
                $mid = (int) ($par['length']/2);
                if($cpage > ($mid+1))
                {
                    $start = ($cpage - $mid);
                    $end = $start + $par['length']-1;
                    $page_diff = abs($cpage - $par['totalpages']);
            
                    if($page_diff < 4)
                    {
                        $page_diff = 4 - $page_diff;
                        
                        $new_start = $start - $page_diff;    
                        if($new_start < 0)
                        {
                            $start = $new_start + 3;
                        }
                        else
                        {
                            $start = $new_start;    
                        }
                    }
                }
                else 
                {
                    $start = 1;
                    $end = ($par['length']>$par['totalpages'] ? $par['totalpages'] : $par['length']);
                }
                
                $s=0;
                for($i=$start;$i<=$end;$i++)
                {
                    $tmp = split('page',$_SERVER['QUERY_STRING']);
                    $q = $tmp[0]."page=".$i;
                    $tmp = split('&',$tmp[1]);                    
                    $q .= (!empty($tmp[1]) ? '&'.$tmp[1] : '');
                    if($_GET['page']==$i)
                    {
                        if($par['totalpages'] != 1)
                        {
                            $this->output[++$s] = '<li class="active"><a>'.$i.'</a></li>';
                        }
                    }
                    else
                    {
                        if($i<=$par['totalpages'])
                            $this->output[++$s] = '<li><a href="?'.$q.' ">'.$i.'</a></li>';                
                    }
                }
                if ($_GET['page']<$par['totalpages'])
                {
                    $tmp = split('page',$_SERVER['QUERY_STRING']);
                    $q = $tmp[0]."page=".($_GET['page']+1);
                    $tmp = split('&',$tmp[1]);                    
                    $q .= (!empty($tmp[1]) ? '&'.$tmp[1] : '');
                    $this->next = '<li><a href="?'.($q).'"> <span aria-hidden="true">></span> </a></li>';
                    
                    $tmp = split('page',$_SERVER['QUERY_STRING']);
                    $q = $tmp[0]."page=".($par['totalpages']);
                    $tmp = split('&',$tmp[1]);                    
                    $q .= (!empty($tmp[1]) ? '&'.$tmp[1] : '');
                    
                    $this->next .= '<li><a href="?'.($q).'" > <span aria-hidden="true">&raquo;</span> </a></li>';
                }
                if($_GET['page']>1)
                {                    
                    $tmp = split('page',$_SERVER['QUERY_STRING']);
                    $q = $tmp[0]."page=1";
                    $tmp = split('&',$tmp[1]);                    
                    $q .= (!empty($tmp[1]) ? '&'.$tmp[1] : '');
                    $this->prev .= '<li> <a href="?'.($q).'"> <span aria-hidden="true">&laquo;</span> </a></li>';
                    
                    $tmp = split('page',$_SERVER['QUERY_STRING']);
                    $q = $tmp[0]."page=".($_GET['page']-1);
                    $tmp = split('&',$tmp[1]);                    
                    $q .= (!empty($tmp[1]) ? '&'.$tmp[1] : '');
                    $this->prev .= '<li> <a href="?'.($q).'"> <span aria-hidden="true"><</span> </a></li>';
                }
            }            
        }
    }
}
?>