BlogEngine.net: il count dei commenti di Disqus genera un errore ecco perché

0 Condivisioni

Se nel tuo sito in BlogEngine.net hai deciso di gestire i commenti del tuo Blog con la piattaforma Disqus, allora devi sapere che dovrai aggiornare il file Helpers.cs, per risolvere il problema del non funzionamento del count.js e scaricare la versione di Source di Blogengine.

Disqus è un servizio di hosting di commenti per siti web e comunità virtuali che funziona mediante una piattaforma on line. Il suo utilizzo è molto vantaggioso sia per le sue numerose funzionalità che per la possibilità di entrare in contatto con altri utenti che ne fanno utilizzo.

Segui Informarea su Telegram

Purtroppo su BlogEngine.net esiste un code snippet di Disqus non aggiornato e ciò genera un errore nel count.js rallentando di molto il caricamento delle pagine del tuo blog.

Disqus in BlogEngine

Per intervenire sul codice dovrai scaricare la versione Source di BlogEngine collegandoti alla pagina di BlogEngine Codeplex, nella sezione Download, e dopo aver installato anche Visual Studio, la versione Express, aprire il progetto Blogengine precedentemente scaricato (quello source).

Da VS Express, apri il file di solution BlogEngine.sln. Questa soluzione contiene 2 progetti – il progetto BlogEngine Core e il sito principale. Una volta che il progetto è aperto non devi fare altro che eseguire i seguenti step per produrre il file BlogEngine.Core.dll per la directory BIN contenuta nel tuo sito.

Il file da modificare in questione si trova in questo percorso: BlogEngine\BlogEngine.Core\Web\Scripting\Helpers.cs. La riga 117 include un code snippet per Disqus da modificare così:

Righe di codice nel file Helpers.cs

if (BlogSettings.Instance.ModerationType == BlogSettings.Moderation.Disqus)
{
sb.Append("<script type=\"text/javascript\"> \n");
sb.Append("//<![CDATA[ \n");
sb.Append("(function() { ");
sb.Append("var links = document.getElementsByTagName('a'); ");
sb.Append("var query = '?'; ");
sb.Append("for(var i = 0; i < links.length; i++) { ");
sb.Append("if(links[i].href.indexOf('#disqus_thread') >= 0) { ");
sb.Append("query += 'url' + i + '=' + encodeURIComponent(links[i].href) + '&'; ");
sb.Append("}}");
sb.Append("document.write('<script charset=\"utf-8\" type=\"text/javascript\" src=\"http://disqus.com/forums/");
sb.Append(BlogSettings.Instance.DisqusWebsiteName);
sb.Append("/get_num_replies.js' + query + '\"></' + 'script>'); ");
sb.Append("})(); \n");
sb.Append("//]]> \n");
sb.Append("</script> \n");
}

Modifiche da applicare al codice di Helpers.cs

if (BlogSettings.Instance.ModerationType == BlogSettings.Moderation.Disqus)
{
sb.Append("<script type=\"text/javascript\">");
sb.Append("    var disqus_shortname = '" + BlogSettings.Instance.DisqusWebsiteName + "';");
sb.Append("    (function () {");
sb.Append("        var s = document.createElement('script'); s.async = true;");
sb.Append("        s.type = 'text/javascript';");
sb.Append("        s.src = '//' + disqus_shortname + '.disqus.com/count.js';");
sb.Append("        (document.getElementsByTagName('HEAD')[0] || document.getElementsByTagName('BODY')[0]).appendChild(s);");
sb.Append("    }());");
sb.Append("</script>");
}

Al termine effettua la Ricompilazione di Blogengine.Core.dll in Visual Studio Express e copia il file da Source\BlogEngine\BlogEngine.Core\bin\Release alla directory Bin del tuo Blog. Se hai Filezilla puoi fare semplicemente un upload e risolvere.

Non perdere nessuna notizia, aggiungici agli amici!


Segui Informarea su Telegram

Fabrizio Cannatelli

Fondatore di Informarea.it, è un appassionato di informatica. Ha lavorato per molti anni come Analista Programmatore presso varie aziende utilizzando diversi linguaggi di sviluppo, oggi svolge un lavoro completamente diverso ma la voglia di comunicare e di condividere con il web i suoi studi e le sue curiosità lo hanno spinto a far nascere questo blog non solo per esprimere e mostrare la passione per questo mondo, ma anche per confrontarsi con nuove esperienze di sviluppo.

Fabrizio Cannatelli

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.