Bir müzik çalar gadget'ı eklediğimizi varsayalım. Ancak bunu sadece ana sayfada istiyoruz. Bu mümkün ve blogger koşullarını kullanarak bunu yapabiliriz. Bu yazıda widget'ları farklı sayfalarda nasıl gizleyeceğimizi göreceğiz.
Koşullu nitelik
Bu özellik aslında Blogger'ın b:if etiketleri ile birlikte geliştirilmiştir, bu etiketler çevreledikleri öğeleri gizlememizi veya göstermemizi sağlar. Muhtemelen bunları şablonunuzda ya da bir yerlerde görmüşsünüzdür, şuna benzerler:
<b:if cond='{expr}'>
<!-- Koşul sağlandığında görüntülenir -->
</b:if>
Bu etiketler widget'ları gizlemek için kullanılmazlar, ancak cond niteliği kullanılır. Tüm Blogger araçları bir b:section etiketi içinde oluşturulur ve bunlar da b:widget olarak bilinen kendi etiketlerini oluşturur, bu nedenle Temalar > Html düzenle'ye gidersek, widget'larımız her zaman aşağıdaki gibi organize edilmiş şekilde gözükecektir:
<b:section id='sidebar'>
<b:widget id='Blog1' type='Blog'>...</b:widget>
<b:widget id='AdSense1' type='AdSense'>...</b:widget>
<b:widget id='Profile1' type='Profile'>...</b:widget>
</b:section>
Hem b:section hem de b:widget etiketleri cond niteliğini kabul eder, bu da bir koşul eklememize olanak tanıyarak neyi, nasıl ve ne zaman görüntülemek istediğimizi kontrol etmemizi sağlar:
<b:section id='sidebar'>
<b:widget cond='{expr}' id='LinkList1' type='LinkList'>...</b:widget>
</b:section>
{expr} ile değiştirilen ifade herhangi bir şey olabilir, ancak bu makalede sayfanın türüne bağlı olarak widget'ları gizleyeceğimiz için, tam olarak bu bilgiyi döndüren data:view etiketlerini kullanacağız:
data:view.isHomepage |
Sadece Ana Sayfada geçerlidir. |
data:view.isPost |
Verdadero solo en las Entradas. |
data:view.isPage |
Verdadero solo en las Páginas estáticas. |
data:view.isArchive |
Verdadero solo en el Archivo. |
data:view.isError |
Verdadero solo en el Error 404. |
data:view.isSearch |
Verdadero solo en la Búsqueda. |
data:view.isLabelSearch |
Verdadero solo en la Búsqueda por etiquetas. |
data:view.isMultipleItems |
Verdadero si se muestran Entradas múltiples. |
data:view.isSingleItem |
Verdadero en las Entradas y Páginas estáticas. |
data:view.isPreview |
Verdadero solo en la Vista previa. |
data:view.isLayoutMode |
Verdadero solo en el Modo Diseño. |
Dolayısıyla, bir widget'ın yalnızca statik bir sayfa içinde görünür olmasını istiyorsak, {expr} öğesi aşağıdaki gibi değiştirilmelidir:
<b:section id='sidebar'>
<b:widget cond='data:view.isPage' id='LinkList1' type='LinkList'>...</b:widget>
</b:section>
Bu kodla, daha önce CSS kullanan eski bir yöntemle yapıldığı gibi gadget'ı "görünmez" yapmıyoruz. Bu durumda gadget render edilmiyor, bu nedenle performans rakipsiz.
Bir widget'ı koşullandırma
Yukarıdakilerin hepsini açıkladıktan sonra, sırada arama aracını gizlediğimiz öğretici şeklinde bir örnek var. Başlamak için widget'ın nerede olduğunu bilmemiz gerekiyor, bunu blogumuzu ziyaret ederek yapabiliriz:
Blogger kontrol paneline Tasarım sekmesi altından da gidebiliriz, her iki durumda da bu örnekteki "arama" widget'ının kenar çubuğunda ilk sırada yer aldığını görüyoruz:
Bunu bilerek, Temalar sekmesine gider ve HTML'yi Düzenle düğmesine tıklarız. Seçenekler düğmeleri arasından "Widget'a git "e tıklıyoruz ve gizlemek istediğimiz widget'ı seçiyoruz, bu örnekte bu arama widget'ıdır:
Üzerine tıklamak sizi otomatik olarak seçilen widget'a götürecektir, bunun gerçekleştiğini anlamak kolaydır, çünkü HTML Düzenleyicinin en üstünde görünecektir:
Son olarak, cond niteliğini ekliyoruz ve içine widget'ı görüntülemek istediğimiz sayfa türüne karşılık gelen data:view etiketini yazıyoruz. Bu örnekte şöyle görünecektir:
<b:widget cond='data:view.isPost' id='BlogSearch10' type='BlogSearch'>...</b:widget>
"Değişiklikleri kaydet"e tıklayın ve artık Gadget yalnızca bir giriş ziyaret edildiğinde görünür olacaktır. Bunun tersini (girişlerde gösterilmediğini) belirtmek istiyorsak, herhangi bir data:view etiketinin başına aşağıdaki gibi bir ! işareti ekleriz:
<b:widget cond='!data:view.isPost' id='BlogSearch10' type='BlogSearch'>...</b:widget>
Bu, widget'a blog gönderileri hariç tüm sayfalarda görüntülenmesini söyler, yani koşulumuz tersine çevrilir.
Sonuç
İster blogumuza performans kazandırmak ister kullanıcı deneyimini iyileştirmek için olsun, belirli sayfalarda bir widget'ın ne zaman ve nasıl görüntüleneceğini kontrol etmek bize çok yardımcı olacaktır ve bu süreçte Blogger'ın sözdizimine daha aşina oluruz ve blogger hakkında daha fazla şey öğreniriz.
Umarım bu yazıyı faydalı bulmuşsunuzdur. Eğer bu bilgiyi faydalı bulduysanız, paylaşmayı unutmayın. Böylece daha fazla insana yardımcı olacaksınız. Okuduğunuz için teşekkür ederim.