08 febbraio 2010

Aggiungere il widget degli Ultimi Post in un elemento pagina HTML/Javascript ad un blog su Blogger.

Continuo la mia operazione di eliminazione degli script caricati su hosting esterni per evitare problemi di bandwidth e di disservizio degli stessi hosting. In questo blog, nel momento in cui scrivo, non ho il widget degli Ultimi Articoli in quanto sarebbe superfluo dato che questi sono consultabili nel widget dell'archivio con calendario.
Ho già presentato una versione del gadget degli Ultimi Articoli che fa a meno di script esterni; adesso presento una variante ancora più semplice per la quale non occorre operare nel modello ma è sufficiente inserirla in un elemento pagina. Ecco il codice

    <script style="text/javascript">
//credit to hoctro - localizzato da Parsifal32 - www.ideepercomputeredinternet.com
function rp(json) {
document.write('<ul>');for (var i = 0; i < numposts; i++) {
document.write('<li>');
var entry = json.feed.entry[i];
var posttitle = entry.title.$t;
var posturl;
if (i == json.feed.entry.length) break;
for (var k = 0; k < entry.link.length; k++) {
if (entry.link[k].rel == 'alternate') {
posturl = entry.link[k].href;
break;
}
}
posttitle = posttitle.link(posturl);
var readmorelink = "(leggi tutto)";
readmorelink = readmorelink.link(posturl);
var postdate = entry.published.$t;
var cdyear = postdate.substring(0,4);
var cdmonth = postdate.substring(5,7);
var cdday = postdate.substring(8,10);
var monthnames = new Array();
monthnames[1] = "Gen";
monthnames[2] = "Feb";
monthnames[3] = "Mar";
monthnames[4] = "Apr";
monthnames[5] = "Mag";
monthnames[6] = "Giu";
monthnames[7] = "Lug";
monthnames[8] = "Ago";
monthnames[9] = "Set";
monthnames[10] = "Ott";
monthnames[11] = "Nov";
monthnames[12] = "Dic";
if ("content" in entry) {
var postcontent = entry.content.$t;
} else if ("summary" in entry) {
var postcontent = entry.summary.$t;
} else
var postcontent = "";
var re = /<\S[^>]*>/g;
postcontent = postcontent.replace(re, "");
document.write(posttitle);
if (showpostdate == true) document.write(' - ' + cdday + ' ' + monthnames[parseInt(cdmonth,10)]+ ' ');
if (showpostsummary == true) {
if (postcontent.length < numchars) {
document.write(postcontent);
} else {
postcontent = postcontent.substring(0, numchars);
var quoteEnd = postcontent.lastIndexOf(" ");
postcontent = postcontent.substring(0,quoteEnd);
document.write(postcontent + '...' + readmorelink);
}
}
document.write('</li>');
}
document.write('</ul>');
document.write('<div style="font-size:70%;text-align:center"><p><a href="http://goo.gl/cPYh">Install widget</a></div>');
}
</script>
<script style="text/javascript">
var numposts = 6;
var showpostdate = false;
var showpostsummary = false;
var numchars = 100;
</script>
<script src="http://www.ideepercomputeredinternet.com/feeds/posts/default?orderby=published&alt=json-in-

script&callback=rp"></script>
  

Le personalizzazioni da compiere sono le seguenti
  1. var numposts = 6; rappresenta il numero di articoli da mostrare
  2. var showpostdate = false; se non si vuol mostrare la data, se si vuole che appaia true al posto di false
  3. var showpostsummary = false; se non si vuole mostrare il sommario del post, se si vuole vedere true al posto di false
  4. var numchars = 100; rappresenta il numero dei caratteri del sommario
  5. Va ovviamente inserito l'URL del blog al posto di www.ideepercomputeredinternet.com
Si va su Personalizza > Layout > Elementi pagina > Aggiungi un gadget > HTL/Javascript e, in Sezioni del sito, si incolla il codice personalizzato, si aggiunge il Titolo, si clicca su Salva e, con il mouse, si posiziona al meglio cliccando nuovamente su Salva.
ultimi-postPotete vedere questo widget all'opera in due versioni
Nel caso in cui si scelga di visualizzare anche il sommario dell'articolo apparirà il collegamento (leggi tutto) per vedere tutto il post.



38 commenti:

  1. Ciao, davvero interessanti i tuoi post, volevo chiederti se c'è la possibilità di inserire il blogroll in una pagina statica (html) di blogger. Grazie mille.

    RispondiElimina
  2. @::aNoNiMo::
    certo che si può fare. Non so a che Blog Roll ti riferisci ma basta inserire un elenco di blog con relativo link.
    Se sei più preciso...
    Ciao

    RispondiElimina
  3. Hai ragione, scusami sono stato poco preciso: vorrei sapere se è possibile inserire all'interno della pagina statica il widget "ElencoBlog", quello che si aggiorna tramite rss. Grazie mille! Antonio.

    RispondiElimina
  4. @:: aNoNiMo ::
    L'elenco Blog così com'è è possibile inserirlo in una sidebar ma non nella pagina statica. Se trovo qualcosa di adatto ci faccio un articolo.
    Ciao

    RispondiElimina
  5. Ti ringrazio molto per avermi risposto, passerò spesso sul tuo blog, per controllare i post. Grazie ancora, Antonio.

    RispondiElimina
  6. Non mi funziona :(

    Non mi da errore, ma nemmeno vedo nulla... sigh! sigh!

    RispondiElimina
  7. @alessandro
    ho appena controllato lo script e funziona perfettamente. Probabilmente non lo hai copiato bene o non hai inserito bene l'URL del tuo blog.
    Ciao

    RispondiElimina
  8. Carissimo,

    ti ringarzio...

    domattina ci provo e ti aggiorno

    Grazie e buona serata

    RispondiElimina
  9. Carissimo,

    niente da fare.....
    poi provo su un altro blogo e ti faccio sapere

    Grazie

    Ale

    RispondiElimina
  10. @Alessandro
    guarda che per usare Json bisogna prima togliere il widget che abbiamo, poi inserire quello nuovo altrimenti vanno in conflitto.
    Ciao

    RispondiElimina
  11. Ciao, c'è un modo per far apparire anche l'autore di un post?

    RispondiElimina
  12. @darkoide
    non so se c'è uno script che mostri anche l'autore. Può essere utile solo nei blog che ne hanno più di uno. Mi informo e se lo trovo o se riesco a modificare il javascript ci scrivo un post.
    Ciao

    RispondiElimina
  13. Grazie mille Parsifal, ho un altro dubbio: non riesco a capire perché quando scrivo un nuovo post questo a volte appare subito negli ultimi post e a volte no...tu hai qualche spiegazione?

    RispondiElimina
  14. @darkoide
    succede un po' a tutti. Può dipendere dalla velocità dei feed oppure da un'altro problema. L'importante è che, quando ne pubblichi un altro, si veda anche il precedente.
    Ciao

    RispondiElimina
  15. Ciao parsifal, grazie per il widget, funziona veramente bene! (come tutto quello che trovo su questo sito!).
    Mi chiedevo solo, visto che te ne intendi, se si poteva cambiare colore del testo nel riassunto del post e magari ingrandirlo per farlo venire in evidenza... Grazie!

    RispondiElimina
  16. @Pinuz
    E' una cosa che credo tu possa fare nel tuo blog andando su Layout > Caratteri e Colori e selezionando il colore del testo e la sua dimensione, per quanto riguarda la sidebar o i widget (nel caso queste opzioni fossero presenti nel tuo modello).
    Altrimenti si potrebbe intervenire nei CSS ma è cosa complicata e non sempre fattibile.
    Ciao

    RispondiElimina
  17. ciao parsifal, grazie per avermi risposto ieri. ma non mi sono arresa ed ho installato quest'altro widget: funziona! solo che naturalmente non ci sono le immagini. secondo te è possibile manipolare questo codice in modo da inserire anche le miniature delle immagini dei post? grazie mille

    RispondiElimina
  18. @sara b
    Il widget di ieri è proprio questo modificato per l'inserimento delle miniature ^_^

    RispondiElimina
  19. ah, ecco... T_T grazie lo stesso!

    RispondiElimina
  20. Ciao Parsifal,
    ho seguito le tue istruzioni ed ora il widget funziona perfettamente. Volevo chiederti questo: nel caso si decida di mostrare anche la data di pubblicazione degli ultimi articoli è possibile modificare questo codice in modo che il numero del giorno compaia prima del nome del mese? Grazie e complimenti per il blog!

    RispondiElimina
  21. @Emanuele
    Ho modificato il javascript, adesso si vede prima il giorno del mese e ho anche inserito uno spazio tra data e post. Fammi sapere se ora è tutto OK.
    Ciao

    RispondiElimina
  22. Sì, è tutto a posto. Grazie ancora!

    RispondiElimina
  23. Salve Parsifal, volevo chiederti un'informazione...secondo te è possibile integrare uno widget all'interno di un post? non intendo mostrarlo soltanto in una pagina, a me servirebbe proprio inserirlo all'interno di un post (che però come saprai è esso stesso uno widget). Volevo poi consigliarti, dal momento che ora hai attivato la moderazione dei commenti, di riabilitare i commenti con nome/url, cancellando poi di volta in volta i commenti anonimi come specificabile nella pagina commenti... così anche persone senza account Google potranno tornare a commentare :) ciao e buona giornata!

    RispondiElimina
  24. @Emanuele
    Sui commenti non posso che condividere ma se ho scelto questa opzione ho le mie ragioni. Fra qualche settimana può darsi che cambi qualcosa.
    Per inserire un widget all'interno di tutti i post, credo che sia questo quello che chiedi, si può utilizzare il metodo descritto in questo articolo
    http://www.ideepercomputeredinternet.com/2010/08/come-inserire-testo-link-e-immagini.html
    Questa stessa procedura si può utilizzare con il codice di qualsiasi widget che supporti la conversione in XML.
    Ciao

    RispondiElimina
  25. No purtroppo quello devrei fare io è inserire uno widget non in un modulo html esterno ma nel singolo post... praticamente avevo creato una pagina di archivio in javascript che si aggiornava dinamicamente con gli ultimi articoli, il problema è che google non può indicizzare tali elementi come fossero link html... per questo vorrei inserire lo widget dell'archivio di blogger direttamente in un post dedicato, però temo che non si possa fare essendo forse non consentito inserire un b:widget dinamico dentro un post...

    RispondiElimina
  26. @Emanuele
    Mi sembra una cosa che vada aldilà delle mie modeste conoscenze tecniche :-)

    RispondiElimina
  27. ciao Parsifal, è possibile far aprire i link in un'altra pagina? cioè target='_blank'

    RispondiElimina
  28. @soccerbetter
    Non ci avevo mai pensato. Così a prima vista mi sembra difficile perché non si tratta di collegamenti, che potrebbero essere configurati con target"_blank", ma di feed. Se mi viene qualche idee la condividerò come sempre del resto. Grazie comunque dell'interesse.

    RispondiElimina
  29. la soluzione deve essere in queste righe:

    if (entry.link[k].rel == 'alternate') {
    posturl = entry.link[k].href;
    break;
    }

    RispondiElimina
  30. Salve! So che questo non è il posto giusto ma non saprei dove scriverlo...da ieri è comparso un problema sul mio blog: quando vado su Designer modelli mi compare (non so come si chiama) il gadget dei post 2 volte e di conseguenza se apro il blog, scorrendo, i post si ripetono 2 volte...non so se si è ben capito il problema. Ho cercato di trovare una risposta sul web ma non ho trovato nulla. Lei sa per caso cosa potrebbe essere e come fare per eliminare il "doppione"?

    RispondiElimina
  31. @lovemakeup24
    Non so se ho ben compreso quello che è successo ma ho visto che aprendo un post del tuo blog se ne vedono due uno dopo l'altro. Potresti procedere in questo modo anche se è una cosa delicata e devi stare attenta
    1)Vai su Design > Modifica HTML e salvi il modello completo nel caso di casini per un eventuale backup
    2)Vai su Design > Elementi pagina. SE ho ben capito ci sono due aree con "Post sul blog". SE è così clicchi su Modifica quindi su Rimuovi a quella che sta sotto. Quindi clicchi su Salva in alto a destra.
    NB. Non so se ho capito bene il problema :)

    RispondiElimina
  32. Grazie per la risposta...il problema è esattamente questo...avevo già provato a rimuovere la seconda area solo che anche se clicco su "modifica" non compare la scritta "Rimuovi"...per questo non so cosa fare nè come risolvere il problema...

    RispondiElimina
  33. @lovemakeup24
    Forse ti conviene postare il problema sul servizio di assistenza di Blogger. Senza poter accedere al sito si può fare ben poco. il link è questo
    http://www.google.com/support/forum/p/blogger?hl=it

    RispondiElimina
  34. scusa come posso mettere anche io una v verde o una qualsiasi immagine d'avanti a ogni post, come ai fatto tu.

    RispondiElimina
    Risposte
    1. @Manager
      Non si può spiegare in un commento, magari ci faccio un post più in là.

      Elimina
  35. Ciao Parsifal! Spero che tu possa aiutarmi: in alcuni blog amici non si aggiorna il blog roll quando io pubblico un post anzi e' fermo a ben 3 anni fa!!! Cosa posso fare? Grazieeeeeee

    RispondiElimina
    Risposte
    1. @ Cannelle
      In alcuni o su tutti? Se il problema è limitato ad alcuni allora dipende da loro. Il widget dei Lettori o Google Friend Connect è stato ritirato e questo ha portato dei problemi anche nei blogroll. Se invece succede con tutti i blog allora può essere che tu abbia i feed troppo lunghi
      http://www.ideepercomputeredinternet.com/2012/11/feedburner-blogger-elenco-lettura.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 al post.