
Blogsa blogunda "Celilcan" isimli arkadaşımız Blogsa 1.1 sürümü yorum sayfasında html sayfaya nasıl blogsa son yazılar eklentisi çağrılabilir diye sormuş. Kafama takıldı bu soru ama çözümü pek gecikmedi :) Umarım birazdan aşağıda anlatacağım adımlar işinizi görür.
1.Adım
Öncelikle çağırmak istediğimiz Blogsa eklentisi üzerinde ufak bir oynama yapacağız. Mesela HTML sayfamıza bloğumuzdaki son yazılan yazılarımız eklentisini çağıralım. Bunun için eklentinin bulunduğu klasörümüzü açıp içersinden "widget.aspx" dosyamızı çekiyoruz ve bir metin editörü ile açıyoruz. Dosyamız aşağıdaki gibi;
<%@ Control Language="C#" ClassName="RecentPosts" %>
<%@ Import Namespace="System.Data" %>
<script runat="server">
protected void Page_Load(object sender, EventArgs e) {
Hashtable htp = DBToys.Do.SimpleQuery("Posts", "Where State = 1 AND Type = 0", "Order By CreateDate Desc", "Top " + Blogsa.Settings["recent_posts_count"] + " *");
if (htp["Error"] == null) {
rpPosts.DataSource = htp["DataTable"] as DataTable;
rpPosts.DataBind();
}
}
</script>
<div id="son">
<div class="widget">
<div class="title">
<span>
<%=Language.Get["RecentPosts"] %></span></div>
<div class="content">
<ul>
<asp:Repeater runat="server" ID="rpPosts">
<ItemTemplate>
<li><a href="<%#Functions.GetLink((int)Eval("PostID")) %>" target="_blank">
<%#Eval("Title").ToString().Length < 100 ? Eval("Title").ToString() : Eval("Title").ToString().Substring(0, 99)%>
</a></li>
</ItemTemplate>
</asp:Repeater>
</ul>
</div>
</div>
</div>
yukarıda renkli olarak verilen komutları bu eklentimizin kodları arasına alıyoruz.
<div id="son">
...
</div>
yukarıda verdiğimiz "Id" web sayfamız içinde kullanmadığımız bir nesne adı olursa daha sağlıklı olur. Ben eklentinin en başı ile sonunu aldım yani bloğumda ki eklenti başlığıda Html sayfamda görülecek.
Ayrıca hatırlatmakta fayda var yukarıda mavi ile işaretlenmiş kodu da yine eklentimize ekliyoruz ki ziyaretçiler yazılar bağlantısına tıkladığında sayfamız o küçük penceremizde açılmasın, yeni bir safyada açılsın diye.
Sonra bu dosyayı uzantısını değiştirmeden kaydet diyor ve sunucumuza gönderiyoruz. gelelim şim Html sayfamızın yapısına.
2.Adım
şimdi html kodlarımız oluşturalım. Bunu için aşağıdaki basit sayfa kodlamasını kullanalım. Ama dikkat etmemiz gereken burada bize sadece <iframe>...</iframe> komutu lazım. Siz Html sayfanızda gömmek istediğiniz tablo yada başka içeriğe bu kod ile başlayan satırı gömünüz. Benim sayfam üzerinden bir örnek ile çalışalım.
<html>
<head>
<title>Html Sayfa İçine Blogsa eklentisi Çağırma</title>
</head>
<body>
<iframe src="http://www.hakankarakaya.com/?widget=RecentPost#son" height="300" width="250" scrolling="no" frame-border="0">
</iframe>
</body>
</html>
Evet, sayfamızı .html uzantısı ile kaydediyoruz. Burada ki püf nokta aslında Blogsanın sağladığı bir kolaylık olan "Blogsa Önizleme Motoru" çünkü bu motor ile eklenti, tema vb. araçlarınızı web sayfanız üzerinde .../?widget=RecentPost veya ../?theme=Anno1404 şeklinde çalıştırabilme imkanınızın olması. Böylelikle Son yazılar eklentimizi web sayfamız ile çağırıyoruz ve iframe koduna da istediğimiz yeri göstermesi için "widget.aspx" dosyasında verdiğimiz "Id" çağırmasını söylüyoruz.
Yukarıdaki <iframe> komutunun boyunu eklentimiz ile orantılı bir şekilde ayarlıyoruz, tabi genişliğini de ve daha sonra çerçevemizi ile kaydırma çubuklarınının görünmesini istemiyoruz. Bu kadar! :) Umarım işinize yarar. Yorumlarınızı bekliyorum.
Örnek sayfaya buradan ulaşabilirsiniz.