Umbraco'da xml okuyup sayfaya basma
Aslında başlık tam anlamıyla konuyu anlatmıyor ama biraz detaylandırayım. Şöyle ki; cms olarak umbraco kullandığınız bir websiteniz var ve sitenize hürriyet.com.tr'in haberlerini RSS ile eklemek istiyorsunuz. İşte tam olarak bunu anlatacağım :) Asp.net'te CMS ile çalışan insanların yakından tanıdığı umbraco düşünmüş taşınmış kullanıcıyı düşünerek bunun gibi işler için "umbraco.library" adında bir library hazırlamış. Bu library sayesinde bazı şeyleri basit bir şekilde xslt üzerinde yapabiliyoruz. Şimdi bu library'i kullanarak xml datayı alacağımız XSLT'mizi hazırlamaya başlayalım. Kodu yazmadan önce bu adresten kodu yükleyip kullanabilirsiniz. Öncelikle umbraco paneline login oluyoruz ve developer kısmına gidiyoruz. Orada "XSLT Files" diye bir kısım var. Oraya sağ tıklayıp "Create" seçeneğini seçiyoruz.
Buraya isim olarak istediğinizi girebilirbilirsiniz. Ben "hurriyetHaberEkle" olarak yazdım. Sadece dikkat etmeniz nokta "choose a template" kısmında clean seçeneği ve "Create Macro" kısmının işaretli olması.
Sonrasında yukarıda belirttiğim linkten kodu kopyalayıp umbraco panelindeki kod alanında bulunan herşeyi silip yapıştırın. Sonrasında kaydedin. Eğer bir problem yoksa size düzgün bir şekilde kaydedildi diye birşey söyleyecek. Ondan sonra soldaki menüden "Macros" kısmının solundaki oka tıklayın ve listeyi açın. Orada "hurriyet haber ekle" isminde bir macro gözükecektir. O linke tıklayın.
Tıkladıktan sonra üstteki görüntünün bulunduğu bir ekran çıkacaktır. Burada yukardakinin aynısı şekilde işaretleyin. Bunları da şöyle özetliyim;
"Use in editor" : Sayfa yapım kısmında editor ekranında macronuzu eklemeye imkan tanır.
"Render content in editor" : Macronuzu editorde ekledikten sonra macroyu çalıştırır ve editorde gösterir. Ammavelakin bir kere düzgün çalışmadı bende :D
"Cache period" : Haberlerin nasıl geleceğini bilemeyeceğinizden cacheleminizi önermem ama 1 milyon tıklamalı sitem var cache yapmam lazım derseniz buraya cache'i ne kadar süre tutmasını belirtebilirsiniz.
"Cache by Page" ve "Cache Personalized" : İlki sayfa başına cache yapmayı olanak sağlar ama diğerini çözemedim. Pekte araştırmadım açıkcası :D
Evet şimdi haberleri eklemek istediğimiz sayfayı "Content" kısmından açıyoruz. Sonrasında ise editor ekranında "Insert macro" butonuna basıp (Sağdan 3. buton) macromuzu seçerek sayfamıza ekliyoruz. Güle güle kullanın :D
Gelelim kodun ne iş yaptığına.
Kodun 14.satırına kadar zaten umbraco otomatik olarak template'den alıyor. O yüzden onu geçiyorum. Öncelikle 15.satırda xml datayı alacağımız linki belirtiyoruz ki gerektiğinde rahatça variable'ı alalım. Ondan sonra 18.satırda umbraco.library'i kullanarak xml datamızı "umbraco.library:GetXmlDocumentByUrl" ile alıyoruz. İsterseniz benim gibi timeout zamanı belirtmeyip sadece adresi kullanabilirsiniz.
Sonrasında ise tamamen xml'i html'e çevirecek kodu yazıyoruz. Açıkcası burada özel birşey yapmadığım için belirtmeme gerek yok diye düşünüyorum :)
//////////////////////////////////////////// blog.ilkerguller.com by Ilker Guller










