by Cem Kefeli
17. Kasım 2009 12:05
Birç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...
cdda9029-02c5-44a0-81f5-30960df503d6|3|3.7