Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Cos'è una Extension

Le estensioni sono una parte fondamentale di BlogEngine.NET, esaminiamone una in dettaglio
Le estensioni sono una parte fondamentale di BlogEngine.NET, esaminiamone una in dettaglio
Link copiato negli appunti

Una estensione per BlogEngine non è altro che una classe ha la funzione di intercettare e gestire alcuni eventi. In questa lezione vediamo come è definita la classe e quali sono gli eventi che possiamo gestire.

Un esempio non complesso di Extension è l'estensione Smile presente all'interno di BlogEngine, che converte un insieme di caratteri in un'immagine con l'emoticon corrispondente.

Una volta realizzata (o scaricata dal repository), per utilizzare una extension è sufficiente copiarla all'interno della cartella App_Code e attivarla dalla pagina di gestione delle estensione dell'area di amministrazione del blog.

using System;
using BlogEngine.Core;
using BlogEngine.Core.Web.Controls;

/// <summary>
/// Converts ASCII smilies into real smilies in the comments.
/// <summary>
/// <remarks>
/// Based on the extension by John Knipper - http://www.happytocode.com
/// <remarks>
[Extension("Converts ASCII smilies into real smilies in the comments", "1.3", "BlogEngine.NET")]
public class Smilies
{

  public Smilies()
  {
    Comment.Serving += new EventHandler(Post_CommentServing);
  }

  private const string LINK = "<img src="{0}editors/tiny_mce/plugins/emotions/images/smiley-{1}.gif" class="flag" alt="{2}" />";

  /// <summary>
  /// The event handler that is triggered every time a comment is served to a client.
  /// </summary>
  private void Post_CommentServing(object sender, ServingEventArgs e)
  {    
    if (!string.IsNullOrEmpty(e.Body))
    {
      e.Body = e.Body.Replace("(H)", Convert("cool", "Cool"));
      e.Body = e.Body.Replace(":'(", Convert("cry", "Cry"));
      e.Body = e.Body.Replace(":$", Convert("embarassed", "Embarassed"));
      e.Body = e.Body.Replace(":|", Convert("foot-in-mouth", "Foot"));
      e.Body = e.Body.Replace(":(", Convert("frown", "Frown"));
      e.Body = e.Body.Replace("(A)", Convert("innocent", "Innocent"));
      e.Body = e.Body.Replace("(K)", Convert("kiss", "Kiss"));
      e.Body = e.Body.Replace(":D", Convert("laughing", "Laughing"));
      e.Body = e.Body.Replace("($)", Convert("money-mouth", "Money"));
      e.Body = e.Body.Replace(":-#", Convert("sealed", "Sealed"));
      e.Body = e.Body.Replace(":)", Convert("smile", "Smile"));
      e.Body = e.Body.Replace(":-)", Convert("smile", "Smile"));
      e.Body = e.Body.Replace(":-O", Convert("surprised", "Surprised"));
      e.Body = e.Body.Replace(":P", Convert("tongue-out", "Tong"));
      e.Body = e.Body.Replace("*-)", Convert("undecided", "Undecided"));
      e.Body = e.Body.Replace(";-)", Convert("wink", "Wink"));
      e.Body = e.Body.Replace("8o|", Convert("yell", "Yell"));
    }
  }

  /// 
  /// Formats the anchor and inserts the right smiley image.
  /// 
  private static string Convert(string name, string alt)
  {
    return string.Format(LINK, Utils.RelativeWebRoot, name, alt);
  }
}

Ti consigliamo anche