Panada Framework 1.0.0 Documentation

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 Resources\Pagination;

Contoh Penggunaan

Data yang diperlukan dalam menggunakan resource 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

Options

showNumber

Jika tidak ingin menampilkan link-link berupa angka, set paramter ini menjadi false:

$this->pagination->setOption('showNumber', false);

showAll

Untuk menampilkan semua link-link angka, set parameter ini menjadi false:

$this->pagination->setOption('showAll', false);

noHref

Jika data dari link-linknya tidak ingin dibungkus oleh tag link (<a href), set parameter ini menjadi true:

$this->pagination->setOption('noHref', true);

Nilai variable pageLinks akan menghasilkan data array seperti berikut:

Array([link] => paging link [value] => paging value)

Cara membungkus menjadi link html:

prevText

String untuk previous misalnya "Sebelumnya".

$this->pagination->setOption('prevText', 'Sebelumnya');

nextText

String untuk next misalnya "Berikutnya".

$this->pagination->setOption('nextText', 'Berikutnya');

prevNext

Jika Anda tidak ingin menampilkan bagian Previous dan Next, set parameter di bawah menjadi false.

$this->pagination->setOption('prevNext', false);

groupSeparator

Pemisah antara blok angka yang satu dengan yang lainnya. contoh: 1 2 3 ... 22 23 24 ... 100 101 102

$this->pagination->setOption('groupSeparator', '...');

endSize

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->setOption('endSize', 1);

midSize

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->setOption('midSize', 3);

Diskusi