Pagination Plugin

Pagination plugini, çok sayıda verinin sayfalara bölünerek listenmesini sağlar. Sayfalama linkleri özelleştirilebilir yapıdadır. Böylece istenilen sayfalama stili giydirilebilir.

Plugini Dahil Etmek

Pagination plugini, controller içerisinde aşağıdaki şekilde uygulamaya dahil edilir;

$this->load->plugin('pagination');

Sayfalama Ayarları

Çok sayıdaki veri dizisini sayfalara bölmek için, gerekli bazı ayarların tanımlanıp init() methodu ile çalıştırılması gerekir. Ayarların barındırıldığı bir dizi değişkeni parametre olarak alır.

Parametre Veri Tipi
$config Array
// Örnek kullanım
$config = [
    'base_url'    => base_url('URL'), // Sayfalama yapılacak URL adresi
    'per_page'    => 10, // Her sayfada listelenecek kayıt sayısı
    'total_rows'  => 450, // Sayfalanacak toplam kayıt sayısı
    'uri_segment' => 3 // Sayfa numaralarının yer alacağı URL segmenti
];

$this->pagination->init($config);

Sayfalama ayarları yapıldıktan sonra, oluşan sayfa linklerine erişmek için get_links() methodu kullanılır. HTML içerikli string değer döndürür.

// Oluşturulan sayfa linklerini ekrana basar
echo $this->pagination->get_links();

Örnek Ekran Görüntüsü

Plugin tarafından oluşturulan sayfalama linkleri rahatlıkla özelleştirilebilir. Linkler varsayılan olarak aşağıdaki yapıdadır;

<!-- Sayfalama alanı -->
<div>
    <!-- Sayfa Listesi -->
    <ul>
        <!-- İlk Sayfa tagı -->
        <li>İlk</li>
        <!-- Önceki Sayfa tagı -->
        <li>Önceki Sayfa</li>
        <!-- Sayfa tagı -->
        <li>1</li>
        <!-- Sonraki Sayfa tagı -->
        <li>Sonraki</li>
        <!-- Son Sayfa tagı -->
        <li>Son</li>
    </ul>
</div>
Yukarıdaki yapıyı özelleştirmek için aşağıdaki değerlere gerekli tanımlamalar yapılır ve init() methoduna gönderilen parametreye dahil edilir.
$config = [
    // Sayfalama alanı ve listeleme tagları açılışı
    'main_tag_open'   => '<div><ul style="list-style:none;">', 
    // Sayfalama alanı ve listeleme tagları kapanışı
    'main_tag_close'  => '</ul></div>';
    // İlk sayfa linkine ait string değeri. Gösterilmek istenmiyorsa "false" olmalıdır.
    'first_link'      => 'İlk';
    // Son sayfa linkine ait string değeri. Gösterilmek istenmiyorsa "false" olmalıdır. 
    'last_link'       => 'Son';
    // İlk sayfa açılış tagı
    'first_tag_open'  => '<li style="display:inline;padding:3px 7px;margin:0 5px;border:1px solid #bc5858;">';
    // İlk sayfa kapanış tagı
    'first_tag_close' => '</li>';
    // Önceki sayfa linkine ait string değeri
    'prev_link'       => 'Önceki';
    // Önceki sayfa açılış tagı
    'prev_tag_open'   => '<li style="display:inline;padding:3px 7px;margin:0 5px;border:1px solid #bc5858;">';
    // Önceki sayfa kapanış tagı
    'prev_tag_close'  => '</li>';
    // Sonraki sayfa linkine ait string değeri
    'next_link'       => 'Sonraki';
    // Sonraki sayfa açılış tagı
    'next_tag_open'   => '<li style="display:inline;padding:3px 7px;margin:0 5px;border:1px solid #bc5858;">';
    // Sonraki sayfa kapanış tagı
    'next_tag_close'  => '</li>';
    // Son sayfa açılış tagı
    'last_tag_open'   => '<li style="display:inline;padding:3px 7px;margin:0 5px;border:1px solid #bc5858;">';
    // Son sayfa kapanış tagı
    'last_tag_close'  => '</li>';
    // Aktif sayfa açılış tagı
    'cur_tag_open'    => '<li style="display:inline;padding:3px 7px;margin:0 5px;border:1px solid #bc5858;background-color:#bc5858;color:#fff;">';
    // Aktif sayfa kapanış tagı
    'cur_tag_close'   => '</li>';
    // Sayfa numalaralı açılış tagı
    'num_tag_open'    => '<li style="display:inline;padding:3px 7px;margin:0 5px;border:1px solid #bc5858;">';
    // Sayfa numaraları kapanış tagı
    'num_tag_close'   => '</li>';
];