Pagination
Pagination adalah proses membagi konten web dan menampilkannya pada halaman terpisah (http://en.wikipedia.org/wiki/Pagination_(web)).
Sebagai contoh misalnya ada sebuah halaman yang berisi daftar koleksi musik yang jumlah totalnya mencapai 200 item. Jika ditampilkan semua item, maka halaman tersebut akan mejadi sangat panjang. Untuk memudahkan dalam melihat data, maka data tadi dipecah-pecah menjadi beberapa halaman di mana setiap halaman ditampilkan data dengan jumlah maksimal yang telah ditentukan. Dengan begitu dalam mengaksesnya menjadi list halaman 1, list halaman 2 list halaman 3 dst.
Inisialisasi
Sebelum digunakan library pagination harus diinisialisasi terlebih dahulu.
$this->pagination = new Library_pagination();
Contoh Penggunaan
Data yang diperlukan dalam menggunakan library ini adalah:
- Total data
- Posisi halaman saat ini. Defaultnya adalah halaman 1.
- URL Controller yang menangani proses paging.
- Data yang akan ditampilkan.
Proses pagination sangat terkait dengan pengambilan data di database, berikut adalah contoh querey untuk paging di dalam model:
Berikut adalah contoh controller yang menangani pagination:
Sekarang kita buat bagian view untuk menampilkan data dan link pagination:
Selanjutnya akses alamat berikut untuk mendapatkan list halaman 1:
http://www.mysite.com/music/lists/
Halaman 2 alamatnya:
http://www.mysite.com/music/lists/2
Halaman 10 alamatnya:
http://www.mysite.com/music/lists/10
Kostumisasi
show_number
Jika tidak ingin menampilkan link-link berupa angka, set paramter ini menjadi false:
$this->pagination->show_number = false;
show_all
Untuk menampilkan semua link-link angka, set parameter ini menjadi false:
$this->pagination->show_all = false;
no_href
Jika data dari link-linknya tidak ingin dibungkus oleh tag link (<a href), set parameter ini menjadi true:
$this->pagination->no_href = true;
Nilai variable page_links akan menghasilkan data array seperti berikut:
Array([link] => paging link [value] => paging value)
Cara membungkus menjadi link html:
prev_text
String untuk previous misalnya "Sebelumnya".
$this->pagination->prev_text = 'Sebelumnya';
next_text
String untuk next misalnya "Berikutnya".
$this->pagination->next_text = 'Berikutnya';
group_separator
Pemisah antara blok angka yang satu dengan yang lainnya. contoh: 1 2 3 ... 22 23 24 ... 100 101 102
$this->pagination->group_separator = '...';
end_size
Berapa banyak jumlah angka yang ditampilkan di blok angka terakhir. Jika di set 2 maka hasilnya akan 1 2 ... 10 11 12 ... 100 101
$this->pagination->end_size = 1;
mid_size
Jumlah angka sebelum dan sesudah angka paging saat ini. Jika di set 2 maka hasilnya akan 1 2 ... 9 10 [11] 12 13 ... 100 101
$this->pagination->mid_size = 3;