Tuesday, September 12, 2017

Tag Kondisional Halaman Blogger 2017

Blogger memperkenalkan beberapa tag kondisional halaman baru yang semua propertinya bersarang pada grup view. Di sini Saya tidak akan menjelaskannya secara panjang lebar karena tag kondisional ini sebenarnya sangat mudah untuk dipahami.

Tag Kondisional Halaman Muka

Versi Baru

<b:if cond='data:view.isHomepage'> … </b:if>

Versi Lama

<b:if cond='data:blog.url == data:blog.homepageUrl'> … </b:if>

Tag Kondisional Halaman Indeks

Versi Baru

<b:if cond='data:view.isMultipleItems and !data:view.isArchive'> … </b:if>

Versi Lama

<b:if cond='data:blog.pageType == "index"'> … </b:if>

Tag Kondisional Halaman Item

Versi Baru

<b:if cond='data:view.isSingleItem'> … </b:if>

Versi Lama

<b:if cond='data:blog.pageType in ["item", "static_page"]'> … </b:if>

Tag Kondisional Halaman Posting

Versi Baru

<b:if cond='data:view.isPost'> … </b:if>

Versi Lama

<b:if cond='data:blog.pageType == "item"'> … </b:if>

Tag Kondisional Halaman Statis

Versi Baru

<b:if cond='data:view.isPage'> … </b:if>

Versi Lama

<b:if cond='data:blog.pageType == "static_page"'> … </b:if>

Tag Kondisional Halaman Label

Versi Baru

<b:if cond='data:view.isLabelSearch'> … </b:if>

Versi Lama

<b:if cond='data:blog.searchLabel'> … </b:if>

Tag Kondisional Halaman Arsip

Versi Baru

<b:if cond='data:view.isArchive'> … </b:if>

Versi Lama

<b:if cond='data:blog.pageType == "archive"'> … </b:if>

Tag Kondisional Halaman Pencarian

Versi Baru

<!-- Termasuk halaman pencarian label -->
<b:if cond='data:view.isSearch'> … </b:if>

<!-- Hanya halaman pencarian -->
<b:if cond='data:view.isSearch and !data:view.isLabelSearch'> … </b:if>

Versi Lama

<b:if cond='data:blog.searchQuery'> … </b:if>

Tag Kondisional Halaman Kesalahan

Versi Baru

<b:if cond='data:view.isError'> … </b:if>

Versi Lama

<b:if cond='data:blog.pageType == "error_page"'> … </b:if>

Tag Kondisional Halaman Pratinjau

Versi Baru

<b:if cond='data:view.isPreview'> … </b:if>

Versi Lama

 

Terkait


Lain-Lain

  • data:view.urldata:blog.url
  • data:view.search.querydata:blog.searchQuery
  • data:view.isLayoutMode → ?

Tulis masukan dan saran di bawah! ↓↓↓

Labels: ,

46 Comments:

At Tuesday, September 12, 2017 at 8:08:00 PM GMT+7, Blogger IRIL SAGITA said...

Malam kak, saya masih bingung dengan Tag Kondisional Halaman Pratinjau itu maksutnya gimana ya, mohon penjelasannya ?

 
At Tuesday, September 12, 2017 at 8:25:00 PM GMT+7, Blogger Giri Diwa Adam said...

Setau saya Tag Kondisional Halaman Pratinjau itu untuk melihat hasil template desainan kita ketika di dalam blogger . Pratinjau itu sendiri gunanya untuk mempermudah kita jika kita membuat desgin tertentu.

 
At Tuesday, September 12, 2017 at 8:26:00 PM GMT+7, Blogger Taufik Nurrohman said...

Kemungkinan itu untuk tampilan blog saat kamu mengeklik tombol Pratinjau, baik pada editor tema ataupun editor posting. Saya sendiri belum mengetes. Coba tambahkan kode ini di bawah tag <body> untuk mengetes:

<b:if cond='data:view.isPreview'>
<mark>Preview Mode</mark>
</b:if>

 
At Wednesday, September 13, 2017 at 3:49:00 AM GMT+7, Blogger Detifa said...

kondisi hanya untuk menampilkan atau tidak menampilan sesuatu dihalaman pertinjauan (preview) blog,

biasanya tombolnya ada disaat lagi dihalaman nulis misalnya liat pertinjauan, atau pada saat edit tema dihalaman bloggernya langsung itu biasanya kondisinya berfungsi.

biasanya kodenya dipakai untuk hanya menampilkan atau menghilangkan widget dihalaman pertinjauan agar lebih cepat loadingnya mungkin soalnyakan kalau kita nulis kadang dilihat dulu tulisannya rapih atau tidak hehe mungkin itu yang saya tau..

 
At Wednesday, September 13, 2017 at 6:04:00 PM GMT+7, Blogger Igoy Nawamreh said...

Ya, itu bekerja di semua halaman pratinjau. Contoh pemanfaatan tag kondisional ini adalah untuk menyembunyikan atau menampilkan apapun di halaman pratinjau.

 
At Wednesday, September 13, 2017 at 6:59:00 PM GMT+7, Blogger Igoy Nawamreh said...

Untuk data:view.isLayoutMode menurut Saya ini sangat berguna sekali, terutama untuk menyembunyikan widget di halaman beranda (bukan hanya menyembunyikan widget-nya saja, tapi menyembunyikan <b:section></b:section>).

Seperti yang kita ketahui jika kita menyembunyikan <b:section></b:section> di halaman beranda, maka bagian ini tidak akan tampil di halaman Dashboard => Layout. Bisa kita atasi dengan menggunakan tag kondisional data:view.isLayoutMode.

Berikut adalah contoh untuk menampilkan bagian widget hanya di halaman posting:

<b:if cond='data:view.isPost or data:view.isLayoutMode'>
<b:section></b:section>
</b:if>

 
At Wednesday, September 13, 2017 at 8:03:00 PM GMT+7, Blogger Taufik Nurrohman said...

Masuk akal mas.

 
At Wednesday, September 13, 2017 at 8:08:00 PM GMT+7, Blogger Taufik Nurrohman said...

Oh, jadi ini fungsinya untuk mempertahankan tampilan blok penambah widget di halaman Tata Letak meskipun sudah dikondisikan dengan tag kondisional front-end ya mas?

data:view.isPost or data:view.isLayoutMode → hanya tampil di halaman posting, atau di halaman Tata Letak.

 
At Wednesday, September 13, 2017 at 8:25:00 PM GMT+7, Blogger Igoy Nawamreh said...

Hanya tampil di halaman posting, atau di halaman Tata Letak. :-bd

 
At Wednesday, September 13, 2017 at 8:49:00 PM GMT+7, Blogger Igoy Nawamreh said...

:yaya: "Untuk mempertahankan tampilan blok penambah widget di halaman Tata Letak meskipun sudah dikondisikan dengan tag kondisional front-end" :yaya:

Dengan hadirnya tag-tag baru, seperti tag kondisional halaman ini dan lainnya, seharusnya kita sudah bisa untuk membuat template yang super keren, lebih menarik, lebih kompleks, mudah digunakan.

 
At Wednesday, September 13, 2017 at 8:55:00 PM GMT+7, Blogger Taufik Nurrohman said...

Bukan cuma dari sisi front-end tapi juga dari sisi back-end. Para pembuat tema komersial Blogger sepertinya akan mulai memperhatikan tag kondisional ini ;)

 
At Wednesday, September 13, 2017 at 11:06:00 PM GMT+7, Blogger Riedayme said...

ini permasalahn saya waktu menghilangkan beberapa widget dihalaman homepage, ternyata menggunakan ini toh, makasih banyak mas hehe jadi nambah ilmu lagi nih

 
At Sunday, September 17, 2017 at 11:49:00 AM GMT+7, Blogger Iwan Efendi said...

Makasih banyak mas, sudah lama gak mampir ada artikel baru rupanya. :p

 
At Thursday, September 28, 2017 at 2:22:00 PM GMT+7, Blogger Qu said...

lalu untuk membedakan == sama != gimana mas taufik?

 
At Thursday, November 30, 2017 at 9:03:00 PM GMT+7, Blogger Khatami said...

tapi untuk template bisa di live pratinjau juga kah? kalao yg postingan memang sejak lama sudah ada fitur pratinjaunya

 
At Sunday, January 28, 2018 at 12:04:00 AM GMT+7, Blogger Taufik Nurrohman said...

Ini positif:

<b:if cond='data:view.isArchive'> … </b:if>

Ini negatif:

<b:if cond='!data:view.isArchive'> … </b:if>

<b:if cond='not data:view.isArchive'> … </b:if>

 
At Sunday, February 18, 2018 at 6:39:00 PM GMT+7, Blogger Miras Tampan said...

Kak kalo misal kita mencampur tag kondisional baru dengan yang lama apa ada kesalahan yang serius?

 
At Wednesday, February 21, 2018 at 6:07:00 PM GMT+7, Blogger Taufik Nurrohman said...

Menuliskan sintaks lama ke templat versi baru tidak masalah karena untuk ukuran platform dengan begitu banyak pengguna pasti memiliki mekanisme backward compatibility tersendiri. Tapi menuliskan sintaks baru pada templat versi lama akan menimbulkan kesalahan, karena sintaks di zaman dahulu belum mengenal sintaks yang sekarang. Istilah mudahnya, manusia tidak bisa menerapkan teknologi masa depan ke teknologi masa lalu, tapi manusia bisa menerapkan teknologi masa lalu ke teknologi masa depan dengan beberapa penyesuaian.

 
At Friday, March 9, 2018 at 10:08:00 PM GMT+7, Blogger Arief Ghozaly said...

Mas izin bertanya :D
kalau di dalam template blogger masih menggunakan tag kondisional versi lama, nggak masalah kan?

kebetulan saya lagi bikin template untuk pribadi, gayanya simple, putih nan bersih, rencananya sih mau di jual juga :D

 
At Friday, April 6, 2018 at 12:49:00 PM GMT+7, Blogger illvart said...

Ngak masalah kok, mau dicampur juga bisa. Btw lebih indah jika jangan dicampur. Biar rapi

 
At Tuesday, April 17, 2018 at 2:19:00 AM GMT+7, Blogger Sofia Risakkota said...

Sangat bermanfaat,akhirnya dapat tempat yang cocok buat belajar desain template blogspot, untuk para master salam kenal.

 
At Thursday, May 10, 2018 at 11:19:00 AM GMT+7, Blogger Unknown said...

Kak Ajarin Buat Tools Web Mini Kak Aku Gak Tau Script Nya

 
At Saturday, May 26, 2018 at 3:37:00 PM GMT+7, Blogger wiBlogger.com said...

Nice mas. Tambahan sedikit. data:view.isMultipleItems disini mewakili untuk halaman index dan arsip(bukan hanya halaman index).

 
At Sunday, May 27, 2018 at 7:06:00 PM GMT+7, Blogger Taufik Nurrohman said...

Mungkin sama dengan data:view.type == "feed" ya mas.

Terkait: /2018/05/kelas-html-otomatis.html

 
At Sunday, May 27, 2018 at 9:05:00 PM GMT+7, Blogger wiBlogger.com said...

Tepat mas. Tag kondisional lama data:page.type == 'index' tidak termasuk arsip (hanya index). Sedangkan data:view.isMultipleItems , ini termasuk index dan arsip. Bisa diupdate postnya untuk bagian "Tag Kondisional Halaman Indeks". Bisa pake value data:view.type == 'feed' atau data:view.isMultipleItems and !data:view.isArchive.

 
At Monday, May 28, 2018 at 9:59:00 AM GMT+7, Blogger Taufik Nurrohman said...

Tidak maintain-able, tapi ya sudahlah.

 
At Tuesday, August 7, 2018 at 6:34:00 AM GMT+7, Blogger Aqshal Tata said...

Kalau untuk halaman mobile ada ga tag kondisionalnya yang baru?

 
At Tuesday, August 7, 2018 at 6:32:00 PM GMT+7, Blogger Taufik Nurrohman said...

Coba data:view.isMobile.

Terkait: /2013/01/bekerja-dengan-blog-seluler.html

 
At Friday, November 2, 2018 at 10:57:00 PM GMT+7, Blogger Kiddy Dot ID said...

apa perbedaan item dan posting ?

 
At Saturday, November 3, 2018 at 6:28:00 AM GMT+7, Blogger Taufik Nurrohman said...

Posting itu item, tapi item tidak selalu posting. Bisa juga halaman statis.

 
At Saturday, November 24, 2018 at 4:45:00 PM GMT+7, Blogger Anam said...

Jika digunakan berdasarkan tahun postinga bisa ya? Postingan Tahun 2017 akan beda dg tahun 2018

 
At Sunday, December 9, 2018 at 8:53:00 PM GMT+7, Blogger Taufik Nurrohman said...

Saat ini cuma bisa dengan selektor atrubut di CSS:

<article class='post' expr:data-url='data:post.url'> … </article>

.post[data-url*="/2018/"] {
background-color:#b4d455;
color:#f5f5f5;
}

 
At Wednesday, July 3, 2019 at 9:50:00 AM GMT+7, Blogger Pulung said...

Mas ada tag khusus ngga untuk menyembunyikan bebarapa gambar postingan agar tidak ikut terindex di mesin pencarian? maturnuwun

 
At Wednesday, July 3, 2019 at 11:45:00 AM GMT+7, Blogger Taufik Nurrohman said...

<meta name="robots" content="noimageindex">

Referensi: https://support.google.com/news/publisher-center/answer/93977?hl=en

 
At Friday, July 12, 2019 at 10:38:00 PM GMT+7, Blogger Pulung said...

Mas Taufik, maaf apa itu ga menyembunyikan semua gambar? Maksud saya cuma menyembunyikan beberapa gambar khusus di mesin pencarian tapi membiarkan gambar yang lain tetap terindek.

 
At Saturday, July 13, 2019 at 2:03:00 AM GMT+7, Blogger Taufik Nurrohman said...

Coba pakai background saja mas untuk gambar-gambar yang tidak ingin diindeks.

Referensi: /2014/09/tinggi-kontainer-mengikuti-tinggi-latar-gambar.html

 
At Monday, August 26, 2019 at 6:58:00 PM GMT+7, Blogger Yuli Akbar said...

kang,ada gak tag kondisional hanya admin yang bisa melihat tetapi pembaca gak bisa liat. seperti icon quickedit pada template version lama? saya lagi nyari tag kondisional ini

 
At Saturday, August 31, 2019 at 8:45:00 AM GMT+7, Blogger Unknown said...

Bang, mau nanya nih..
Untuk tag kondisional yang menggunakan Lambda seperti dibawah ini :
<b:if cond='data:post.labels any (label => label.name == "Entry")'>

Apakah sudah tidak berfunsi lagi?

 
At Sunday, September 1, 2019 at 10:32:00 PM GMT+7, Blogger Taufik Nurrohman said...

Saya coba carikan caranya kalau ada waktu. Harusnya nggak akan lebih rumit dari ini:

<b:if cond='data:blog.adminClass'> … </b:if>

 
At Sunday, September 1, 2019 at 10:36:00 PM GMT+7, Blogger Taufik Nurrohman said...

Harusnya sih masih bisa. Saya masih menerapkannya di tutorial ini.

 
At Wednesday, April 1, 2020 at 6:46:00 AM GMT+7, Blogger Mas Iwan said...

Mas, mau tanya, saya kan ingin menghilangkan (menyembunyikan) beberapa artikel di hasil pencarian blog, apakah bisa mas..?

 
At Saturday, April 4, 2020 at 11:15:00 PM GMT+7, Blogger Taufik Nurrohman said...

Coba pakai lambda filter pak…

<b:if cond='data:view.isSearch and !data:view.isLabelSearch'>
<b:include data='posts filter (post => post.id != 123)' name='asdf'/>
<b:else/>
<b:include data='posts' name='asdf'/>
</b:if>

 
At Sunday, April 5, 2020 at 9:18:00 AM GMT+7, Blogger Mas Iwan said...

Dengan kode itu kita bisa filter by label aja gak mas yah..? atau url artikel yah..?

Saya kepengennya bisa filter by label saja, jadi maksud saya beberapa posting dengan label tertentu tidak muncul di hasil pencarian blog.

 
At Sunday, April 5, 2020 at 9:57:00 AM GMT+7, Blogger Taufik Nurrohman said...

Kalau sudah paham konsepnya, tinggal pilih properti yang disuka:

<b:include data='posts filter (post => post.url not in [
"URL 1",
"URL 2",
"URL 3"
])' name='asdf'/>


<b:include data='posts filter (a => a.labels any (b => b.name not in [
"Label 1",
"Label 2",
"Label 3"
]))' name='asdf'/>

 
At Sunday, April 5, 2020 at 1:12:00 PM GMT+7, Blogger Mas Iwan said...

Maaf mas, saya tidak berhasil menererapkannya.
Saya mencoba memasukkannya langsung di form searchnya.
Namun tidak berhasil juga mas, saya coba pakai langsung kode yang mas berikan juga gak berhasil mas. :'(

saya kurang paham cara kerja kodenya mas.

 
At Sunday, April 5, 2020 at 8:15:00 PM GMT+7, Blogger Taufik Nurrohman said...

Sebelumnya Saya sarankan mas untuk minum air bening yang banyak terlebih dahulu kemudian duduk bersandar di atas kasur. Untuk berjaga-jaga agar kalau nanti mas-nya pingsan, setidaknya mas-nya jatuh di tempat yang empuk.

Kode ini Saya ambil dari tema Simple Bold, yang di dalamnya terdapat bagian yang kurang lebih tampak seperti ini:

<b:includable id='main' var='top'>
<b:if cond='!data:mobile'>
<!-- posts -->
<div class='blog-posts hfeed'>
<b:include data='top' name='status-message'/>
<b:loop values='data:posts' var='post'>

</b:loop>



Kuncinya ada di data:posts. Cukup tambahkan lambda filter di situ untuk menyaring hasil akhirnya. Tapi karena pengulangan pada kode tema di atas tidak masuk di dalam elemen <b:includable> khusus, maka kita perlu menyalinnya menjadi dua bagian, satu digunakan untuk tampilan daftar biasa dan satu lagi untuk tampilan pencarian seperti ini:

<b:if cond='data:view.isSearch && !data:view.isLabelSearch'>
<b:loop values='data:posts filter ( … )' var='post'>

</b:loop>
<b:else/>
<b:loop values='data:posts' var='post'>

</b:loop>
</b:if>


Hasilnya akan jadi terlalu banyak duplikasi. Sehingga akan membingungkan diri sendiri kalau suatu saat nanti ingin mengubah tampilan daftar artikel. Saran Saya kalau bisa keluarkan itu semua kode pengulangan artikel kemudian jadikan sebagai elemen <b:includable> seperti ini:

<b:includable id='posts' var='posts'>
<b:loop values='data:posts' var='post'>

</b:loop>
</b:includable>
<b:includable id='main' var='top'>
<b:if cond='!data:mobile'>
<!-- posts -->
<div class='blog-posts hfeed'>
<b:include data='top' name='status-message'/>
<b:include data='posts' name='posts'/>



Supaya bisa menerapkan kondisi tanpa harus menyalin keseluruhan kode pengulangan:

<b:if cond='data:view.isSearch && !data:view.isLabelSearch'>
<b:include data='posts filter ( … )' name='posts'/>
<b:else/>
<b:include data='posts' name='posts'/>
</b:if>


Atau kalau mau menggunakan cara lama juga bisa, cukup menambahkan tag <b:if> di dalam kode pengulangan seperti ini:

<b:loop values='data:posts' var='post'>
<b:if cond='!(data:view.isSearch && !data:view.isLabelSearch) || data:post.labels any (label => label.name not in ["Label 1", "Label 2", "Label 3"])'>

</b:if>
</b:loop>


!(data:view.isSearch && !data:view.isLabelSearch) → Kondisi ini bernilai true bila kita sedang berada di selain halaman pencarian.
data:post.labels any (label => label.name not in ["Label 1", "Label 2", "Label 3"]) → Kondisi ini bernilai true bila label item posting saat itu tidak mengandung data Label 1, Label 2, dan Label 3.

Kalau logika di atas disusun sebagai kalimat biasa, maka akan berbunyi seperti ini:

“Lakukan pengulangan pada data:posts sebagai data:post, tampilkan data:post bila tidak sedang berada di halaman pencarian atau sedang berada di halaman pencarian dengan syarat tidak terdapat Label 1, Label 2, dan Label 3 di dalam data:post.labels.”

 

Post a Comment

<< Home