Blogger'a Son Yorumlar & Yazılar Eklentisi

Uzun zaman önce burada Blogger'da son yorumlar eklentisini nasıl oluşturacağımızı anlatmıştım. Bu sistemin mantığı gerçekten çok güzel. Ancak bir dezavantajı var. Yaptığımız çalışma, gücünü RSS'den aldığı için yorumlar gecikmeli olarak gözüküyor.

Şimdi anlatacağım yöntemde ise bir JavaScript'ten faydalanacağız. Bu JavaScript JSON formatında olacak. (bknz= JSON: JavaScript Object Notation).

JSON yöntemini kullanmamızın nedenine gelince;
Bu format ile blogumuzun son yorumlarının listelendiği RSS kaynağına başvurup, bilgiyi JavaScript nesnelerine çeviriyoruz. Daha sonra bu JavaScript ögelerini anlaşılır bir dile çeviriyoruz. Böylece RSS'den alınan yorumlar, bizim anlayacağımız bir dile çevriliyor. Bu JavaScript dosyası hem son yorumları hem de son başlıkları görüntüleyebilmek için kodlanmıştır.

Peki bunu neden yapıyoruz?

İlk yöntemimde , RSS beslemesi olan bir sayfa ögesi oluşturup, kaynağını da yorum RSS'si olarak belirliyorduk. Ancak bu yöntemde RSS kaynağımıza anlık olarak geri başvurulup bilgi çekilmediğinden, yorumlar gecikmeli olarak gözüküyordu. İşte bunu çözebilmek için de JavaScript kullandık. Bunu JSON yöntemi ile yapmamızın nedeni ise, JavaScriptin XML döküman (RSS) ile etkileşime girmesi için bu yöntem gerekiyor.

Hadi sıkıldım, derse başlayalım.

İlk öncelikle JavaScriptimizi bir yerde barındırmalıyız. Ben barındırma servisi olarak GooglePages kullanıyorum. JavaScript dosyasını buraya yükledikten sonra web adresini almalısınız. (Örnek JavaScript kaynağı: http://mafiamax.googlepages.com/sonyorumlar_tr.js)

Şimdi bu JavaScripti şablonumuzdan çağırmalıyız. Bunun için;

<script src='http://kullanıcıadı.googlepages.com/sonyorumlar_tr.js' type='text/javascript'/>

kodunu şablonumuzda <head> etiketleri arasında uygun bir yere koymalıyız. Bunun için en uygun yer ya head etiketinden hemen sonrası ya da bitiminden hemen öncesidir.

Şimdi buraya kadar yaptıklarımızda, bir yerde barındırdığımız JavaScriptimizi çağırdık. Bundan sonrasında elde edilen bilgilerin gösterimi için bir script
kullanacağız.

Kullanacağımız script;

<script language="javascript"> var numcomments = 5; var numchars = 70; var showposttitle =false; var showcommentdate = true;  </script>
<script src="http://www.siteadresiniz.blogspot.com/feeds/comments/default?alt=json-in-script&callback=showrecentcomments"></script>

Bu scriptte verilen url değeri yorum RSS kaynağının adresi. Eğer bunun yerine son başlıkları görüntülemek isterseniz, koyu ile belirtilen yere
http://www.siteadresiniz.blogspot.com/feeds/posts/default urlsini yazın.

Şimdi bu scripte JSON yöntemi ile XML dökümandan aldığımız bilgilerin hangilerinin gösterilip gösterilmeyeceğini, gösterilecekse sayısını belirleyeceğiz.

-numcomments= Yorumların sayısını belirler.
-numchars= Yorumlardaki görüntülenecek karakter sayısı.
-showposttitle= Yorumun bulunduğu yazı başlığını gösterip/göstermeme (true/false). Yalnız bu seçeneğin bir dezavantajı var. JavaScriptimiz yazı başlığını, yazının urlsini kullanarak yapıyor. Blogger'da kalıcı bağlantılar oluşturulurken Türkçe karakterler siliniyor. Bu yüzden de başlıklar bozuk görüntüleniyor. Ben JavaScriptin başka bir kaynaktan başlığı alıp alamayacağını düşündüm ama bir türlü kaynak bulamadım. Bu yüzden bu ayarı kapatıyorum.
-showcommentdate= Yorumun yayınlandığı tarihi gösterip/göstermeme (true/false)

Bu script ile belirlediğiniz sayıdaki yorumlar yine belirlediğiniz kriterlerde gösterilecek. Bu yorumları gösterebilmek için;

Şablon>Sayfa ögesi ekle>HTML/JacaScript>açılan pencereye 2. scripti yapıştırın ve kaydedin. Sonra şablonda nerede gözükmesini istiyorsanız oraya sürükleyip bırakın.

JavaScript dosyasını (bir sunucuda barındıracağımız dosya) indirmek için tıklayın.

Açıklama: Bu JavaScripti ben baştan aşağı yazmadım. Bu sitenin yazarı bu JavaScripti yazmış. Ancak programlanırken İngilizce sonuçlar çıkaracak şekilde programlanmıştı. Ayrıca Türkçe karakterlerde de sorun çıkarıyordu. Bu yüzden kodu baştan aşağı düzenledim.

Düzenlenmeden önceki hali:


Düzenlemeden sonraki hali:


Yorumun bulunduğu başlığın görüntülenmesi açıkken ki hali:


Herhangi bir sorun yaşarsanız sormaktan çekinmeyin ;-)

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

29 yorum:

www.edasuner.com
Permalink - Ağustos 22, 2007

Damacanadaki desteğiniz ve güzel yorumunuz için çok teşekkür ederim konu ile alakasız oldu yorumum ama idare edin :) Bu arada bu plug ini ben ilk kurduğumda dünya benim olmuştu. Kullanmayanlara tavsiyem deneyin acayip memnun kalacaksınız.

MaFiAMaX
Permalink - Ağustos 22, 2007

Rica ederim, içimden gelenleri söyledim sadece. Gerçeklerde bunlar.

Gerçekten Blogger'ın en büyük eksikliklerinden biri. Bu eklenti ile dert tasa kalmıyor. :-))

Damacana
Permalink - Ağustos 22, 2007

Dediğin gibi Blogger'ın tavsiye ettiği şekilde yapınca hem eksik, hem geç hem de kötü oluyordu.

Hemen uygulamaya alayım. Çok iyi oldu bu.

Teşekkürler.

Damacana
Permalink - Ağustos 22, 2007

Dostum link çalışmıyor, herhalde GooglePages sayfan aylık 100 MB lık bandwidth sınırı aşmış.

MaFiAMaX
Permalink - Ağustos 22, 2007

Damacana sorun bandwidth te değil. Sen mafiamax.googlepages.com/sonyorumlar.js ye girmeye çalışıyorsun. Ben siteyi bilerek yayınlamadım. Ama scriptte kaynak olarak bu adresi verdiğinde çalışacaktır. Çünkü bilgiyi sunucudan çekeceksin...

MaFiAMaX
Permalink - Ağustos 22, 2007

Erdal, JavaScript dosyasında değişiklikler yapmışsın seni hınzır :-)) Şaka bir yana güzel olmuş, ama bence bir eksiği var. Sen dedi ki ifadesini kaldırmışsın, bari yorum sahibinin adından sonra virgül yada iki nokta üst üste işaretlerini koysaydın. Bence öle yap.

İdris Cin
Permalink - Ağustos 24, 2007

Merhabalar,

Bu faydalı paylaşımınız için teşekkürler, nitekim bende faydalandım.

Paylaşımınıza sağlık...

MaFiAMaX
Permalink - Ağustos 25, 2007

@İdris cin,
Rica ederim ne demek. Sonuçta ben de bu JavaScript dosyasını başka bir yerden bulup sadece düzenleme ve Türkçeleştirme yaptım. Tabi bir de nasıl kullanılacağını yazmaya çalıştım. :-)

Bilgi paylaştıkça çoğalır...

veyselkeles
Permalink - Eylül 02, 2007

nedense bende yorumu yazanın ismi görünmüyor... orada author u true olarak yapmama rağmen görünmüyor neden olabilir acaba?

MaFiAMaX
Permalink - Eylül 02, 2007

@veyselkeles, dün yaptığım bir güncellemeden dolayı sorun oluşmuştu. Şimdi düzelttim, herşeyin yolunda olması gerek.

Ayrıca scriptte bulunan var author = false/true; değerini silebilirsin. Çünkü bu tanımlamayı dosyadaki güncellemeden sonra kaldırdım.

Yeni JavaScript dosyasını kendi sunucuna yüklediğin an sorun giderilmiş olacak.

Kolay gelsin...

veyselkeles
Permalink - Eylül 02, 2007

çok teşekkür ederim arkadaşım. Ne kadar yararlı oldu bilemessin. Tekrar ok teşekkürler...

ayrıca bir sorum olacak:
şu "yazının devamını okumak için tıkla" meselesini nasıl yaptın? :) şimdiden teşekkür ederim.

ayrıca benim blog

MaFiAMaX
Permalink - Eylül 02, 2007

Blogger'da Devamını Oku Bağlantısı Yapmak bu yazımı okursan soruna cevap olacaktır. "İstediğini Ara" kısmını aklına takılan sorular için kullanmanı tavsiye ederim. Çünkü Blogger hakkında güzel ipuçları var.

legrottaglie
Permalink - Ekim 02, 2007

selam, benim sorunum, son yorumlar eklentimin bazı explorer(sanırım v. 6.0 da) tarayıclarında gözükmemesi...

mozilla yahut 7.0 kullananlar rahatlıkla son yorumları görebilirken misal işyerimde esplorer 6.0 ile ben göremiyorum yorumları..1-2 arkadaşım daha aynı dertten muzadrip oldu.

acaba versiyon ya da tarayıcı değişikliği yapmadan bir çözümü var mı bu durumun?

teşekkürler..

MaFiAMaX
Permalink - Ekim 02, 2007

@legrottaglie, dediğin sorunla ben de karşılaştım. Ama kullandığım bilgisayar şirket bilgisayarıydı ve filtre vardı. Büyük ihtimal ondan kaynaklanıyor. IE6 ile alakalı değil ;-)

KURABİYE EVİ
Permalink - Ekim 06, 2007
Bu kayıt, yazar tarafından kaldırıldı.
KURABİYE EVİ
Permalink - Ekim 06, 2007

merhaba blogla ilgili bilgilerin harika olmuş yabancı sitelerle ugrasmaktan kurtulduk son yorumlar eklentisini ekledim fakat bunu son yazılanlara uyarladıgımda kurabiye evi dediki diye cıkıyor bunu baslıklara göre nasıl düzenlerim yardımların için şimdiden tesekkürler

hayaled
Permalink - Ekim 06, 2007

slm,blogunuz ve yazılarınız cok guzel..devamını okuyu da bloguma uyguladım..

bende ekledım bunu bloguma ama bende boyle cıktı ?neden olabılır..yazı çıkmıyor bende.sadece altakı var..neyi eksik yaptım acaba..

hayaled 06 Ekim tarihinde dedi ki:

MaFiAMaX
Permalink - Ekim 06, 2007

@hayaled, senin blogunda 4 yazın var ve hepsinde sadece video var. Yazı girişi yok. Doğal olarak birşey yazmaması normal ;-)

@kurabiye evi, JavaScript kodlanırken son yazılanlarda da tıpkı son yorumlarda olduğu gibi kimin hangi tarihte ne yazdığı bilgisinin gösterilmesi amaçlanmış. Eğer sadece başlığın ve içeriğin olmasını istiyorsan senin için bir daha kodlayabilirim. Ama unutma ki başlıklar görüntülenirken, başlık bilgisi direkt o yazının bulunduğu linkten alınacağı için başlığında tıpkı linkin gibi gözükecek.

Örnek olarak Zencefilli Şeftalili Tart yazının linki http://kurabiyeevi.blogspot.com/2007/10/eftalili-tart.html şeklinde. Bu yüzden son yazılanlar kısmında yazının başlığı:
eftalili tart şeklinde görüntülenecek. Bu yüzden bu yöntemi daha çok son yorumlar için kullanman daha iyi. Tabi sırf yazının başlığı olsun dediğin için söylüyorum.

KURABİYE EVİ
Permalink - Ekim 06, 2007

Mafiamax alakan için gercekten cok tesekkür ederim sanırım türkce karakterler durumu bozuyor ama ben turkce karakterleri degiştirebilirim su an ki halinden daha iyi olacaktır eminim düzenlersen cok memnun olurum simdiden tesekkürler

hayaled
Permalink - Ekim 06, 2007

ok,tesekkurler..ben sandım katagorı baslıklarını alıyor:)..

şu ;

(06 Ekim tarihinde dedi ki) yerını nasıl sılebılırım acaba?ne yapmam gerek...
tesekkurler

MaFiAMaX
Permalink - Ekim 06, 2007

@Kurabiye evi, tam olarak istediğini anlayabilmem için lütfen bu deneme sayfasına bakar mısın? Bu örnekte yazının başlığı ve içeriğinin bir bölümü var. Eğer istediğin buysa, sana yeni düzenlediğim JavaScript kodunu ve nasıl yapacağını anlatacağım.

@hayaled, tarih bilgisini silmek istersen showcommentdate değerini false yapman yeterli.

KURABİYE EVİ
Permalink - Ekim 07, 2007

evet arkadasım tamda istedigim bu sanırım baslıgın devamında gelecek harf durumunu kısaltabiliriz gercekten cok tesekkür ederim :)

MaFiAMaX
Permalink - Ekim 07, 2007

Öyleyse işleme başlayabiliriz. Öncelikle size hazırladığım bu JavaScript dosyasını indirin ve GooglePages hesabınıza yükleyin. Çünkü siz aldıktan sonra sileceğim. Kendi sunucunuza yükledikten sonra yazımdaki ilk kod örneğinde olduğu gibi adres kısmına dosyanın sizin sunucunuzdaki adresini yazın.

Yazıların özetlerinde ne kadar harf gösterileceği de sizin elinizde. numchars değerine kaç yazarsanız kadar karakter görüntülenir ;-)

Haberiniz olsun dosyayı yarın sunucumdan kaldıracağım.

KURABİYE EVİ
Permalink - Ekim 07, 2007

Dosyayı indirdim ve yükledim fakat bu konuda cok bilgim olmadıgı için tam olarak yapamadım sanırım :( biraz ugrasıcam bakalım yapabilecekmiyim cok tesekkür ederim

MaFiAMaX
Permalink - Ekim 07, 2007

Tek yapman gereken ilk koddaki <-script src='http://kullanıcıadı.googlepages.com/sonyorumlar_tr.js' type='text/javascript'/-> yani bu koddaki eğik yazı tipi ile gösterdiğim adres yerine senin dosyayı yüklediğin adresi yaz. Eğer dediğim gibi googlepages'e yüklediysen bu adres:

http://www.googlekullanıcıadın.googlepages.com/sonyorumlar2_tr.js olacak. Bu kadar basit!

KURABİYE EVİ
Permalink - Ekim 07, 2007

aynen söyledigin gibi yaptım istersen bakabilirsin http://sevimalabas.googlepages.com ama olmuyor sorunu anlayamadım

MaFiAMaX
Permalink - Ekim 08, 2007

@Kurabiyeevi, son yazdığım yazı ile senin ve de başkalarının işine yarayacak şekilde dosyayı güncelledim. Tam dediğim gibi yaparsan hiç bir sorun ile karşılaşmazsın ;-)

mesutgulcan
Permalink - Aralık 09, 2007

MaFiAMaX benim sorunum da bahsettiğin konuya çok benziyor.

Bir yazıma yapılan yorumları sayfalar halinde nasıl gösterebilirim
acaba;
Örneğin yazıma yapılan toplam 30 yorum olsun. Ben yazımın altında
sadece 10 tanesinin olmasını istiyorum, diğerlerine ise

<---prev comments---next comments-->

gibi linklerle erişmek istiyorum.Ya da

1 of 3--- 2 of 3 ---3 of 3

gibi bir sistem...

ama istediğim şey sidebar gibi bir yerde yer almayacak, dediğim gibi yazımın altındaki yorumların sayısını ayarlamaktan bahsediyorum.

Yardımcı olursanız çok sevinirim.
Şimdiden teşekkürler...

èvcimaп
Permalink - Ekim 06, 2008

MaFiAMaX gerçekten çok harika bir anlatım olmuş eline sağlık blogküre seninle aydınlanıyor çalışmalarının devamını dört gözle bekliyorum

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!