CodeIgniter - Pagination Library

Hemen hemen yaptığım bütün projelerde CodeIgniter kullanmaya başladım. CodeIgniter’ın yetmediği yerler olsa da, kendi yazdığım kütüphaneleri CodeIgniter’da kullanılacak şekilde revize ederek ya da baştan yeni kütüphaneler oluşturarak kullanmak işlerimi çabuk bitirmek açısından önemli bir hal aldı benim için.

CodeIgniter’ın kendi içinde bulunan sayfalama kütüphanesini açıkçası pek beğenmedim. Hem hantal oluşu hem de kullanımı açısından biraz fazla teferruat içermesi bunun en büyük sebeplerinden. Durum böyle olunca bende kollarımı sıvayıp daha önceki projelerde kullandığım sayfalama methodunu CodeIgniter’da kullanılabilecek şekle getirdim.

Ayrıca geçen gün rastladığım ve burada bulunan sayfalama sitillerini’de kütüphane içerisine seçilebilir şekilde ekledim. Gayet kullanışlı oldu.

Yazdığım kütüphaneyi kullanmak için yapmanız gereken, ekte bulunan h2bPagination.php dosyasını application klasörü içinde bulunan “library” klasörünün içine atmak. CSS dosyasını da istediğiniz bir yere koyup sayfalama yapılacak view dosyası içine import edebilirsiniz.

Mode Dosyamız aşağıda ki gibi olsun.

< ?php
// ...

/* model dosyamız */

class h2bUser extends Model{
public function __construct(){
parent::Model();
}

public function GetAllUsers($offset, $rowCount){
$users = NULL;

$result = $this->db->select(’UserID, Name, Surname, Nick, Email’);
->from(’users’)
->orderby(’Name’, ‘ASC’)
->limit($rowCount, $offset)
->get();

if($result->num_rows() > 0){
$users = $result->result_array();
}

$result->free_result();

return $users;
}

public function TotalUser(){
$result = $this->db->select(’COUNT(*) AS Total’)->from(’users’)->get();

if($result->num_rows() > 0){
return (int)$result->row()->Total;
}

return 0;
}
}

//…
?>

Controller dosyamız aşağıda ki gibi olsun.

< ?php
//...
/* controller dosyamız */

class user_controller extends Controller{
public $viewData = array();

public function __construct(){
parent::Controller();

$this->load->model(’h2bUser’);
}

public function index(){
$this->load->library(’h2bPagination’);
$this->h2bpagination->init(array(
‘Style’			=> ‘digg’,						// Bu Properties opsiyoneldir. (clean, digg, flickr)… bu değeri vermediğiniz taktirde varsayılan olarak “clean” sitili ile sayfalama yapılacaktır.
‘RowCount’ 		=> 20,							// Bir sayfada kaç kayıt gösterileceği
‘Url’ 			=> ‘member/user’,				// burası sizin ayarlarınıza göre değişebilir
‘Page’ 			=> $this->uri->segment(3),		// burası sizin ayarlarınıza göre değişebilir
‘RecordCount’ 	=> $this->h2bUser->TotalUser()	// Toplam ne kadar kayıt olduğu
));

/*
Kütüphanemizi ayrıca şu şekilde kullanabiliriz… Siz nasıl kullanmayı uygun buluyorsanız (((:

$this->h2bpagination->Style			= ‘digg’;
$this->h2bpagination->RowCount		= 20;
$this->h2bpagination->Url			= ‘member/user’;
$this->h2bpagination->Page			= $this->uri->segment(3);
$this->h2bpagination->RecordCount	= $this->h2bUser->TotalUser();
$this->h2bpagination->init();

*/

$this->viewData['Members'] = $this->h2bUser->GetAllUsers(
$this->h2bpagination->Offset,
$this->h2bpagination->RowCount
);

$this->load->view(’member/user/index_view’, $this->viewData);
}

}
//…
?>

Daha sonra yapmamız gereken sadece sayfaları view dosyamızda yazdırmak kalıyor.

< ?php $this->h2bpagination->generate_page_links(); ?>

Görüldüğü gibi kullanımı gayet basit. CodeIgniter h2bPagination kütüphanesini buradan indirebilirsiniz.


Benzer Yazılar

EkleBunu Sosyal Paylaşım Butonu

4 Response to “CodeIgniter - Pagination Library”


  1. 1 Mustafa ILIKKAN

    CodeIgniter (CI) ile ben de yeni tanıştım, php ile uygulama geliştiren herkese tavsiye ederim. MVC mimarisini kullanarak işler çok kolaylaştı. CI kodu çok temiz yazılmş, dökümantasyon ve arkasındaki community desteği mükemmel. Bence Zend Framework veya Symfony gibi karmaşık frameworkler yerine CI kullanmak en mantıklısı.

  1. 1 oyyla.com
  2. 2 www.tusul.com
  3. 3 webiket.net

Leave a Reply