sponsor adobe istanbul
Profili Göster

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:

MMIstanbul RSS

MMForum RSS

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:

FeedValidator

aç-kapa İçeriğin rss beslemesi kullanımda değil Yorumlar

Profili Göster
Erkin ERDOĞAN 30/08/2008

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?

MMIstanbul Adobe UG MMIstanbul Adobe UG

adobe user group

ColdFusion, Flex, AIR, Flash, PDF, Dreamweaver, Fireworks, Photoshop, Illustrator, INdesign, Premiere, Soundbooth, Lightroom, InCopy, JRun, LiveCycle, Acrobat, AfteEffects, Resmi Adobe Kullanıcı Grubu.

yeni üyelik | şifremi unuttum

aç-kapa 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

aç-kapa Sergi İstanbul'da Bir Sürrealist: Salvador Dali

İstanbul'da Bir Sürrealist: Salvador Dali

Picasso ve Rodin’den sonra kimi görmek istersiniz deseler; Salvador Dali listenin ilk başlarında yer almaz mı? Ressam, yazar, bilim adamı, tasar...
Kategori: Sergi

aç-kapa Eğitim PAZARLAMA EĞİTİMLERİ

PAZARLAMA EĞİTİMLERİ

1-0 Eğitim Ajansı, eğitim programları Yer : Bir Sıfır Eğitim Danışmanlık Zaman Aralığı : Eylül – Ekim 2008 Adres : Çırağan Cad. Şahnisin Sok. No...
Kategori: Eğitim

aç-kapa Eğitim İLETİŞİM EĞİTİMLERİ

İLETİŞİM EĞİTİMLERİ

Kısa zamanda sektöre hızlı bir giriş yapan 1-0 Eğitim Ajansı iş hayatında kariyer yapmak isteyen katılımcılarını 1-0 öne geçirmeye devam ediyor. 1-0 ...
Kategori: Eğitim

aç-kapa Yarışma İnteraktif Pazarlama Zirvesi ve Grand Interactive Awards

İnteraktif Pazarlama Zirvesi ve Grand Interactive Awards

Türkiye’nin interaktif pazarlama projelerini değerlendiren ilk ve tek yarışması Grand Interactive Awards (GIA) için başvurular 15 Ağustos tarihi...
Kategori: Yarışma

üyeler Üyelerimizden...

stats Kimler Burada? web stats

Son 1 dakika içinde MMIstanbul' da 270 (2 kayıtlı, 268 ziyaretçi) kullanıcı varmış. Login durumda olanlar aşağıda:

coldfusion mysql ubuntu
 
sponsor adobe istanbul