Previous
Next

Blogengine kullanıcıları için [more] eklentisinin kullanımı: BreakPost extension

by Cem Kefeli 17. Kasım 2009 12:05

Blogengine LogoBirçok blog kullanıcısının istemediği bir durumdur, ana sayfalarda yayımlanan yazıların içeriğinin tümünün gösterilmesi. Yazıların tümünü göstermek yerine yazı özetlerinin gösterilmesi fakat tüm içeriğin farklı bir link ile ziyaretçilere sunulması çok daha etkin bir yöntemdir. Çünkü yazıların tümünü ana sayfalarda gösterecek olursanız yazılar aşağıya doğru uzar da uzar. Bu da dizayn açısından çok da hoş görünmeyecektir.

Blogengine kullanıcılarını özet gösterimi için iki farklı yöntemden yararlanabilirler. İlki yönetim paneli'nin ayarlar sekmesinde yer alan "Yazıların sadece açıklamalarını göster" kontrolü. Eğer bu kontrolü aktif edecek olursanız yayımladığınız tüm yazılarınızın ilk 300 karakteri gösterilecektir. Yani root domaininize yapmış olduğunuz "default.aspx?page=2" benzeri her sorgu çıktısında yer alan sayfada görüntülenecek yazlılar kırpılacaktır. Kırpılan yazılara ise "devemı..." şeklinde bir link eklenmektedir. Bu link ile yazının tümünün yer aldığı sayfaya link verilmektedir. Bu kontrol için belirlenen 300 sayısı Blogengine yapısı için hardcoded olarak belirlenmiştir. Yani sizin bu değeri değiştirmeniz için kodda bazı değişiklikler yapmanız gerekmektedir. Bu değişikliklerin yapılması gereken dosyayı ve kodları Blogengine 1.4.5 versiyonu için aşağıda vermekteyim. Yapmanız gereken 174. ve 175. satırlardaki 300 sayısını dilediğiniz gibi değiştirmek.

\BlogEngine.Core\Web\Controls\PostViewBase.cs  |  Gizle  |  Göster
public string Body
{
    get
    {
        string body = Post.Content;
        if (ShowExcerpt)
        {
            string link = " [" + (Page as BlogBasePage).Translate("more") + "]";

            if (!string.IsNullOrEmpty(Post.Description))
            {
                body = Post.Description + link;
            }
            else
            {
                body = Utils.StripHtml(Post.Content);
                if (body.Length > 300)
                    body = body.Substring(0, 300) + "..." + link;
            }
        }

        ServingEventArgs arg = new ServingEventArgs(body, this.Location);
        Post.OnServing(Post, arg);	

Bu özellik her ne kadar güzel bir özellik olsa da bazı durumlar için ciddi sıkıntılar oluşturuyor. Örneğin eğer yazınız içerisinde tablo yapısı kullanıyorsanız ve yazınızın ilk 300 karakteri bu tablo içerisine denk geliyorsa tablo başlangıcı olan <table><tr><td> tagları özet içerisine yerleştirilecektir. Fakat bu tagları kapatmak için kullanılan </td></tr></table> tagları yerleştirilemeyecektir. Bu da tablonun yarım kalmasına, başlangıç taglarının kapatılmamasına ve açık kalmasına ve de sayfanızın dizaynında ciddi problem oluşmasına neden olacaktır. Bu vermiş olduğum tablolar ile ilgili yalnızca bir örnek daha farklı tagler için de aynı problem söz konusu olacaktır. Eğer bu özelliği kullanmak istirorsanız bu konuda dikkatli olmalısınız.

Kullanabileceğiniz bir diğer yöntem de Wordpress'te de çok güzide bir eklenti olan ve çok ilgi çeken 'more' eklentisi. Bu eklenti sayesinde yazınızın istediğiniz yerinde özetinin bittiği belirtebiliyorsunuz. Yapmanız gereken yalnızca özeti bitirmek istediğiniz yere [ more ] eklemeniz. Tıpkı benim bu yazıda yapmış olduğum gibi. Bu özelliği eklemek için [] karakterleri içerisindeki boşlukları siliniz lütfen. More eklentisini \BlogEngine.Web\App_Code\ExtensionManager\Extensions dizini içerisinde BreakPost.cs dosyasında bulabilirsiniz ve dilediğiniz gibi modifiye edebilirsiniz. Ayrıca more eklentisini yönetici panelinizin Extensions sekmesini kullanarak aktif ve pasip hale getirebilirsiniz. Yukarıda anlattığım tablo kullanmanız durumunda başınıza gelebilecek problemlerin aynen bu eklenti için de geçerli olduğunu da atlamadan belirtmeliyim. Yani eğer bu eklentiyi kullanacaksanız [ more ] koyduğunuz yere dikkat etmelisiniz. Yazının faydalı olması dileğiyle...

Etiketler: , , ,
Kategoriler: Makaleler

Yorumlar (1) -

g&#252;ncel blog
güncel blog Turkey
01.10.2010 01:10:50 #

gerekli olan bi kullanım eklentisi.

Yanıtla

Yorum ekle

biuquote
  • Yorum
  • Canlı önizleme
Loading

Hakkımda...

Cem KEFELİ

Electronics and
Telecommunication Eng.
devamı...


Son yapılan yorumlar...

Comment RSS

Yasal bir uyarı...

Disclaimer"Bu web sitesinde görmüş olduğunuz bilgilerin, dokümanların ve diğer materyallerin kullanılmasından doğabilecek hiç bir sorumluluktan site sahibi sorumlu tutulamaz. Web sitesi içerisinde yer alan yazılar, yorumlar, resimler ve diğer tüm içerikler yalnızca sahibinin görüşünü yansıtmakta olup içeriğin sahibi kişilerin çalıştığı kurumları bağlayıcı hiç bir nitelik taşımamaktadır. Yapılan tüm alıntılar mutlaka kaynak gösterilerek verilmeye çalışılmaktadır. Web sitesi içerisinde bulunan ilgili materyaller, ilgili yasal kurumlar tarafından uygun görülmemesi durumda kaldırılacaktır."
General