tRikSonic
Informasi : saat ini anda mengakses blog ini untuk halaman yang di percepat penggunaannya untuk mobile/handphone (AMP) atau akses mobile dengan kecepatan internet yang rendah, mungkin beberapa fitur diblog ini belum tersedia, silahkan ganti Thema untuk mengaktifkan beberapa fitur lainnya. Terimakasih

b:with - Blogger Tutorial

Terakhir diperbarui : 23 November 2018 - 14.01

Penjelasan

Tag <b:with> adalah sebuah tag perintah yang dapat digunakan dalam membuah ekspresi yang kompleks, dimana nantinya dapat digunakan pada node anak. Tag <b:with> akan menghitung sebuah nilai variabel sebelum digunakan atau sebelum dipanggil oleh tag pemanggil. Tag ini dapat bekerja diseluruh XML terkecuali didalam tag <b:skin>.

Syntax

<b:with value='...' var='...'>
  ...
</b:with>

Atribut

Tag <b:with> memiliki atribut yang dapat digunakan antara lain sebagai berikut:
var awalan expr :

Bisa diterapkan
Digunakan untuk menentukan nama dari variable.

Nama variable yang digunakan nantikan akan digunakan pada node anak.
Keterangan : wajib ada
value awalan expr :

Bisa diterapkan
Digunakan untuk menentukan Ekspresi yang akan digunakan pada variabel.

Nilai yang dapat diberikan untuk atribut ini adalah
  • frase Blogger
  • nilai eksplisit
  • dan, nilai yang diberikan
Keterangan : wajib ada

Contoh Penggunaan

Contoh untuk membuat sebuah thumbnail postingan.
<b:if cond='data:post.thumbnailUrl'>
  <b:with value='data:post.thumbnailUrl ? resizeImage(data:post.thumbnailUrl, 250, "2:1") : data:post.thumbnail' var='thumb'>
    <img expr:src='data:thumb'/>
  </b:with>
</b:if>
Contoh berikut digunakan untuk menyaring suatu postingan dengan penerapan pada label posting.
<widget id='Blog1' type='Blog'>
  <b:includable id='main'>
    <b:with value='data:posts filter (p => p.labels none (l => l.name == "black"))' var='posts'>
      <b:include data='post' name='postCommentsAndAd'/>
    </b:with>
</b:includable>
</widget>
Contoh diatas menjelaskan bahwa postingan yang mempunyai label black tidak akan ditampilkan.
Catatan : contoh diatas diperuntukan widget versi 2 dan layout versi 3, dengan menggunakan template/tema kostum
Contoh untuk membuat daftar list.
<b:with var='mylist' value='[{
  title: "Example list 1",
  url: "https://triksonic.blogspot.com/p/list-1.com"
}, {
  title: "Example list 2",
  url: "https://triksonic.blogspot.com/p/list-2.com"
}, {
  title: "Example list 3",
  url: "https://triksonic.blogspot.com/p/list-3.com"
}]'>

  <ul>
  <b:loop values='data:mylist' var='test'>
    <li>
      <a expr:href='data:test.url' expr:title='data:test.title'><data:test.title/></a>
    </li>
  </b:loop>
  </ul>
  
</b:with>
Hasil render HTML.
<ul>
  <li><a href="https://triksonic.blogspot.com/p/list-1.com" title="Example list 1">Example list 1</a></li>
  <li><a href="https://triksonic.blogspot.com/p/list-2.com" title="Example list 2">Example list 2</a></li>
  <li><a href="https://triksonic.blogspot.com/p/list-3.com" title="Example list 3">Example list 3</a></li>
</ul>
Selamat berkreasi dan semoga bermanfaat

Informasi :

Artikel ini merupakan panduan tidak resmi tentang xml blogger template.
Untuk mendapatkan informasi yang lebih tepat, sangat disarankan mencarinya pada tautan dibawah ini :

  1. Blog Blogger
  2. Pusat Bantuan Blogger
  3. Forum Bantuan Blogger
  4. Forum Bantuan Google
  5. Stack Overflow

8 komentar

AdiCore6/21/2021Balas Komentar ini
kalau menggunakan operator lambda dengan tag b:with untuk menyembunyikan sidebar pada postingan yang terdapat label tertentu apa juga bisa mas?
Adi Jaya6/21/2021
Tergantung struktur templatenya mas jika cuman sidebar biasa tanpa komponen widget, maka bisa. (sebaliknya)

Karena (data label) positingan dia gak bersifat global, hanya terikat pada type widget tertentu misalnya type Blog atau PopularPosts.

saran bermain dengan data:view.title aja lebih mudah karna bersifat global, terus diisi dengan operator contains.

Misal judul postingan : Tutorial Menghilangkan Planet Terbaru.
<b:if cond='data:view.title contains "Planet"'>
true (Planet)
<b:else/>
false
<b:if>
No Name9/24/2021Balas Komentar ini
kalo 2 label gimana nih ?(l => l.name == "black","Red","Green"))' < gini bukan


Adi Jaya9/26/2021
Syntax Lambda Expression
[itemsSet] [operator] [expression]

any : boolean
all : boolean
none : boolean
count : number
filter : array : memerlukan loop
map : array
first : array[0]

[itemsSet] [operator] (l => l.name in {"black","Red","Green"})
[itemsSet] [operator] (l => l.name not in {"black","Red","Green"})
Maki M.4/26/2022
Komentar ini telah dihapus oleh pengarang.
Maki M.4/26/2022Balas Komentar ini
Maaf numpang tanya, ini dibaca apa ya?
data:post.comments where (c => not c.inReplyTo)

entar kenapa setelah Blogger mengubah frame komentarnya, komentar baru tidak muncu, tapi muncul ketika saya membalas komentar yang sudah ada.
Aoisora4/27/2022Balas Komentar ini
kalau penerapan tersbut buat filter popular post bisa tidak?
Aoisora4/27/2022Balas Komentar ini
kalau b:with diterapkan buat popular posts bisa tidak, buat filter label.. kucoba tidak bisa.
Add New Comment