Modul Public Pages
Public Pages adalah antarmuka (interface) terbuka yang dapat diakses oleh khalayak umum (tanpa perlu login) yang berfungsi sebagai etalase dan informasi dari sistem Haflah.
1. Landing Page (Halaman Utama)
URL Akses: / (Home)
Landing page didesain secara profesional dengan animasi modern untuk memunculkan kesan elegan dan informatif. Komponen utama di Halaman Utama meliputi:
- Hero Carousel / Banners: Slide gambar-gambar besar di bagian paling atas. Ditarik dari database (tabel Banners) yang berstatus
is_active = truedan diurutkan berdasarkansort_order. - Event Mendatang (Upcoming Events): Menampilkan daftar Acara yang statusnya
scheduledatauactive. Maksimal 6 event ditampilkan di halaman depan. - Berita Terkini (Latest Posts): Menampilkan 3 artikel Berita terbaru yang memiliki status
is_published = true. - Galeri Publik: Grid kolase foto kegiatan. Hanya galeri yang tidak terikat pada event spesifik (
event_id IS NULL) yang ditampilkan di publik. - Video Showcase: Carousel video kegiatan yang disematkan dari YouTube/Vimeo menggunakan Lightbox agar bisa diputar langsung tanpa berpindah halaman.
2. Halaman Indeks Spesifik (Katalog)
Karena halaman utama memiliki limit (take 3/6), tersedia halaman katalog terpisah yang mendukung paginasi (Pagination) agar pengguna bisa melihat konten lama.
- Katalog Berita (
/berita): Menampilkan semua Berita dengan grid kartu (Card) berserta pagination per 9 item. - Detail Berita (
/berita/{slug}): Halaman baca artikel penuh, mendukung pemformatan teks HTML murni dan Thumbnail gambar cover. Validasi sistem akan mencegah akses via URL jika berita tidak ter-publish. - Katalog Galeri (
/galeri): Menampilkan semua Album Foto Publik. - Detail Galeri (
/galeri/{id}): Membuka seluruh foto di dalam suatu Album. Menggunakan sistem grid dan Lightbox klik-perbesar. Validasi: Jika galeri tersebut milik suatu Event privat, maka akses publik akan mendapat respon404 Not Found. - Katalog Video (
/video): Kumpulan semua klip tayangan acara.
3. SEO dan Performa
- Caching & Paginasi: Pengambilan (Query) data besar telah dipaginasi untuk mencegah aplikasi menjadi lambat (Performance bottleneck).
- Optimasi Layout: Menggunakan TailwindCSS yang utility-first meminimalkan ukuran CSS ter-compile.