• 25-06-2013, 01:53:03
    #1
    Platin üye
    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ı.
  • 25-06-2013, 19:14:58
    #2
    Platin üye
    Yorumlarınızı bekliyorum arkadaşlar
  • 04-07-2013, 23:30:27
    #3
    Platin üye
    Revize,

    $aby
    değişkeni başlangıç ayarları 0 a eşitlendiğinde hesaplama hatası veriyordu.
    Düzeltildi.
  • 04-07-2013, 23:47:15
    #4
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Dürüst olmak gerekirse kullanışsız.
    http://www.php-ease.com/classes/pagi...tml?np=100&s=0
  • 05-07-2013, 03:31:59
    #5
    Platin üye
    Birlikisgu adlı üyeden alıntı: mesajı görüntüle
    Dürüst olmak gerekirse kullanışsız.
    http://www.php-ease.com/classes/pagi...tml?np=100&s=0
    Neresi kullanışsız, eksileri neler? Ne gibi zorlukları var? Verdiğiniz linkteki sayfalandırmaya baktım, kullanılabilir sanıyorum.

    Ne gibi artıları olması lazım ?
  • 05-07-2013, 08:57:18
    #6
    Hero adlı üyeden alıntı: mesajı görüntüle
    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.
    Not: Hesaplama hataları düzeltildi..
    bence gayet güzel bir çalışma
    ayrıca şablon mantığı süper, bu sayede çok kullanışlı olmuş , ben bu classı kullanırım en azından

    sadece ufak bi iki şey :
    '>' atlama linkine tıkladığımızda bir sondraki sayfaya gidiyor, bence 5-10 sayfa birden atlaması lazım

    echo $sayfala->altkod; yazmak yerine hesapla() fonksyonu bu değeri return edersek kullanıcıyı bir koddan kurtarmış oluruz
  • 05-07-2013, 15:37:15
    #7
    Platin üye
    bilgikar adlı üyeden alıntı: mesajı görüntüle
    bence gayet güzel bir çalışma
    ayrıca şablon mantığı süper, bu sayede çok kullanışlı olmuş , ben bu classı kullanırım en azından

    sadece ufak bi iki şey :
    '>' atlama linkine tıkladığımızda bir sondraki sayfaya gidiyor, bence 5-10 sayfa birden atlaması lazım

    echo $sayfala->altkod; yazmak yerine hesapla() fonksyonu bu değeri return edersek kullanıcıyı bir koddan kurtarmış oluruz
    << ve >> Eklendi, dediğiniz gibi hesapla ile artık işlem hallediliyor Yapabileceğimiz bir iyileştirme varsa söyleyin yeter hocam Hem kendim için de sayfalandırma classını geliştirmiş oluyorum Projelerde kullanmak için.
  • 05-07-2013, 17:06:05
    #8
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Bir de bu var:
    http://pehepe.net/pehepe-net-sayfala...lay-sayfalama/
  • 05-07-2013, 17:19:20
    #9
    Platin üye
    erginkeles adlı üyeden alıntı: mesajı görüntüle
    Classın içerisine db ile ilgili işlemlerin girmesini projeden projeye farklı durumlarda fazladan sql sorgularına yol açabileceğini düşünerek pek uygun bulmuyorum hocam. Burada ilk tanımlamada bir çok değişkeni classa gönderiyoruz. Bu biraz gözüme battı, bugün içinde olmazsa yarın. Bu işlemi de dizisel olarak yapıp kodu biraz daha küçülteceğiz.

    Teşekkürler alternatif için.