ColdFusion ile RSS 2.0 Uygulaması Hazırlamak
Zehra Doruk Tarih: 18/04/2007 Yorum: 1 adet
Okunma : 275 Tutanlar: Bu yazıyı 0 kişi tuttu.
RSS, genellikle haber siteleri, portaller, bloglar ve podcastler gibi sürekli güncellenen içeriklere sahip web siteleri tarafından kullanılan; yeni eklenen içeriğin kolaylıkla takip edilmesini sağlayan özel bir XML dosya formatıdır. Kullanıcılar RSS içeriklerini okuyucu (rss reader) ya da toplayıcı (rss aggregator) yardımıyla takip ederler. Kullanıcı; rss okuyucusu üzerinden bir sitenin RSS’ine abone olur. RSS okuyucu belli zaman aralıklarında abone olunan sitede yeni içerik olup olmadığını kontrol eder, derler ve kullanıcısına sunar.
RSS ilk sürümünden bu yana farklı tanımlamalarla-açılımlarla kullanılmıştır. RSS 2.0 ile artık adı, ‘Really Simple Syndication’ dır. (Kaynak: Wikipedia – RSS maddesi )
‘RSS nedir?’ sorusuna bu şekilde yanıt verdikten sonra bir RSS dosyasının özelliklerine ve kısaca ColdFusion ile nasıl RSS hazırlayabileceğimize değinelim. Öncelikle hiç RSS içeriği görmedim diyenlere tavsiyem şu linklere tıklasınlar:
Yukarıdaki linkler MMIstanbul Portali’nin Portal ve Forum’unda yayınlanan içerikler için hazırladığımız RSS’lere ait. Bu linklere üst menü barının en sağındaki ikonlara tıklayarak ulaşabiliyorsunuz. Sitenin RSS’ini kullanıcıların çok kolay bir şekilde farketmesi için genelde kullanılan standartlaşmış bir kaç ikon türü var.
‘Evet benim sitemin de bir RSS’i olmalı!’ diyorsanız; öncelikle karar vermeniz gereken şey, sitenizdeki hangi içerik gruplarının RSS dosyanızda yayınlanacağı olmalıdır. Diğer bir konu da dinamik bir RSS dosyası hazırlamak için kullanacağınız kodlama dili; dinamik site içerği hazırlarken kullandığınız herhangi bir kodlama dilini RSS hazırlamak için de kullanabilirsiniz. Yalnız, kullanacağınız dil ile dosya çıktınızı XML e nasıl dönüştüreceğiniz konusunda bilgi sahibi olmanız gerekir. Biz bu yazımızda CFML (ColdFusion) kullanacağız.
Bir RSS 2.0 Dosyasının XML’ini Çözümleyelim
Şimdi adım adım bir RSS dosyası nasıl oluşturabileceğimizi, olmazsa olmazları ile birlikte inceleyelim. Coldfusion ile RSS dosyamızı nasıl dinamikleştireceğimize de yazının ilerleyen safhalarında yer yer değineceğim.
RSS 2.0 dosyasının XML olarak doğrulanması gerektiği için öncelikle dosyanızın ilk satırında bunu deklere etmeniz gerekir:
<?xml version='1.0' encoding='utf-8' ?>
Encoding isteğe bağlı bir seçenek ama belirtmenizde fayda var. Biz utf-8 kullandığımız için bu şekilde belirttik ama seçeneğinize göre bunu değiştirmeniz gerekir.
<?xml version='1.0' encoding='utf-8' ?>
<rss version='2.0'>
<channel>
<title>MMIstanbul</title>
<link>http://www.mmistanbul.com</link>
<description>MMIstanbul Portalinde Yayınlanan Son Makale ve Haberler </description>
<language>tr-TR</language>
<copyright>© copyrigt 2003 - 2006 | MMIstanbul.com/org/ portalındaki yazılar referans gösterilmek koşuluyla başka sitelerde yayımlanabilir, yazılardan alıntı yapılabilir.</copyright>
<lastBuildDate>Mon, 16 April 2007 02:38:45 +0200</lastBuildDate>
<channel> tagı sitenizle ilgili genel bilgileri vermeye başladığınızı gösteriyor. <title> sitenizin adını; <link> sitenizin linkini; <description> sitenizle ilgili genel tanıtımı; <language> sitenizin dilini; <copyright> site içeriğinizin tescilini; <lastBuildDate> ise bu RSS dosyasının ne zaman oluşturulduğunu belirtmek için kullanılıyor. RSS dosyası içerisinde XML formatını oluşturan bütün taglarda büyük küçük harf duyarlılığı vardır. O nedenle kullanım sırasında nasıl yazıldıklarına dikkat etmeniz gerekir. Örneğin <lastBuildDate> tagında yer alan B ve D harfleri kesinlikle büyük olmalıdır. Ayrıca burada yer alan içerikleri isterseniz site içeriğinizden dinamik olarak alabilirsiniz. Bunlar içerisinde en kritik olan dosyanın oluşturulma tarihi. Doğal olarak açıldığı andaki tarihin <lastBuildDate> tagları arasında görüntülenmesi gerekir. Bunun için ColdFusion’ da o anın tarih ve zamanınını şu şekilde görüntüleyebilirsiniz:
<lastBuildDate>#dateformat(now(),'ddd, dd mmm yyyy')# #timeformat(now(),'HH:mm:ss')# +0200</lastBuildDate>
İsterseniz sitenizin logosunu RSS dosyasınızda şu şekilde belirtebilir ve yayınlayabilirsiniz:
<image>
<title>MMIstanbul Logo </title>
<url>http://www.mmistanbul.com/images/logo.gif</url>
<link>http://www.mmistanbul.com/</link>
</image>
<image> etiketleri arasında imaj ile ilgili <title> (imaj alt tagı); <url> (imajın yolu); <link> (imaja tıklanınca nereye gidilecek) tagları yer alır.
Bunlardan sonra artık sitenizdeki içeriklerin teker teker dökülmesi aşamaları başlar. XML olarak bu içerik parçaları şu şekilde görüntülenir:
<item>
<title>RSS (Really Simple Syndication) Nedir? </title>
<description>RSS, genellikle haber siteleri, portaller, bloglar ve podcastler gibi sürekli güncellenen içeriklere sahip web siteleri [...] </description>
<link>http://http://www.mmistanbul.com/makaleler/
index.cfm?makale_id=90</link>
<pubDate>Mon, 16 April 2007 02:38:45 +0200</pubDate>
</item>
<item> etiketleri ile çevrelenen her bir içerik parçacığının; <title> ile yazı başlığı; <description> ile yazının bir bölümü, tamamı ya da tanıtım metni; <link> ile yazıya ulaşılacak adres; <pubDate> ile yazının yayınlanma tarihi gibi özelliklerini dökebilirsiniz. <pubDate> etiketindeki D harfinin büyük olduğuna dikkat edin. Ayrıca yazı linkini <guid> etiketi ile de belirtebilirsiniz. Doğrulanmış bir RSS 2.0 içeriği için gerekli. Ben her ikisini de kullandım. RSS dosyanızda ne kadar içerik yer almasını istiyorsanız o kadar içeriği <item> etiketleri içerisinde bahsettiğimiz özellikleri ile dökebilirsiniz.
İçerikler bu şekilde oldukça statik görünüyorlar değil mi? Birazdan bu verileri basit bir şekilde, veri tabanına bağlanıp CFM dosyası içerisinde nasıl dökebileceğinizi anlatacağım. Ama önce RSS 2.0 dosyamızı kapatalım.
</channel>
</rss>
Şimdi içerik dökme işlemini basitçe ColdFusion kullanarak nasıl dinamikleştireceğimizi anlatacağım.
ColdFusion ile Basit Bir RSS 2.0 Dosyası Hazırlamak
Dosyamızın ilk satırında RSS dosyamızda kullanacağımız genel uygulamaları belirliyoruz:
<cfsetting enablecfoutputonly='yes'>
Sayfamda <cfoutput> tagı içerisindeki veriler haricinde kalan içeriğin (boşlukların) görüntülenmemesini istediğim için bunu belirtiyorum.
<cfprocessingdirective pageencoding='utf-8'>
<cfset my.DB = 'db_name' />
<cfset my.SiteURL = 'http://www.mmistanbul.com/' />
Sayfa dil seçeneğimi UTF-8 olarak belirledikten sonra; birazdan verilerimi çekmek için ihtiyaç duyacağım veritabanı adımı belirtiyorum. Sitemin url’sini de sık sık yazmak istemediğim için tanımlıyorum.
<cfquery datasource='my_DB' name='rss' maxrows='30'>
SELECT title, text, id, date
FROM table
ORDER BY id DESC
</cfquery>
<cfcontent type='text/xml; charset=utf-8' >
Postalarımı veri tabanından nasıl ve ne kadar çekeceğimi belirledim. Query sonrasında yazdığım tag çok önemli; <cfcontent> etiketi dosyamda görüntülenecek içeriğin çıktı türünü belirlememi sağlıyor. ‘text/xml’ sayesinde çıktımı XML’e eşitliyorum.
Şimdi RSS’imde sayfamla ilgili genel bilgileri derlemeye başlıyabilirim.
<cfoutput><?xml version='1.0' encoding='utf-8'?>
<rss version='2.0'>
<channel>
<title>MMIstanbul</title>
<link>#my.SiteURL#</link>
<description>MMIstanbul- Istanbul Macromedia Kullanıcıları Topluluğu</description>
<language>tr-TR</language>
<copyright>© copyleft 2004 | MMIstanbul.com/org/ portalındaki yazılar referans gösterilmek koşuluyla başka sitelerde yayımlanabilir, yazılardan alıntı yapılabilir.</copyright>
<lastBuildDate>#dateformat(now(),'ddd, dd mmm yyyy')# #timeformat(now(),'HH:mm:ss')# +0200</lastBuildDate>
<image>
<title>MMIStanbul</title>
<url>#my.SiteURL#images/logo.gif</url>
<link>#my.SiteURL#</link>
</image>
</cfoutput>
Burası statik olarak incelediğimiz içerikten hiç de farklı değil. Dinamik olarak alınan tek veri, site yolu. Ama yine de buradaki verileri <cfoutput> etiketleri arasına yerleştirmek durumundaydım. Çünkü sayfamın en başında sadece <cfoutput> etiketleri arasındaki verileri göster şeklinde bir tanımlama yaptığımızı hatırlayalım. Sıra geldi her bir postamın güncel sırasına göre dokülmesi işlemine:
Yukarıda veritabanımdaki hangi tablodan hangi verileri çekeceğime karar vermiştim, yapacağım tek işlem RSS standartlarına uygun olarak döngü içerisinde bu verileri dosyama dökmek olacak.
<cfoutput>
<cfloop query='rss'>
<item>
<title>#title#</title>
<description>#XmlFormat(text)#</description>
<link>#my.SiteURL#index.cfm?post=#id#</link>
<guid>#my.SiteURL#index.cfm?post=#id#</guid>
<pubDate>#DateFormat(date,'ddd, dd mmm yyyy')# #TimeFormat(date, 'HH:mm:ss')# +0200</pubDate>
</item>
</cfloop>
<cfoutput>
<cfloop> etiketi ile yine daha önceden belirttiğimiz RSS <item> tagları arasında gelecek, her bir postam için standart bir şekilde tekrarlanacak verileri çağırıyorum. Bu şekilde query’imde belirttiğim gibi son 10 postum RSS dosyamda XML yapısında görüntülenecek.
Unutmadan RSS dosyamızı kapatıyoruz :
<cfoutput>
</channel>
</rss>
</cfoutput>
Bu şekilde Coldfusion ile dinamik bir RSS dosyası hazırlamış olduk. Hazırladığınız RSS ‘inizi site ya da blog takipçilerinizin kullanımı için sunmadan evvel doğrulanıp doğrulanmadığını muhakkak test edin. Bu işlem okuyucularda dosyanızın düzgün çalışması için çok önemli:
Makale
Haber
Ders
MMIstanbul Adobe UG
ColdFusion, Flex, AIR, Flash, PDF, Dreamweaver, Fireworks, Photoshop, Illustrator, INdesign, Premiere, Soundbooth, Lightroom, InCopy, JRun, LiveCycle, Acrobat, AfteEffects, Resmi Adobe Kullanıcı Grubu.
Etkinlikler
Konferans
2. Ulusal Yazılım Mimarisi Konferansı - UYMK'08
2. Ulusal Yazılım Mimarisi Konferansı - UYMK'08
2.Ulusal Yazılım Mimarisi Konferansı (UYMK’08), 11 – 12 Eylül 2008 tarihlerinde Ege Üniversitesi Bilgisayar Mühendisliği Bölümü ev sah...
Kategori:
Konferans
Kimler Burada? 
Son 1 dakika içinde MMIstanbul' da 270 (2 kayıtlı, 268 ziyaretçi) kullanıcı varmış. Login durumda olanlar aşağıda:
MMIstanbul Blog'undan
500 Hatası Hakkında!
merhaba arkadaşlar, bir önceki yazıda bahsettiğimiz üzere sunucunun ram ihtiyacını yavaş yavaş gidermeye başladık. An itibariyle 2 Giga d ...
Reklam, MMIstanbul ve Yeni Projeler (Durumumuz Bu Tarzında)
Ne Nedir Kampanyası Başlıyor!
Çok Merak Edenler için; MMIstanbul Geliştirme Ekibi ve Çalışma Ortamımız
MMIstanbul Online Seminerlerine Nasıl Katılabilirim?




Zehra Hanım;
rss yayınlarımız
Başlık Kısa tanım Tarih
şeklinde yazılıyor ekrana…
Bunu ;
Başlık Minik Resim + Kısa tanım Tarih
şeklinde nasıl yapabiliriz?