Selama bertahun-tahun, pengembang template Blogger mengandalkan conditional tag klasik seperti data:blog.pageType untuk menentukan elemen apa saja yang harus ditampilkan pada setiap jenis halaman. Pendekatan tersebut memang masih berfungsi hingga sekarang, tetapi seiring berkembangnya mesin template engine Blogger, Google memperkenalkan sekumpulan variabel baru melalui namespace data:view.* yang dikenal sebagai Tag Kondisional Blogger V3.
Perlu dipahami bahwa istilah "Blogger V3" pada artikel ini mengacu pada versi Template Engine Blogger yang menggunakan b:layoutsVersion='3', Hingga saat ini, V3 masih menjadi versi terbaru dari sistem template Blogger yang tersedia untuk publik.
Perubahan ini bukan sekadar pergantian nama variabel. Blogger V3 membawa model pengondisian yang lebih konsisten, lebih mudah dibaca, dan lebih fleksibel dibandingkan generasi sebelumnya. Bagi pengembang template modern, memahami data:view.* merupakan langkah penting untuk menghasilkan tema yang lebih bersih, efisien, dan mudah dipelihara.
Evolusi dari data:blog.pageType
Pada template Blogger klasik, identifikasi halaman umumnya dilakukan melalui variabel berikut.
<b:if cond='data:blog.pageType == "item"'>
Meskipun sederhana, pendekatan tersebut memiliki beberapa keterbatasan. Pengembang harus menghafal berbagai nilai string seperti "index", "item", "archive", "static_page", dan "error_page". Selain itu, penulisan ekspresi menjadi kurang intuitif ketika kondisi mulai bertambah kompleks.
Blogger V3 menggantinya dengan properti boolean yang secara langsung menggambarkan keadaan halaman.
<b:if cond='data:view.isPost'>
Sintaks tersebut jauh lebih mudah dipahami karena menyatakan kondisi secara eksplisit tanpa perlu melakukan perbandingan terhadap nilai string tertentu.
Mengenal Namespace data:view
Seluruh tag kondisional generasi baru berada di dalam namespace data:view. Namespace ini menyediakan informasi mengenai halaman yang sedang diakses, mulai dari jenis halaman, URL, metadata, hingga parameter pencarian.
Sebagian besar properti pada data:view bertipe Boolean, sehingga dapat langsung digunakan sebagai kondisi pada elemen <b:if>.
Sebagai contoh:
<b:if cond='data:view.isHomepage'> ... </b:if>
Kode tersebut hanya akan dievaluasi ketika pengunjung berada di halaman utama blog.
Daftar Tag Kondisional Utama
Berikut adalah tag kondisional yang paling sering digunakan dalam pengembangan template Blogger V3.
| Tag | Fungsi |
data:view.isHomepage
|
Bernilai benar ketika halaman adalah beranda. |
data:view.isPost
|
Menunjukkan halaman artikel tunggal. |
data:view.isPage
|
Menunjukkan halaman statis. |
data:view.isSingleItem
|
Bernilai benar pada artikel maupun halaman statis. |
data:view.isMultipleItems
|
Digunakan ketika halaman menampilkan daftar artikel. |
data:view.isArchive
|
Menunjukkan halaman arsip. |
data:view.isLabelSearch
|
Menunjukkan halaman label. |
data:view.isSearch
|
Menunjukkan hasil pencarian. |
data:view.isError
|
Digunakan pada halaman kesalahan (404). |
data:view.isPreview
|
Menandakan mode pratinjau artikel. |
data:view.isLayoutMode
|
Aktif ketika tema sedang dibuka melalui editor tata letak Blogger. |
Variabel-variabel tersebut dapat dikombinasikan menggunakan operator logika sehingga memungkinkan pembuatan kondisi yang jauh lebih kompleks.
Selain menyediakan kondisi, namespace data:view juga menyediakan berbagai informasi mengenai halaman yang sedang ditampilkan. Beberapa di antaranya adalah sebagai berikut.
| Variable | Keterangan |
data:view.title
|
Judul halaman. |
data:view.description
|
Deskripsi halaman. |
data:view.url
|
URL aktif. |
data:view.url.canonical
|
URL kanonis. |
data:view.featuredImage
|
Gambar utama artikel. |
data:view.locale
|
Bahasa blog. |
Sebagai contoh, URL kanonis dapat dimanfaatkan untuk membuat kondisi yang lebih spesifik.
<b:if cond='data:view.url.canonical contains "/camping/"'>
Pendekatan ini banyak digunakan ketika pengembang ingin memberikan tata letak khusus pada kelompok artikel tertentu tanpa harus membuat halaman baru.
Halaman Label dan Pencarian
Blogger V3 juga menyediakan informasi tambahan untuk halaman hasil pencarian maupun label.
Nama label aktif dapat diperoleh melalui:
<data:view.searchLabel/>
Sedangkan kata kunci pencarian tersedia melalui:
<data:view.searchQuery/>
Keberadaan variabel tersebut memungkinkan pengembang membuat judul halaman yang lebih dinamis atau menampilkan pesan yang disesuaikan dengan konteks pencarian pengguna.
Operator Logika yang Didukung
Salah satu peningkatan terbesar pada Blogger V3 adalah dukungan terhadap ekspresi logika yang lebih lengkap. Berbeda dengan template generasi awal yang hanya mendukung operasi dasar, mesin template V3 menyediakan operator logika, perbandingan, pencarian, hingga operator kondisional (ternary) sehingga penulisan ekspresi menjadi lebih ringkas dan mudah dipahami.
Berikut operator yang dapat digunakan pada atribut cond.
| Operator | Fungsi |
and
|
Menggabungkan dua atau lebih kondisi. Seluruh kondisi harus bernilai benar (true). |
or
|
Menggabungkan beberapa kondisi. Cukup salah satu kondisi bernilai benar. |
not
|
Membalik nilai logika suatu kondisi. true menjadi false, begitu pula sebaliknya. |
!
|
Bentuk singkat dari operator not. |
==
|
Membandingkan apakah dua nilai sama. |
!=
|
Membandingkan apakah dua nilai berbeda. |
>
|
Memeriksa apakah nilai di sebelah kiri lebih besar daripada nilai di sebelah kanan. |
<
|
Memeriksa apakah nilai di sebelah kiri lebih kecil daripada nilai di sebelah kanan. |
>=
|
Memeriksa apakah nilai lebih besar atau sama dengan nilai pembanding. |
<=
|
Memeriksa apakah nilai lebih kecil atau sama dengan nilai pembanding. |
contains
|
Memeriksa apakah sebuah string mengandung substring tertentu atau koleksi memiliki elemen tertentu. Sangat berguna untuk memeriksa URL, label, maupun teks. |
in
|
Memeriksa apakah suatu nilai termasuk dalam sekumpulan nilai yang telah ditentukan. |
?:
|
Operator kondisional (ternary operator) untuk memilih satu dari dua nilai berdasarkan hasil evaluasi suatu kondisi. |
()
|
Digunakan untuk mengelompokkan ekspresi agar urutan evaluasi menjadi lebih jelas. |
Contoh Penggunaan
Pada praktiknya, pengembang jarang menggunakan satu kondisi saja. Sebagian besar template modern menggabungkan beberapa kondisi sekaligus.
Sebagai contoh, menyembunyikan widget tertentu pada halaman artikel dan halaman statis dapat dilakukan dengan:
<b:if cond='not data:view.isSingleItem'>
Sementara itu, untuk menampilkan elemen hanya pada halaman beranda dan arsip:
<b:if cond='data:view.isHomepage or data:view.isArchive'>
Penggunaan ekspresi semacam ini menghasilkan kode yang lebih mudah dibaca sekaligus mengurangi kompleksitas struktur XML.
Kompatibilitas dengan Template Lama
Walaupun Blogger V3 telah menjadi standar baru, Google tetap mempertahankan kompatibilitas terhadap variabel klasik seperti:
-
data:blog.pageType -
data:blog.url -
data:blog.homepageUrl -
data:blog.searchQuery
data:view.* jauh lebih disarankan karena memiliki struktur yang lebih konsisten dan berpotensi memperoleh dukungan fitur baru di masa mendatang.Praktik Terbaik
Dalam mengembangkan template Blogger modern, terdapat beberapa praktik yang layak diterapkan.
- Gunakan
data:view.*sebagai standar utama untuk seluruh kondisi halaman. - Hindari penggunaan
data:blog.pageTypepada proyek baru kecuali untuk menjaga kompatibilitas dengan template lama. - Manfaatkan operator logika untuk mengurangi jumlah blok
<b:if>yang tidak diperlukan. - Gunakan
data:view.url.canonicalhanya ketika tidak tersedia tag kondisional yang lebih spesifik. - Susun ekspresi logika secara sederhana agar mudah dipahami dan dipelihara.
Penutup
Tag Kondisional Blogger V3 merupakan salah satu penyempurnaan paling signifikan pada sistem template Blogger dalam beberapa tahun terakhir. Dengan memperkenalkan namespace data:view.*, Blogger menghadirkan pendekatan yang lebih deklaratif, mudah dibaca, dan lebih fleksibel dibandingkan mekanisme kondisional generasi sebelumnya.
Bagi pengembang tema maupun blogger yang gemar melakukan kustomisasi template, migrasi menuju data:view.* bukan hanya membuat kode lebih modern, tetapi juga meningkatkan keterbacaan, kemudahan pemeliharaan, dan kesiapan template untuk mengikuti perkembangan platform Blogger di masa mendatang.
0 Komentar