Blogger'da Sadece Yazı Başlıklarını Listelemek

Yeni, yine, yeniden...

Blogger üzerinde bir blogunuz var ve siz yazdığınız yazıların sadece başlıklarının görüntülenmesini mi istiyorsunuz? Belki de bunun sadece arşiv sayfalarında olmasını da isteyebilirsiniz. Öyleyse durmayın ve yazıyı yavaş yavaş, sindire sindire okumaya başlayın.

Yazının hemen başında bir kişiye, biyografi'ye, bu yazıyı yazmama vesile olduğu için teşekkür ederim.

Uyarı: Bu ipucunun çalışma mantığını öğrenmeden direk uygulamaya geçmek isterseniz Uygulama Başlangıcı başlığından itibaren devam edebilirsiniz.

Uyarı 2: Uygulamayı şablonunuzda denemeden önce mutlaka bir yedek alın.

Koşullu Sorgulamalar

Öncelikle koşullu sorgulamanın ne olduğunu öğrenerek bu işe başlayacağız. Blogger'da bazı değişkenler ile koşullu bir sorgulama yapıp, görüntülenmesini istediğimiz içeriğin sorguladığımız koşula uyduğu takdirde görüntülenmesini sağlayabiliriz. Aslında hali hazırda kullandığınız tüm şablonlarda bu koşullu sorgulamalar vardır.

Koşullu sorgulamalara örnek verirsek:

  • Anasayfada sadece yazılarınızın görüntülenip, yazının kalıcı bağlantısına (yazının kendi sayfası) tıkladığımız takdirde yazı ile birlikte yorumların da görüntülenmesi,
  • Anasayfada, en altta Kaydol: Kayıtlar (Atom) bağlantısının görüntülenip, her hangi bir yazının kalıcı bağlantısına tıkladığımız takdirde Kaydol: Kayıt Yorumları (Atom) şeklinde bir bağlantı görüntülenmesi,
  • MaFiAMaX Blog!'da olduğu gibi anasayfada her yazının altında tarih, kategori, vs. gibi bilgilerin görüntülenip, yazının kalıcı bağlantısına tıklandığı takdirde yazıyı e-postalayın, yazıyı paylaşın gibi bağlantıların görüntülenmesi,
  • Blogger ayarlarınızda besleme yayının açık olup olmamasının denetlenip, buna göre RSS adresinizin görüntülenmesi,
  • Yazılara yorum bırakma izni verilip verilmemesine bağlı olarak yorum gönderme formunun görüntülenmesi,
  • Vs.

Gördüğünüz gibi koşullu sorgulamalar olmazsa asla ve asla istediğiniz bir tasarıma sahip olamazsınız.

Blogger'da en çok sayfa tipini denetleyen koşullu sorgulamalar vardır. Bu arada Blogger'da index, item ve archive olmak üzere 3 tip sayfa olduğunu hatırtlatmak da yarar var. Böylece uygun koşullu sorgulamalar ile blog yazılarınızın anasayfada (index), yazı ile birlikte yorumların da yazının kalıcı sayfasında (item) görüntülenmesini sağlayabiliyoruz.

1-) Sayfa tipini denetlemek için b:if cond='data:blog.pageType == "koşul"' sorgusunu kullandığımızı belirttikten sonra 3 tip koşulu listeleyelim.
  • <b:if cond='data:blog.pageType == "index"'> - Bu koşul sayesinde bir içeriğin sadece anasayfada görüntülenmesini sağlayabilirsiniz.
  • <b:if cond='data:blog.pageType == "item"'> - Bu koşul sayesinde bir içeriğin sadece yazının kalıcı sayfasında görüntülenmesini sağlayabilirsiniz.
  • <b:if cond='data:blog.pageType == "archive"'> - Bu koşul sayesinde bir içeriğin sadece arşiv sayfasında görüntülenmesini sağlayabilirsiniz.

2-) Farzedelim ki bir içeriğin anasayfa dışında diğer her yerde görüntülenmesini istiyorsunuz. Öyleyse tek yapmanız gereken sorguyu olumsuz cümle gibi kurmaktır.
  • <b:if cond='data:blog.pageType != "index"'> - Bu koşul sayesinde bir içeriğin anasayfa dışında her yerde görüntülenmesini sağlayabilirsiniz. Dikkat ederseniz burada ünlem işareti koyarak eşit ve eşitse yerine eğer index sayfası değilse şeklinde bir sorgu yapılıyor.

Uygulama Başlangıcı

1-) Arşiv Sayfasında ve Etiket Sayfalarında Sadece Yazı Başlıklarının Görüntülenmesi

Blogger altyapılı blogların arşiv sayfalarında gezerken yazıların normalde olduğu gibi görüntülendiğini, tek farkın arşiv filtrelemesi olduğunu biliyorsunuz. Aynı şekilde bir etikete tıkladığımız takdirde o etikete sahip yazıların da normalde olduğu gibi sadece filtrelenerek görüntülendiğini biliyorsunuz. İşte tam bu noktada, eğer ziyaretçilerin arşivlerinizde gezinirken ve etiket filtrelemesi yaparken sadece yazı başlıklarını bir liste halinde görüntülemesini sağlayabilirsiniz. Hadi aşağıda vermiş olduğum kodları şablonunuzuda bularak bu işe başlayalım. (Aşağıdaki kod Blogger'ın değiştirilmemiş şablonlarındaki gibidir. Kullandığınız şablonda bu kodlar farklılık gösterebilir)
<div class='blog-posts hfeed'>
<b:include data='top' name='status-message'/>
<data:adStart/>
<b:loop values='data:posts' var='post'>
<b:if cond='data:post.dateHeader'>
<h2 class='date-header'><data:post.dateHeader/></h2>
</b:if>
<b:include data='post' name='post'/>
<b:if cond='data:blog.pageType == "item"'>
<b:include data='post' name='comments'/>
</b:if>

<b:if cond='data:post.includeAd'>
<data:adEnd/>
<data:adCode/>
<data:adStart/>
</b:if>
</b:loop>
<data:adEnd/>
</div>

Yukarıdaki kodlarda kırmızı renkli satırlara dikkatinizi çekmek istiyorum. Loop yani döngü içinde alan bu kodlara bir bütün olarak baktığımızda içeriğin belli bir döngüde listelenmesi sağlanmış. Fakat kırmızı renkli satıra dikkatlice baktığınızda ilk satırda b:include data='post' name='post' ile sadece yazıların listelenmesi istenmiş. Fakat bir alttaki satıra baktığımızda da b:if cond='data:blog.pageType == "item"' sorgusu ile bir koşul sunulmuş. Buradaki koşulu düz bir metin halinde okursak anlamı şudur: "Eğer sayfa tipi item ise..." diyip bir altında bulunan içeriğin görüntülenmesini sağlamış. Bir altındaki satıra, yani üçüncü kırmızı satıra baktığımızda da yazı ve altında da yorumların görüntülenmesi istenmiş, son satırda da koşullu sorgulama kapatılmıştır.

Bu dört satırı tekrar düz bir metin halinde okursak anlamı şudur: "Yazıları listele, item sayfasında ise yazı ve yorumlarını listele."

Şimdi buradaki koşullu sorgulamaya bazı sorgulamalar daha ekleyip, anasayfa ve yazı kalıcı sayfaları dışında sadece yazı başlıklarının listelenmesini sağlayacağız.

Yukarıda kırmızı renkle belirttiğim satırların yerine aşağıdaki kodları yapıştırın ve şablonunuzu kaydedin.
<b:if cond='data:blog.homepageUrl != data:blog.url'>
<b:if cond='data:blog.pageType != "item"'>
<a expr:href='data:post.url'>
<ul><li><data:post.title/></li></ul>
</a>
<b:else/>
<b:include data='post' name='post'/>
</b:if>
<b:else/>
<b:include data='post' name='post'/>
</b:if>
<b:if cond='data:blog.pageType == "item"'>
<b:include data='post' name='comments'/>
</b:if>

Böylece anasayfa ve yazı kalıcı sayfaları dışında her yerde yazıların sadece başlıkları ile görüntülenmesini sağladık.

Arşiv ve etiket sayfalarında yazı başlıklarını listelemek
2-) Arşiv Sayfasında Sadece Yazı Başlıklarının Görüntülenmesi

Aslında bu işi bu kadar detaylı anlattıktan sonra bu işi sınavda sormak gerekliydi ama... :)

Yukarıda kırmızı renkle belirttiğim satırların yerine aşağıdaki kodları yapıştırın ve şablonunuzu kaydedin.
<b:if cond='data:blog.homepageUrl != data:blog.url'>
<b:if cond='data:blog.pageType == "archive"'>
<a expr:href='data:post.url'>
<ul><li><data:post.title/></li></ul>
</a>
<b:else/>
<b:include data='post' name='post'/>
</b:if>
<b:else/>
<b:include data='post' name='post'/>
</b:if>
<b:if cond='data:blog.pageType == "item"'>
<b:include data='post' name='comments'/>
</b:if>

Gördüğünüz gibi sadece ikinci satırdaki koşullu sorgulamayı değiştirdik.

Bitirirken...

Evet, yine uzun ve kapsamlı bir Blogger ipucunun sonuna geldik. Her zaman olduğu gibi, "yeni, yine, yeniden..." diye başlayan bir yazı ile görüşmek dileğiyle...

Bu yazıya 26 adet yorum yapılmış. Düşüncelerini belirtmek istiyorsan durma yorumunu paylaş!

26 yorum:

Damacana
Permalink - Ekim 15, 2008

Blogger'ın etiket yapısı aslında kullanmayı bilene çok profesyonel işler çıkartabiliyor. Teşekkürler.

taytanik.net
Permalink - Ekim 15, 2008

vay be hocam blogger gibi ekle,sürükle, bırak dan ibaret basit bir sistemi bile bu hale getiriyorsun ya helal vallahi. yazıyıda tez hazırlarcasına ayrıntılı yazmışsın ya tebrikler, yalnız fazla ayrıntı kafa karıştırıyo haberin olsun.

sakin bi zamanda sindire sindire okuyup uygulamaya çalışıcam bakalım nasıl sonuç çıkacak ortaya. blogger paylaşımların için teşekkürler.

cinetr
Permalink - Ekim 15, 2008

saolasın çok güel anlatmışsın işe yarar walla saol

MaFiAMaX
Permalink - Ekim 15, 2008

@Damacana,
Aynen.

@taytanik,
He he. Zaten bu dönem okulda Proje II ile uğraşıyorum. Diğer dönem de tezim var, aslında bölümüm ile alakalı olsaydı tez fazla zamanımı almazdı :) Kafalar karışmasın diye de yazının en başında bir uyarı da bulunmuştum ;)

@cinetr,
Eyvallah.

şarkı dinle
Permalink - Ekim 16, 2008

teşekkürler mafiamax bu geliştirme tam benim bloğuma uygun bir şeydi

TeknoMobi
Permalink - Ekim 16, 2008

Ellerine sağlık çok güzel bir anlatım olmuş. Bu özelliği kullanmak çok faydalı oldu. Ziyaretçiler önce yazı başlığını görüp istediği veya kendisine lazım olan yazıyı okuyabilirler. Bşu boşuna sayfanın yüklenmesini beklemek zorunda kalmayacaklar...

tatil-ci
Permalink - Ekim 17, 2008

Teşekkür ederiz, çok güzel anlatmışsınız.
Hemen siteye uyguladık.

Blogumdan
Permalink - Ekim 17, 2008

Çok güzel bir uygulama. Çoğu blog için kullanışlı olacaktır bence.

biyografi
Permalink - Ekim 17, 2008

Mafiamax sesimi duyduğun için öncelikle çok teşekkür ederim.
Bütün yazıyı baştan sona okudum ve birazdan uygulayacağım.Heyecanla önce yorumumu yazayım dedim.
Bu benim için çok önemliydi.Çünkü çok hitli blogger bloglarım var ve yeni projelerim.aldığım hostlarda hatta serverlerde bile sorunlar bitmek bilmiyordu.ben de uzun süredir bloggerin nimetlerin faydalanıyorum.çok işime yarayacak yani.
Sen büyük adamsın kardeşim çok sağol.

Damacana kardeş sana bu soruyu r10da da sormuştum ama cevaplamadın.Hep diyorsun etiketleri düzgün kullanana büyük işler var diye ama bi anlatmıyorsun işin püf noktasını.

araba-cı
Permalink - Ekim 17, 2008

Öncelikle teşekkür ediyorum. Çok güzel bir özelliği öğrenmiş oldum.
Şimdi de soruya geçelim.

Şöyle bir koşullu sorgu mümkün mü? Anasayfada ve arşiv sayfasında göster, yazı sayfasında gösterme. Bunu klasik şablon ile < mainorarchive > şeklinde yapıyoru. XML temalarda bu yapılabiliyor mu?

MaFiAMaX
Permalink - Ekim 17, 2008

@araba-cı,
Öncelikle her türlü mantığı kurmak mümkün. Fakat senin söylediğin şey garibime gitti. Yani sen yazı kalıcı sayfalarında yazıların görünmemesini arşiv ve anasayfada görünmesini mi istiyorsun?

By_SeNsİzİM-Online Full Film
Permalink - Ekim 17, 2008

baya işe yarar bu eline saglık..

mert
Permalink - Ekim 18, 2008

çok güzel ve işe yarayacak bir geliştirme , teşekkürler

araba-cı
Permalink - Ekim 18, 2008

@MaFiAMaX;
Sadece yazı için sormamıştım. Her türlü öğe için, mesela bir resim, banner. Bunun anasayfada ve arşiv sayfasında göster, kalıcı sayfada gösterme. Kastettiğim hem arşiv hem de anasayfayı aynı anda belirtebilir miyiz?

MaFiAMaX
Permalink - Ekim 18, 2008

@araba-cı,

Tabiki mümkün. Şöyle:

<b:if cond='data:blog.homepageUrl != "item"'>
Göstermek istediğin öge
</b:if>

Bu sorgu sayesinde yazı sayfası dışında her yerde istediğin ögeyi göstermiş olursun.

araba-cı
Permalink - Ekim 18, 2008

Teşekkür ederim.

biyografi
Permalink - Ekim 20, 2008

sayın Mafiamax kardeş bir şey daha istesem çok mu olurum :)

şimdi bu bir etikete tıkladığımızda o etkete ait 10 yazı listeleniyor. bunu o etikette kaç yazı varsa hepsi bir sayfada listelenecek şekilde ayarlayabiliyor muyuz?evetse nasıl?

şimdiden çok teşekkürler.

MaFiAMaX
Permalink - Ekim 20, 2008

@biyografin,
Şablon kodları arasında etiketler şeklinde araştır. Tabi adını değiştirdiysen o şekilde arat. Sonra aşağıda vermiş olduğum kodu bulacaksın:

<a expr:dir='data:blog.languageDirection' expr:href='data:label.url'>

Bu kodun yerine aşağıdaki kodu koy, ve maksimum sonuç sayısını da istediğin gibi değiştir.

<a expr:dir='data:blog.languageDirection' expr:href='data:label.url + "?max-results=20"'>

teyyare
Permalink - Ekim 22, 2008

Senin bu "yeni, yine, yeniden..." diye başlayan bütün yazılarına aboneyim. Gerçekten hepsi birbirinden faydalı, eline emeğine sağlık kardeşim...

MaFiAMaX
Permalink - Ekim 22, 2008

@teyyare,
Eyvallah. Bu sloganı da Honda'dan çalmıştım :)

eylulbahcesi
Permalink - Kasım 03, 2008

arşivde yazı başlıklarımı listelemek isterdim ama bahsettiğiniz değişecek kodu bulamadım malesef..yinede teşekkürler..ben biraz daha arayayım:)

Güney
Permalink - Kasım 09, 2008

ben uyguladım harika oldu teşekkurler..

Suat
Permalink - Kasım 28, 2008

merhaba,

ben şablonumu orjinal blogger şablonlarından birini alarak yapmıştım ancak yukarıda bahsetmiş olduğunuz kodları bulamadım. Altta verdiğiniz kodları direk yapıştırdım ancak o zaman da bahsettiğiniz sonucu alamadım. Yardımcı olabilir misiniz?

MaFiAMaX
Permalink - Kasım 28, 2008

@Suat Bey,
Blogunuz yasal olmadığı için bir yardımda bulunamam. Hatırlarsanız Blogger sizin sahip olduğunuz türden bloglar yüzünden yasaklanmıştı!

Suat
Permalink - Kasım 29, 2008

peki bu sizin temanızı kullanmam konusunda sizi rahatsız eder mi?

MaFiAMaX
Permalink - Kasım 29, 2008

@Suat Bey,
Hayır etmez. Çünkü temaların kullanımından doğabilecek tüm yükümlülükler kullancıya aittir.

Sadece blogun en altında bulunan Copyright yazısını sizinkisi ile değiştirin.

Yorum Gönder

Küfür ve hakaret içeren yorumları sevmiyor, Türkçe'nin doğru kullanıldığı yorumları ise çok seviyoruz.

HTML: <b>, <i>, <a> gibi temel HTML etiketlerini kullanabilirsiniz.
Uyarı: URL adresi belirtirken lütfen başına http:// protokolünü koymayı unutmayın!