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 , Microsoft Word'den 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ünden html yazan yerde embed veya object( ses, video , Java appletleri , resimler , Flash animasyonları , ActiveX, PDF ) html kodlarını kopyalarsanız çalışmıyor. Normal bir asp.net sayfasında her ihtiyacını sağlayabilirsiniz. Örnek sayfa için bu sayfaya 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 sayfa : System.Web.UI.Page

satırı bulup aşağıdaki satır ile değiştirmeniz gerekiyor.

public partial class sayfa : 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="Default2.aspx.cs" Inherits="Default2" %>

<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 page'in css kullanabilirsiniz id="page" eklentisi ile. Bu yöntem ile BlogEngine'ınızı daha da özelleştirebilir içine farklı projeler aktarabilirsiniz.