Pagination (Sayfalama) Kütüphanesi

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

  1. Sayfalama Ayarları » init()
  2. Sayfa Linklerini Yazdırma » printLinks()
  3. Max. Sayfa Sayısını Belirleme » setMaxPageToShow()
  4. Sayfa Başına Kayıt Sayısını Belirleme » setItemsPerPage()
  5. Toplam Kayıt Sayısını Belirleme » setTotalItems()
  6. URL Pattern Belirleme » setUrlPattern()
  7. Önceki Sayfa Metnini Özelleştirme » setPreviousText()
  8. Sonraki Sayfa Metnini Özelleştirme » setNextText()
  9. Sayfa Numaralarını Özelleştirme » setUlClass(), setLiClass(), setLiActiveClass()

Sayfalama Ayarları

Çok sayıdaki veri dizisini sayfalara bölmek için, gerekli bazı ayarların tanımlanıp init() methoduna parametre verilerek çalıştırılması gerekir.

Parametre Veri Tipi Açıklama
$total Integer Toplam kayıt sayısı
$per_page Integer Her bir sayfadaki kayıt sayısı
$current_page Integer Aktif sayfa numarası
$url_pattern String Sayfalama url yapısı
Pagination::init(100, 10, 1, '/posts/?page=(:num)');

Yukarıdaki örnekte, toplam 100 kayıt, her sayfada 10 kayıt olacak şekilde bölünüyor. Bulunulan sayfa 1 olarak belirleniyor. Url pattern parametresinde yer alan (:num) ifadesi, linkte yer alacak sayfa numarasını gösteriyor.

Sayfa Linklerini Yazdırma

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

Pagination::printLinks();

Yukarıdaki kod aşağıdaki gibi bir çıktı verir;

<ul class="pagination">
	<li><a href="/posts/?page=2">« Önceki</a></li>
	<li><a href="/posts/?page=1">1</a></li>
	<li><a href="/posts/?page=2">2</a></li>
	<li class="active"><a href="/posts/?page=3">3</a></li>
	<li><a href="/posts/?page=4">4</a></li>
	<li><a href="/posts/?page=5">5</a></li>
	<li><a href="/posts/?page=4">» Sonraki</a></li>
</ul>
	

Max. Sayfa Sayısını Belirleme

Sayfalama linkleri yazılırken görüntülenecek maksimum sayfa sayısını belirlemek için setMaxPagesToShow() methodu kullanılır. Burada belirlenen sayıdan daha fazla sayfa olması durumunda ... karakterleri ile daraltma yapılır.

Parametre Veri Tipi Açıklama
$number Integer Max. sayfa sayısı
Pagination::setMaxPagesToShow(5);

Sayfa Başına Kayıt Sayısını Belirleme

Her bir sayfada görüntülenecek kayıt sayısını belirlemek için setItemsPerPage() methodu da kullanılabilir.

Parametre Veri Tipi Açıklama
$number Integer Kayıt sayısı
Pagination::setItemsPerPage(10);

Toplam Kayıt Sayısını Belirleme

Sayfalama yapılacak kayıt sayısını tanımlamak için setTotalItems() methodu da kullanılabilir.

Parametre Veri Tipi Açıklama
$number Integer Toplam kayıt sayısı
Pagination::setTotalItems(100);

URL Pattern Belirleme

Sayfa numaralarına verilecek linklerin yapısını belirlemek için setUrlPattern() methodu da kullanılabilir. Sayfa numarası için (:num) ifadesi kullanılmalıdır.

Tanımlanan URL pattern ile uyumlu olarak route tanımlaması da yapılmalıdır.
Parametre Veri Tipi Açıklama
$pattern String URL pattern
Pagination::setUrlPattern('posts/p/(:num)'); // Örnek ( http://alanadi.com/posts/p/2 )
Pagination::setUrlPattern('posts/?p=(:num)'); // Örnek ( http://alanadi.com/posts/?p=2

Önceki Sayfa Metnini Özelleştirme

Bir önceki sayfaya ulaşmayı sağlayan butonda yer alacak metni özelleştirmek için setPreviousText() methodu kullanılır. Varsayılan değer Previous olarak ayarlanmıştır.

Parametre Veri Tipi Açıklama
$title String Buton metni
Pagination::setPreviousText('Önceki');

Sonraki Sayfa Metnini Özelleştirme

Bir sonraki sayfaya ulaşmayı sağlayan butonda yer alacak metni özelleştirmek için setNextText() methodu kullanılır. Varsayılan değer Next olarak ayarlanmıştır.

Parametre Veri Tipi Açıklama
$title String Buton metni
Pagination::setNextText('Sonraki');

Sayfa Numaralarnı Özelleştirme

Ekrana basılan sayfa numaraları için css stil tanımlaması yapılabilir. Bunun için setUlClass(), setLiClass() ve setLiActiveClass() methodları kullanılır.


# setUlClass()

Sayfalama bölümünün başladığı <ul> HTML elemanına class tanımlamak için kullanılır.

Parametre Veri Tipi Açıklama
$title String Class Adı
Pagination::setUlClass('pagination');

# setLiClass()

Her bir sayfa numarasına ait <li> HTML elemanına class tanımlamak için kullanılır.

Parametre Veri Tipi Açıklama
$title String Class Adı
Pagination::setLiClass('pageNumber');

# setLiActiveClass()

Bulunulan sayfanın sayfa numarasına ait <li> HTML elemanına class tanımlamak için kullanılır.

Parametre Veri Tipi Açıklama
$title String Class Adı
Pagination::setLiActiveClass('active');