Pagination Preset Stabil di Jyavani CMS: Limit, Urutan Acak, dan Theme Section

Pagination Preset Stabil di Jyavani CMS: Limit, Urutan Acak, dan Theme Section

Jyavani CMS kini menyediakan pagination stabil untuk Shortcode Preset yang telah dipublikasikan. Fitur ini memungkinkan sebuah koleksi reusable menentukan jumlah item per halaman, batas total item yang dapat ditampilkan, dan titik awal koleksi. Urutan acak juga tetap konsisten ketika pengunjung berpindah halaman.

Kemampuan ini tersedia pada Jyavani Core 2.3.161 dan bekerja untuk sumber bawaan Posts and Pages. Fitur dirancang untuk daftar reusable yang ditampilkan di konten, sidebar, preview, dan Theme Section tanpa menyalin query ke setiap template theme.

Mengapa pagination Preset penting

Shortcode Preset menyimpan query konten dan Collection Layout sebagai satu objek reusable. Sebelumnya, Preset dapat menampilkan daftar terbatas, tetapi koleksi yang lebih besar memerlukan logika route atau template terpisah. Pagination kini mempertahankan perilaku tersebut di dalam Preset.

Preset yang sama tetap dapat disajikan dalam konteks berbeda. Sidebar dapat memakai layout mini yang ringkas, sedangkan Theme Section dapat menggunakan grid yang lebih lebar dan mengaktifkan beberapa halaman. Query tetap dikelola dari satu tempat.

Filter konten Shortcode Preset Jyavani yang menampilkan kontrol Limit, Max Items, Offset, dan Pagination
Editor Preset menjelaskan hubungan antara ukuran halaman, batas total hasil, offset awal, dan pagination.

Memahami empat kontrol utama

Limit

Limit adalah jumlah item yang ditampilkan pada setiap halaman. Ketika pagination dinonaktifkan, nilai ini tetap menjadi jumlah total item yang dirender oleh koleksi.

Max Items

Max Items membatasi jumlah item yang tersedia di seluruh halaman. Pagination hanya ditawarkan ketika Max Items lebih besar daripada Limit. Sebagai contoh, Limit 5 dan Max Items 20 dapat menghasilkan maksimal empat halaman.

Offset

Offset melewati sejumlah item yang cocok sebelum halaman pertama. Offset 10 berarti sepuluh data pertama dikeluarkan sebelum koleksi berhalaman dimulai; nilai ini tidak berarti “mulai dari halaman kedua.”

Pagination

Aktifkan Pagination setelah Max Items dibuat lebih besar daripada Limit. Core terlebih dahulu merender tautan biasa agar navigasi tetap dapat digunakan tanpa JavaScript, kemudian meningkatkannya menjadi AJAX ketika browser mendukungnya.

Cara mengatur Preset dengan pagination

  1. Buka Shortcodes, lalu pilih Preset yang sudah ada atau buat Preset baru.
  2. Pilih Posts and pages sebagai sumber konten.
  3. Pilih Article atau Page, kemudian atur kategori, penulis, tanggal, dan urutan sesuai kebutuhan.
  4. Isi Limit dengan jumlah item yang diinginkan per halaman.
  5. Isi Max Items dengan nilai yang lebih besar daripada Limit.
  6. Gunakan Offset hanya jika koleksi memang perlu melewati hasil awal.
  7. Atur Pagination menjadi Yes dan gunakan Preview with Real Data untuk memeriksa hasilnya.
  8. Simpan Preset setelah layout, empty state, dan navigasinya terverifikasi.

AJAX dan riwayat browser yang stabil

Setiap koleksi berhalaman memperoleh query key deterministik yang berasal dari identitas efektif Preset dan override yang didukung. Konfigurasi berbeda pada satu halaman tetap terisolasi, sedangkan beberapa instance dengan query efektif yang sama akan tetap sinkron.

Navigasi AJAX mempertahankan parameter query lain, memperbarui URL browser, mendukung tombol Back, dan mengembalikan fokus ke koleksi yang diperbarui. Tautan biasa tetap menjadi fallback progresif jika JavaScript tidak tersedia atau permintaan asinkron gagal.

Urutan acak tanpa item yang berpindah-pindah

Query acak biasa dapat berubah setiap kali halaman dimuat. Kondisi ini dapat menimbulkan item duplikat atau item yang terlewat saat pengunjung berpindah halaman. Jyavani mengatasinya dengan memberikan seed acak terbatas pada koleksi berhalaman. Perpindahan halaman dan riwayat browser mempertahankan seed tersebut, sehingga satu sesi penelusuran memakai satu urutan yang konsisten.

Live Preview Jyavani yang menampilkan Card Grid acak berisi empat kartu dan empat tautan pagination
Card Grid acak tetap stabil selama satu rangkaian pagination dan tetap dapat diacak ulang secara sengaja.

Theme dapat menyediakan aksi acak ulang khusus. Aksi tersebut sengaja menghapus nilai halaman dan seed lama agar urutan baru dibuat, tetapi tetap mempertahankan parameter query lain yang tidak terkait.

Menggunakan Preset dari Theme Section

Theme Section berbasis Preset memisahkan kepemilikan data dari kepemilikan presentasi. Preset memiliki filter sumber dan Collection Layout. Theme Section memiliki heading, ringkasan, wrapper, serta override presentasi yang memang disengaja.

<?= render_shortcode_preset(
    $pdo,
    'featured_articles',
    [
        'layout' => 'grid',
        'limit' => 4,
        'max_items' => 20,
        'pagination' => '1',
    ],
    ['surface' => 'theme_section.home.featured']
) ?>

Runtime override sengaja dibatasi. Override tidak dapat mengganti kepemilikan sumber, filter penulis atau pembuat, maupun batas tanggal yang dilindungi. Dengan demikian, sebuah section reusable tidak dapat mengubah kebijakan query yang disimpan di Preset secara diam-diam.

Cakupan saat ini dan pemeriksaan praktis

  • Pagination Core saat ini berlaku untuk sumber bawaan Posts and Pages.
  • Custom source provider tetap bekerja sebagai provider satu batch, kecuali provider memiliki kontrak terpisah untuk perilaku lain.
  • Pagination tidak aktif ketika Max Items lebih kecil atau sama dengan Limit.
  • Uji tautan biasa, navigasi AJAX, tombol Back, beberapa instance Preset, dan urutan acak sebelum memublikasikan integrasi theme.
  • Simpan presentasi homepage yang besar di Theme Section terdaftar, bukan dengan menduplikasi query Preset di file template.

Pagination Preset yang stabil membuat koleksi reusable berukuran besar menjadi praktis tanpa mengurangi progressive enhancement atau kejelasan kepemilikan query. Theme developer juga memperoleh batas yang bersih: data dikonfigurasi sekali di CMS, lalu disusun melalui lapisan presentasi yang tetap berfokus pada desain.