Pubblicato il 17/10/10 - aggiornato il  | 21 commenti :

Come mostrare tutti i commenti del blog in una pagina statica nella loro interezza.

Quando scrivo un articolo in genere lo faccio per me stesso, perché la cosa mi interessa e per mettere in archivio una conoscenza che può servirmi in futuro. Altre volte pubblico dei post semplicemente perché "richiesti dal mercato" nel senso se vedo che i miei articoli più letti trattano un certo argomento, allora cerco di ritornarci sopra il più possibile.
Non è raro però che alcuni spunti mi arrivino dai lettori che mi scrivono un commento o mi inviano una richiesta per email. Molte volte sono costretto a declinare la proposta perché eccessivamente impegnativa in termini di tempo o perché di scarso interesse generale altre volte invece ritengo che l'argomento meriti l'attenzione di tutti i lettori del blog. Proprio adesso stavo leggendo una mail di aspirapolvere folletto che mi chiedeva come fare per mostrare tutti i commenti non in un widget ma in una pagina apposita e in modo completo.
Iniziamo con un po' di teoria. Su Blogger di default vengono visualizzati solo gli ultimi 25 commenti tramite un feed che ha un indirizzo simile a questo
http://nomeblog.blogspot.com/feeds/comments/default
per esempio se andate su http://www.ideepercomputeredinternet.com/feeds/comments/default potete visualizzare gli ultimi venticinque commenti di questo blog. Per poter vedere un numero maggiore di commenti si deve aggiungere una stringa finale
http://www.ideepercomputeredinternet.com/feeds/comments/default?max-results=100
Se incollate questo URL nel vostro browser vedrete gli ultimi 100 commenti di questo blog. Naturalmente il numero 100 può essere sostituito da qualunque altro. Se si ha un blog con molti commenti è evidente che ci potrebbero essere problemi di lentezza nel caricamento della pagina se si mette un numero troppo elevato.
Nel caso in cui volessimo invece visualizzare i commenti che vanno per esempio dal numero 201 al 400, l'indirizzo da mettere nel browser diventerebbe
http://www.ideepercomputeredinternet.com/feeds/comments/default?max-results=200&start-index=201
Possiamo quindi inserire un widget che mostri tutti i commenti del blog in delle pagine statiche suddividendoli per ordine nel caso che avessimo un blog molto commentato. Questi indirizzi è opportuno incollarli su Firefox o su Internet Explorer perché Chrome non visualizza bene il formato dei feed.
Per visualizzare in una pagina statica gli ultimi 200 commenti del blog basta andare su Post > Modifica Pagine > Nuova pagina, inserire in modalità HTML il seguente codice
<script style="text/javascript">
//Commenti Blogger by Parsifal32 autore di www.ideepercomputeredinternet.com
function showrecentcomments(json){for(var i=0;i<a_rc;i++){var b_rc=json.feed.entry[i];var c_rc;if(i==json.feed.entry.length)break;for(var k=0;k<b_rc.link.length;k++){if(b_rc.link[k].rel=='alternate'){c_rc=b_rc.link[k].href;break;}}c_rc=c_rc.replace("#","#");var d_rc=c_rc.split("#");d_rc=d_rc[0];var e_rc=d_rc.split("/");e_rc=e_rc[5];e_rc=e_rc.split(".html");e_rc=e_rc[0];var f_rc=e_rc.replace(/-/g," ");f_rc=f_rc.link(d_rc);var g_rc=b_rc.published.$t;var h_rc=g_rc.substring(0,4);var i_rc=g_rc.substring(5,7);var j_rc=g_rc.substring(8,10);var k_rc=new Array();k_rc[1]="Gen";k_rc[2]="Feb";k_rc[3]="Mar";k_rc[4]="Apr";k_rc[5]="Mag";k_rc[6]="Giu";k_rc[7]="Lug";k_rc[8]="Ago";k_rc[9]="Set";k_rc[10]="Ott";k_rc[11]="Nov";k_rc[12]="Dic";if("content" in b_rc){var l_rc=b_rc.content.$t;}else if("summary" in b_rc){var l_rc=b_rc.summary.$t;}else var l_rc="";var re=/<\S[^>]*>/g;l_rc=l_rc.replace(re,"");if(m_rc==true)document.write(''+j_rc+' '+k_rc[parseInt(i_rc,10)]+': ');document.write('<a href="'+c_rc+'">'+b_rc.author[0].name.$t+'</a> ');if(n_rc==true)document.write(' ha commentato il post '+f_rc);document.write(': ');if(l_rc.length<o_rc){document.write('&#8220;');document.write(l_rc);document.write('&#8221;<br/><br/>');}else{document.write('&#8220;');l_rc=l_rc.substring(0,o_rc);var p_rc=l_rc.lastIndexOf(" ");l_rc=l_rc.substring(0,p_rc);document.write(l_rc+'&hellip;&#8221;');document.write('<br/><br/>');}}document.write('<div style="font-size:50%;text-align:center"><p><a href="http://goo.gl/hi9B">Installa il widget</a></div>');}
</script>
<script style="text/javascript">
var a_rc=200;
var m_rc=true;
var n_rc=true;
var o_rc=9999;</script>
<script src="http://www.ideepercomputeredinternet.com/feeds/comments/default?max-results=200&alt=json-in-script&callback=showrecentcomments"> </script>
Al posto dell'URL dei feed dei commenti, evidenziato di rosso, inserite quello del vostro blog e, eventualmente, sostituite 200 con un altro numero. Durante la pubblicazione, come saprete, potete associare la pagina a un widget laterale, orizzontale o a nessuno dei due (scelta consigliata). Se volete creare più pagine statiche, configurate i feed con questa modalità
Primi 200 commenti: ?max-results=200
Secondi 200 commenti
: ?max-results=200&start-index=201
Terzi 200 commenti
: ?max-results=200&start-index=401
e così via. Ecco uno screenshot di come lavora questo widget.
widget-ultimi-commenti
Oltre al commento, c'è il nome di chi lo ha fatto, la data in cui è stato fatto, e l'articolo a cui si riferisce. Inoltre il commento è presente nella sua interezza. Si possono anche personalizzare le pagine statiche per fare in modo da allargarne il layout e non mostrare le sidebar. Ho potuto verificare che fino a 500 commenti e anche di più, non ci sono grossi problemi di velocità di caricamento della pagina.
Aggiornamento: In un primo momento avevo creato due pagine statiche di dimostrazione in un mio blog che uso per i test; in seguito mi sono reso conto che erano stati generati ben 800 link verso questo sito. Quattrocento commenti per due collegamenti a commento. Google avrebbe potuto interpretare il fatto come una azione di spam e un tentativo di alterare il Page Rank, quindi ho ritenuto opportuno eliminarle. Confermo comunque che il widget è assolutamente funzionante e ovviamente non è soggetto a problemi di questo genere, se utilizzato nel nostro blog, visto che si linkano i nostri stessi post.




21 commenti :

  1. Fantastico, tutto funziona perfettamente era proprio quello che cercavo.

    Posso dare un piccolo suggerimento, grazie a parsifal mi è venuto in mente di inserire tutti i feeds dei commenti sul servizio webmaster di google, già mi ha indicizzato oltre 30 pagine in meno di 20 minuti... non male come idea per internet! Grazie parsifal!

    RispondiElimina
  2. @occhioalfolletto
    Ci andrei piano con l'indicizzazione dei commenti perché è stata disabilitata da Blogger in quanto il commento veniva considerato contenuto duplicato. Si tratta cioè di un post già indicizzato con l'aggiunta di un commento. Servirebbe solo nel caso in cui l'articolo non fosse già nel database di Google

    RispondiElimina
  3. spiega meglio, il commento non è assestante rispetto il post? non ha un suo diretto indirizzo internet o va a rileggere tutto il post correlato?
    Perché google ti da questa possibilità e non ti dice che è errata?

    Adesso mi è venuto in mente che una volta webmaster mi ha chiesto se poteva inserire lui stesso un feed dei commenti di un post per richiesta di qualcuno, l'ho capito da poco che i numeri si riferivano ad un singolo post, strano non pensi, perché chiedermi di indicizzare i commenti di un singolo post?

    Comunque se ne sei abbastanza sicuro ho fiducia in te, tu sei il tecnico :)

    Non avrei problemi con la pagina dei commenti, parli solo per il webmaster giusto? o è meglio che non la faccio indicizzare... come? :)

    RispondiElimina
  4. @occhioalfolletto
    Questo post ha l'indirizzo
    http://www.ideepercomputeredinternet.com/2010/10/come-mostrare-tutti-i-commenti-del-blog.html
    mentre il tuo commento ha l'indirizzo
    http://www.ideepercomputeredinternet.com/2010/10/come-mostrare-tutti-i-commenti-del-blog.html?showComment=1287342515430#c4523177644483706377
    Si tratta in sostanza della stessa pagina con l'aggiunta di un commento. Qualche tempo fa la Bacheca per webmaster li considerava contenuti duplicati. Adesso, siccome Blogger è di Google hanno ovviato al problema ma in linea di massima non è consigliabile far indicizzare i commenti.
    Il mio suggerimento, e così rispondo anche alla tua email, è di non inviare sitemap che riguardano i feed dei commenti anche se non credo che sia poi una cosa così grave.
    P.S. Non sono un tecnico, ho solo una esperienza di quasi tre anni con il blogging.

    RispondiElimina
  5. che dire, io stimo moltissimo il tuo lavoro e credo fermamente che tu ne sai molto di più di me. Grazie per l'idea e il consiglio, già ho provveduto! Il mio blog è diventato fruibile bello e semplice nella navigazione grazie agli innumerevoli tuoi post. Tramite ai feed e alle visite costanti al tuo blog che ora capisco molto di più su blogger... o meglio, come si imposta un blog!
    Nuovamente grazie!!!

    RispondiElimina
  6. Ciao,è la prima volta che ti scrivo ma seguo i tuoi post da sempre,forse mi è sfuggito qualcosa,come inserire una tabella con immagini e testo in maniera semplice in una pagina statica di blogger?Grazie e ciao.

    RispondiElimina
  7. @blogredire
    Non mi ricordo di aver mai scritto ancora nulla al riguardo. Continua a seguirmi :-)
    Ciao

    RispondiElimina
  8. Guarda che i commenti massimi mostrati sono solo 200. E io ne ho più di 5000. Non hai qualche truccoi per mostrarli tutti.? Ciao.

    RispondiElimina
  9. @Mio Capitano
    Mostrare tutti i commenti tutti insieme, se sono così tanti è anche difficile dal punto di vista tecnico. La pagina impiegherebbe tantissimo a caricarsi. Ti posso suggerire di mostrare il widget dei post con più commenti
    http://www.ideepercomputeredinternet.com/2010/01/il-widget-dei-post-piu-commentati-in-un.html
    E in una versione con il Pipe di Yahoo
    http://www.ideepercomputeredinternet.com/2011/03/widget-degli-articoli-piu-commentati.html

    RispondiElimina
  10. ciao,
    davvero un bel post..
    ma come faccio ad eliminare la riga che indica installa il widget?

    RispondiElimina
  11. Marzo 2012.. i commenti nella pagina statica non esistono più
    -_-'
    L'indirizzo dei feed non è cambiato, mi sa tanto che è colpa delle "belle novità" di blogger delle ultime settimane. Che ne pensi Ernè? :D
    Che stress, però. Mi era molto comoda questa funzione per non perdermi nessun commento!

    RispondiElimina
    Risposte
    1. @Sarù
      Ho postato il codice in una pagina statica come prova e funziona tuttora. Forse hai inserito un altro widget per i commenti nel blog che gli crea incompatibilità. Prova a reinstallarlo magari cambiando il numero dei commenti da visualizzare.

      Elimina
    2. Ernè m'era preso un colpo.. :D
      Avevo inserito il codice per inserire il tasto "rispondi" sotto ogni commento e probabilmente blogger s'è incollerito.
      Ora ho ricreato la pagina e ripostato il codice ed è tutto ok.

      Grazie grazie grazie! ^_^

      Elimina
  12. @Saru
    Vedi che si risolve tutto :))

    RispondiElimina
  13. 1.Ho letto che il caso inverso di ridurre i commenti inferiore a 200 non si può. Mi interessava sapere superati i 200 commenti come si vedono? Suddivisi per pagine?
    2.Poi ho letto che i commenti non si indicizzano perché i commenti stanno in un link a parte, eppure io ho notato un netto miglioramento nei post con commenti, il tuo parere?
    3. Attualmente i commenti recenti, come il mio di adesso viene inserito nella parte bassa. E' possibile invertire e fare in modo che i commenti recenti appaiono in alto?

    RispondiElimina
    Risposte
    1. @AndreaSapuppo
      Il mio amico Soufiane ci ha fatto un ottimo post
      http://www.leblogger.com/2010/02/pagination-commentaire-blogger-200-page.html

      Elimina
    2. Non lo trovo il bottone Avanti, lui ha mezzo solo Carica di più.
      Come ha fatto lui sembra inutile perché mostra commenti vecchissimi e per vedere il più recente, soprattutto se si interagisce sempre con le persone, un po' come fai tu non conviene perché neanche chi ti ha scritto riesce più a trovare il suo commento. Ci vorrebbe qualcosa per visualizzare in alto i commenti recenti ed in basso quelli più vecchi.

      Elimina
    3. Non so' cosa ci hai visto di ottimo. Secondo me sai cosa sarebbe perfetto?
      Che il coso per scrivere i commenti sia posizionato prima delle risposte dei commenti anziché alla fine e poi che gli ultimi commenti siano posizionati in alto anziché alla fine. Un esempio perfetto è il Corriere dello Sport, ma tutti i migliori fanno così.
      Come fa blogger si appesantiscono troppo le pagine di commenti vecchi e inutili e non aiuta i nuovi utenti a scrivere il loro parere.

      Elimina
    4. @AndreaSapuppo
      Ho saputo per la prima volta che Blogger impaginava i commenti 200 per 200. Poi certo le soluzioni non ci sono. Avere i commenti più recenti prima di quelli più vecchi senza dover scorrere la pagina è auspicabile

      Elimina
  14. ciao... ma se volessi che i commenti comparissero al lato come nel tuo caso ... è possibile?

    RispondiElimina
    Risposte
    1. Certo. Segui queste istruzioni
      http://www.ideepercomputeredinternet.com/2013/04/last-comments-widget-with-rotating-avatar.html
      @#

      Elimina

Non inserire link cliccabili altrimenti il commento verrà eliminato. Metti la spunta a Inviami notifiche per essere avvertito via email di nuovi commenti.
Info sulla Privacy