Arkadaşlar, gece yaptığım bir sayfalandırma classı basit, her eve lazım cinsten birşey yapayım dedim.

Mümkünse, görüşlerinizi almak isterim.

<?php

class sayfalama 
{
    public $bilgiler; 
    private $sayfalama = 10; // Altta kaç tane numara gözükecek. 
    public $altkod = ""; 
     
     
    public function hesapla() 
    { 
        $this->sayfalama--; 
        $abx = ceil($this->bilgiler['toplam'] / $this->bilgiler['sfbasina']); // Toplam Sayfa Sayısı 
        $abx = ($abx>0)? $abx : 1; 
        $aby = ($this->bilgiler['sayfa']>=$this->sayfalama-ceil($this->sayfalama/4))?$this->bilgiler['sayfa']-($this->sayfalama/2):1; 
        $aby = ($this->bilgiler['sayfa']+ceil($this->sayfalama/2)<=$abx)?$aby:$abx-$this->sayfalama; //Sayfa Nereden Başlayacak? 
        $aby = ($aby>0)? ceil($aby) : 0; 
        $abz = ($abx>=$this->sayfalama)? $this->sayfalama:$abx; // Eğer $sayfalama dan küçük olursa veri, alt numaralandırma az olsun. 
        //Alt Kodu Oluşturmaya Gönderelim. 
        $this->kodolustur(($aby==0)?1:$aby, $aby+$abz,$this->bilgiler['sayfa'], $abx); 
        return $this->altkod;
         
         
  
         
    } 
     
    private function kodolustur($baslangic,$bitis,$kacinci, $topsayfa) 
    { 
        $dx = explode("[num]",$this->bilgiler['sablon']); 
        
        for($x=$baslangic;$x<=$bitis;$x++) 
        { 
            $this->altkod.= ($x==$baslangic and $x!=1)?' [ <a href="'.$dx[0].'1'.$dx[1].'"> << </a> ]  [ <a href="'. $dx[0].($kacinci-1).$dx[1] .'"> < </a> ] ':""; 
             
            $this->altkod.= ($x==$kacinci)? " <b>".$x."</b>": ' [ <a href="'. $dx[0].$x.$dx[1] .'"> '.$x.' </a> ] '; 
             
            $this->altkod.= ($x==$bitis and $x!=$topsayfa)?' [ <a href="'. $dx[0].($kacinci+1).$dx[1] .'"> > </a> ] [ <a href="'.$dx[0].$topsayfa.$dx[1].'"> >> </a> ]':""; 

        }
    } 
} 


$sayfala = new sayfalama();
$sayfala->bilgiler = array( 'sayfa'     =>2, 
                            'toplam'    =>150, 
                            'sfbasina'  =>10, 
                            'sablon'    =>"/sayfa[num].html");


echo $sayfala->hesapla();

?>

Rev 1: 04.07.2013 - Hesaplama hataları düzeltildi..
Rev 2: 05.07.2013 - Ekrana basım için $sayfala->altkod yerine hesapla ile işlem halledildi. << ve >> butonları dahil edildi. (ilk ve son). Öneri için teşekkürler @Bilgikar
Rev 3: 05.07.2013 - $sayfa; $toplam; $sfbasina; $sablon; değişkenleri $bilgiler dizisine yüklendi ve değişken sayısı azaltıldı.