Boş olmaları halinde bölümleri veya widget'ları yüklemekten kaçınmak

Blogger birçok etikete sahiptir, bunlardan bazıları b:section ve b:widget etiketleri gibi sayfanın kaynak kodunda görülebilir. Bu etiketlerin kullanımını derinlemesine açıklamayacağım, sadece onları koşullandırmamızı sağlayan cond niteliğine odaklanacağız.

Durum

Bölüm etiketleri zorunlu HTML oluşturur ve içerik olmasa bile oluşturulur. Ancak Blogger geliştiricinin, durumu ele alması için “no-items” sınıfını ekler:

<b:section id='aside'/>
<div class="no-items section" id="aside"></div>

Öte yandan, Popüler Yazılar widget'ı gibi makaleleri işleyen widget'lar, makale içermeseler bile görüntülenmeye devam edeceklerdir. Elbette CSS kullanabilir ve her iki durum için de sorunu kolayca çözebiliriz. Ancak biz profesyonel ve düzenli olmak için buradayız.

Koşullandırma bölümleri

Bir bölümü koşullandırmak için sadece cond niteliğini eklememiz gerekir, yapacağımız şey gösterilecek bölüm için sonucu booleano olacak bir ifade eklemektir:

  <b:section cond='data:widgets any (w => w.sectionId == "aside")' id='aside'/>

Yaptığımız şey, o anda aktif ve görünür olan tüm widget'lar hakkında bilgi içeren evrensel widgets değişkenini çağırmak. Her bir widget'ın özelliklerinden biri, ait olduğu bölümün id'sini içeren sectionId'dir. Daha sonra belirtilen id'ye sahip bölüme ait en az bir widget olup olmadığını değerlendiririz. Eğer varsa, bölüm görüntülenir aksi takdirde görüntülenmez.

Koşullandırma widget'ları

Bu widget'lar için farklıdır, ancak çok az kişinin farkında olduğu bir özellik, ana etiketin widget türüne karşılık gelen tüm verileri de okuyabilmesidir:

<b:widget cond='data:posts.any' id='PopularPost1' type='PopularPost'/>

Bu kadar basit, eğer widget'ın gönderileri varsa görüntülenecek, yoksa görüntülenmeyecektir. Bu mümkündür çünkü gönderiler tablosu PopularPost widget türüne karşılık gelen bir veridir, bu nedenle ona üst etiketten erişebiliriz.

Sonuç

Bu katkının çok kısa olduğunu biliyorum ama bu sadece bir başlangıç, ilgi görürsem çok az kişinin bildiği daha ilginç nitelikleri de paylaşacağım. Eminim ki paylaşacağım her şey sizi şaşırtacak. Herhangi bir sorunuz varsa, yorumlarda bırakmaktan çekinmeyin ve bu katkıyı takipçilerinizle paylaşmayı unutmayın. Beni okuduğunuz için çok teşekkür ederim.

Yorum yok