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.
İ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;
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;
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 ;-)
Ş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 ;-)
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.
YanıtlaSilRica ederim, içimden gelenleri söyledim sadece. Gerçeklerde bunlar.
YanıtlaSilGerçekten Blogger'ın en büyük eksikliklerinden biri. Bu eklenti ile dert tasa kalmıyor. :-))
Dediğin gibi Blogger'ın tavsiye ettiği şekilde yapınca hem eksik, hem geç hem de kötü oluyordu.
YanıtlaSilHemen uygulamaya alayım. Çok iyi oldu bu.
Teşekkürler.
Dostum link çalışmıyor, herhalde GooglePages sayfan aylık 100 MB lık bandwidth sınırı aşmış.
YanıtlaSilDamacana 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...
YanıtlaSilErdal, 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.
YanıtlaSilMerhabalar,
YanıtlaSilBu faydalı paylaşımınız için teşekkürler, nitekim bende faydalandım.
Paylaşımınıza sağlık...
@İdris cin,
YanıtlaSilRica 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...
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?
YanıtlaSil@veyselkeles, dün yaptığım bir güncellemeden dolayı sorun oluşmuştu. Şimdi düzelttim, herşeyin yolunda olması gerek.
YanıtlaSilAyrı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...
çok teşekkür ederim arkadaşım. Ne kadar yararlı oldu bilemessin. Tekrar ok teşekkürler...
YanıtlaSilayrı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
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.
YanıtlaSilselam, benim sorunum, son yorumlar eklentimin bazı explorer(sanırım v. 6.0 da) tarayıclarında gözükmemesi...
YanıtlaSilmozilla 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..
@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 ;-)
YanıtlaSilBu yorum yazar tarafından silindi.
YanıtlaSilmerhaba 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
YanıtlaSilslm,blogunuz ve yazılarınız cok guzel..devamını okuyu da bloguma uyguladım..
YanıtlaSilbende 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:
@hayaled, senin blogunda 4 yazın var ve hepsinde sadece video var. Yazı girişi yok. Doğal olarak birşey yazmaması normal ;-)
YanıtlaSil@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.
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
YanıtlaSilok,tesekkurler..ben sandım katagorı baslıklarını alıyor:)..
YanıtlaSilşu ;
(06 Ekim tarihinde dedi ki) yerını nasıl sılebılırım acaba?ne yapmam gerek...
tesekkurler
@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.
YanıtlaSil@hayaled, tarih bilgisini silmek istersen showcommentdate değerini false yapman yeterli.
evet arkadasım tamda istedigim bu sanırım baslıgın devamında gelecek harf durumunu kısaltabiliriz gercekten cok tesekkür ederim :)
YanıtlaSilÖ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.
YanıtlaSilYazı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.
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
YanıtlaSilTek 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:
YanıtlaSilhttp://www.googlekullanıcıadın.googlepages.com/sonyorumlar2_tr.js olacak. Bu kadar basit!
aynen söyledigin gibi yaptım istersen bakabilirsin http://sevimalabas.googlepages.com ama olmuyor sorunu anlayamadım
YanıtlaSil@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 ;-)
YanıtlaSilMaFiAMaX benim sorunum da bahsettiğin konuya çok benziyor.
YanıtlaSilBir 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...
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
YanıtlaSilhttp://mafiamax.googlepages.com/sonyorumlar_tr.js
YanıtlaSilLink Patlamış:S
Yenilersen sevinirim..
@ErDemir,
YanıtlaSilBen onu örnek olsun diye belirtmiştim. Dosyanın kendisi yazının sonuna doğru paylaşılmıştır. Örneği yanlış anlamışsınız.
Örneği yapmaya çalıştım fakat GooglePages, hizmeti kaldırılmış ve onun yerine GoogleSites var. Ancak onda da .js uzantılı dosya ekleyemiyoruz.. mümkünse ya ücretsiz sunucu adresi ya da bu JavaScript kodunun işe yarar linkini verebilirmisiniz. ayrıca anlatım için teşekkür ederim ...
YanıtlaSil@mÇakır,
YanıtlaSilİlhgili habere ve yorumlardaki önerilere burdan ulaşabilirsiniz.
Sayın Mafiamax;
YanıtlaSilJS dosyalarını officelive.com üzerinde sakladığınızı gördüm. Fakat benim JS dosyaları yüklememe izin vermedi. Acaba ücretli sürüm mü kullanıyorsunuz?
Teşekkürler
@araba-cı,
YanıtlaSilOffice Live'ın farklı servisleri var. Ben smallbusiness servisini kullanıyorum. (Bu servis ile küçük çaplı işletmelerin web sitesi açması amaçlanmış.)
Ücretli değil yani.
teşekkürler. ben de eklemek için bu eklentiyi arıyordum. iyi denk geldi.
YanıtlaSilÇok Teşekkürler.Çok iyi oldu =)
YanıtlaSil