17 ottobre 2007  2

Come implementare un plug-in per automatizzare l'inserimento del codice FeedFlare nel proprio blog

FeedBurner è senz'altro la più importante e completa piattaforma di servizi dedicata alla normalizzazione e distribuzione di feedW. La maggior parte degli utenti utilizza principalmente le opzioni dedicate al tracciamento ed all'elaborazione statistica della distribuzione di questi ultimi, oltre che alla possibilità di arricchire gli stessi con dati esterni, link a servizi di social bookmark, advertising e molto altro ancora. Recentemente però, dopo l'acquisizione da parte di Google, sono state rese gratuite anche le cosiddette funzionalità PRO che inizialmente erano soggette ad un piccolo canone mensile; tra queste anche un completo sistema di gestione delle statistiche di accesso al sito, che si va ad affiancare agli strumenti già disponibili per l'osservazione della distribuzione dei feed. In questo modo si rende possibile il monitoraggio sia degli accessi che del feed con unico applicativo centralizzato.

Il controllo sulla distribuzione dei feed richiede esclusivamente che venga cambiato l'URLW di riferimento allo stesso, reindirizzandolo mediante l'apposito servizio di FeedBurner, previa creazione di un account dedicato. Una volta completata la procedura di registrazione e fornito l'URL assoluto relativo al servizio che genera il feed del proprio sito o blog, è possibile reindirizzare tutte le richieste relative al nuovo indirizzo:

http://www.feedburner.com/{nome_feed}

dove {nome_feed} indica il nome che è stato assegnato in fase di registrazione al feed che intendiamo pubblicare.

Se invece si vuole attivare la funzionalità chiamata FeedFlare, ovvero il monitoraggio degli accessi e/o l'inserimento automatico in coda ad ogni post dei link ai servizi aggiuntivi (ad.: es. numero dei commenti, numero dei blog reactions monitorati da Technorati, invio tramite e-mail del permalink, ecc.) è necessario un intervento, seppur minimale, sul codice di alcuni template relativi al blog per il quale è stato già registrato il feed, inserendovi uno script. A tal scopo, individuati i template che definiscono l'home page del blog (che generalmente contiene gli ultimi N articoli pubblicati o una loro breve anteprima), la pagina di definizione del post completo ed eventualmente la pagina generica (o pagina statica), è sufficiente inserire in coda alla variabile di descrizione di ciascun contenuto, lo script:

<script src="http://feeds.feedburner.com/~s/{nome_feed}?i={permalink}" type="text/javascript" charset="utf-8" ></script>

dove {nome_feed} corrisponde, come già definito precedentemente, al nome che abbiamo assegnato al feed in fase di registrazione e {permalink} corrisponde all'indirizzo assoluto del post (o della pagina). Normalmente, all'interno del template la voce {permalink}viene sostituita con un variabile di ambiente che viene istanziata di volta in volta con l'indirizzo assoluto relativo al post renderizzato: questa variabile varia a seconda del sistema di blogging utilizzato. Ad esempio, nel caso di BlogEngine.NET, lo script corretto è:

<script src="http://feeds.feedburner.com/~s/{nome_feed}?i=<%=Post.PermaLink %>" type="text/javascript" charset="utf-8"></script>

Il plug-in

Anche se le modifiche da effettuare sui template del proprio sito o blog non sono particolarmente invasive e sono circoscritte al massimo a 3 differenti schemi di pubblicazione, ho sviluppato un semplicissimo plug-in per BlogEngine.NET che consente di effettuare l'operazione in via del tutto automatica. I principali vantaggi nell'uso di uno strumento ad hoc per l'inserimento del codice FeedFlare nella pagina non sono trascurabili:

  • Lo script viene assemblato in maniera dinamica recuperando le informazioni dal file di configurazione del blog: ciò significa che se si cambia l'indirizzo relativo al feed su FeedBurner, la modifica si propagherà automaticamente anche nello script FeedFlare, sollevando l'utente dall'onere di aggiornare manualmente il codice.
  • Lo script viene inserito automaticamente in fondo a ciascun post (o anteprima degli stessi) in home page, in fondo a ciascun post dedicato ed in fondo a ciascuna pagina statica.
  • Il plug-in si attiva solo se nel pannello delle impostazioni di configurazione del blog è valorizzato il campo relativo all'indirizzo assoluto del feed su FeedBurner.
  • Installando il plug-in solo in remoto, e possibile lavorare sulla propria copia in locale del blog (per aggiornamenti, modifiche o quant'altro) senza andare ad inficiare le statistiche del sito remoto durante l'esecuzione dei test in locale.

Il codice, sviluppato in C#W, è molto semplice ed autoesplicativo e si limita a delle semplici operazioni di sostituzioni ed accodamento di stringhe. Giusto a titolo di esempio, pubblico un estratto relativo alla funzione di creazione ed accodamento script al corpo del post (o della pagina):

...
public FeedFlare()
{
  Post.Serving += new EventHandler<ServingEventArgs>(Serving);
  Page.Serving += new EventHandler<ServingEventArgs>(Serving);
}
/// <summary>
/// Definition of FeedFlare script
/// </summary>
private const string FeedBurnerScript = "<script src=\"http://feeds.feedburner.com/~s/{0}?i={1}\" type=\"text/javascript\" charset=\"utf-8\"></script>";
/// <summary>
/// If exist FeedBurner's alternative feed url then create and append FeedFlare script
/// </summary>
private static void Serving(object sender, ServingEventArgs e)
{
  if (BlogSettings.Instance.AlternateFeedUrl != "")
  {
     if (e.Location == ServingLocation.SinglePage ||
         e.Location == ServingLocation.SinglePost ||
         e.Location == ServingLocation.PostList)
    {
       string FeedBurnerUrl =
                BlogSettings.Instance.AlternateFeedUrl;
       string AbsoluteUrl = "";
       if (e.Location == ServingLocation.SinglePage)
       {
         Page post = (Page)sender;
         AbsoluteUrl = post.AbsoluteLink.ToString();
       }
       else
      {
         Post post = (Post)sender;
         AbsoluteUrl = post.AbsoluteLink.ToString();
      }
      if (FeedBurnerUrl.EndsWith("/")) FeedBurnerUrl =
         FeedBurnerUrl.Remove(FeedBurnerUrl.Length - 1);
      string FeedBurnerUsername =
      FeedBurnerUrl.Substring(FeedBurnerUrl.LastIndexOf("/") + 1);
      e.Body = e.Body +
      string.Format(FeedBurnerScript,
      FeedBurnerUsername, AbsoluteUrl);
    }
  }
}
...

L'installazione è semplicissima: dopo aver scaricato il file, va decompresso e copiato nella cartella /App_Code/Extensions del proprio spazio web.

Scarica il plugin: FeedFlare.zip (843,00 bytes)

Concludo ricordando che, tramite il pannello di controllo del proprio account FeedBurner è possibile attivare singolarmente i servizi aggiuntivi sia nel feed, che in coda al post, o in entrambi.

Altre estensioni (More extensions) ...

FeedFlare Panel
Esempio di configurazione di FeedFlare

Esprimi il tuo giudizio

Commenti (2) -

John Callaway
John Callaway
25 mag 2008 alle 15:12  02
Any chance you could put up an english version of this post, like you did for the Adsense post?  It would be much appreciated.
Cristiano
Cristiano
25 mag 2008 alle 16:45  03
@ John Callaway:
Of course! I intend to translate into English as soon as possible all posts about my Blogengine.NET's extensions (and Wordpress plugin also). Smile

Pingbacks and trackbacks (2)+

Aggiungi Commento

biucitecode
  • Commento
  • Anteprima
Loading


| |   |  

Codice QR

Codice QR - cristianofino.net

Ultimi Commenti