Hepimizin bildiği gibi BlogEngine üzerinde sayfalar oluşturabiliyoruz.
Fakat BlogEngine ile birlikte gelen tiny_mce text editörü veya yazılarımızı
Window Live Writer'dan ( Windows Live Writer ile BlogEngine.NET Kullanmak ) , Microsoft Word'den ( MS Word Kullanarak BlogEngine'a Yazı Göndermek ) yazarken herhangi bir html veya
asp.net kontrolünü sayfaya ekleyip kontrol edemiyoruz. Bu yazımda normal bir
asp.net sayfasını BlogEngine içinde temayla(master page ile) beraber kullanmayı
göstereceğim. Apayrı ve boş bir asp.net sayfası yaratmak yerine , sitenizdeki
her sayfada blogengine temanızdan ve blog kontrollerinizden kopmamış
olacaksınız. Ayrıca tiny_mce editörü embed veya object(
ses, video , Java appletleri , resimler , Flash animasyonları , ActiveX, PDF gibi)
html kodlarını çalıştırmanıza izin vermiyor. Normal bir asp.net sayfasında her
ihtiyacınızı sağlayabilirsiniz. Örnek sayfa için bize destek olun sayfamıza göz atabilirsiniz.
Nasıl Yapılır?
1-) Herhangi bir text editörü veya Visual Studio kullanabilirsiniz. Visual
Studio'da blogengine projenizde istediğiniz yerde bir web form yaratın. aspx
dosyasında en üstte 1. satırdaki page directive ( <%@ Page Language="C#"
..... ) hariç diğer tüm satırları silin.
2-) Eğer blogengine objelerini ( <blog:CategoryList> gibi ) sayfada
kullanıcaksanız ki çok nadir ihtiyacınız olur , 2. satıra aşağıdaki kodu
kopyalayın.
<%@ Import Namespace="BlogEngine.Core" %>
3-) ASP.NET sayfasında kullanıcağımız bütün kontrolleri aşağıdaki content içine
koyacağız. BlogEngine temamızdaki site.master dosyasındaki
<asp:ContentPlaceHolder ID="cphBody" runat="server" /> satırındaki kodun
bağlantısını görmüş olduk. Temamızda yer ayırıp , web formumuzda içini
doldurduk. Aşağıdaki kodu yarattığınız aspx sayfasında en alta kopyalayın.
<asp:content id="Content1" contentplaceholderid="cphBody" runat="Server">
<!-- sayfamızda görünecek bütün kontrolleri bunun içine kopyalayın -->
</asp:content>
4-) Temamızın sayfamıza uygulanması , tracking scriptimizin , CSS imizin bu
yarattığımız sayfa için de çalışması için BlogEngine 'ın her sayfası için
uyguladığı abstract BlogBasePage classından inherit etmemiz gerekiyor. Bunun
için yarattığımız sayfanın aspx.cs dosyasında
public partial class olusturdugunuzSayfaIsmi : System.Web.UI.Page
satırı bulup aşağıdaki satır ile değiştirmeniz gerekiyor.
public partial class olusturdugunuzSayfaIsmi : BlogEngine.Core.Web.Controls.BlogBasePage
5-) Üsteki değişikliklerle normal asp.net sayfamız çalışacaktır. Allta örnek bir
aspx dosyası ekledim.
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="olusturdugunuzSayfaIsmi.aspx.cs" Inherits="olusturdugunuzSayfaIsmi" %>
<asp:content id="Content1" contentplaceholderid="cphBody" runat="Server">
<div id="page" >
<asp:Button runat="server" id="button1" Text="Button"></asp:Button>
<asp:TextBox id="textBox1" runat="server"></asp:TextBox>
</div>
</asp:content>
Div zorunlu değil visual studio'nun intellisense'inde web kontrollerini çıkması
için kullanabilirsiniz. Ayrıca BlogEnginedaki normal sayfalar'in css'ini
kullanabilirsiniz id="page" eklentisi ile. Bu yöntem ile BlogEngine'ınızı daha
da özelleştirebilir içine farklı projeler aktarabilirsiniz.
Alp Çoker www.alpcoker.com