Pubblicato il 05/01/10 - aggiornato il  | 39 commenti :

Widget degli Ultimi Articoli di una etichetta per Blogger

Ultimi Articoli per Etichetta con miniature per Blogger.
Questo articolo è la naturale continuazione di quello precedente che illustrava l'installazione de




Nei commenti mi hanno chiesto se fosse possibile creare un widget che mostrasse solo gli ultimi post relativi a una determinata etichetta. Il trucco usato per poterlo fare è quello di mettere nel codice del precedente articolo i feed relativi all'etichetta che ci interessa invece che mettere quelli del blog. Il codice da personalizzare è il seguente

<script type="text/javascript">
imgr = new Array();
imgr[0] = "http://tinyurl.com/oj827g";
imgr[1] = "http://tinyurl.com/qzptmk";
imgr[2] = "http://tinyurl.com/ok629f";
imgr[3] = "http://tinyurl.com/omglru";
imgr[4] = "http://tinyurl.com/q4wtpo";
showRandomImg = false;
tablewidth = 280;
cellspacing = 1;
borderColor = "#ffffff";
bgTD = "#ffffff";
imgwidth = 120;
imgheight = 120;
fntsize = 12;
acolor = "#191919";
aBold = true;
icon = " • ";
text = "Commenti";
showPostDate = false;
summaryPost = 70;
summaryFontsize = 10;
summaryColor = "#242424";
icon2 = " → ";
numposts = 5;
rc_feedLink = "https://www.ideepercomputeredinternet.com/feeds/posts/default/-/blogger";
</script>
<script type='text/javascript'>
//<![CDATA[
//Recent Post Widget with thumbnail images
// code by (C) Anhvo 
// Tradotto in italiano da Ernesto Tirinnanzi di https://www.ideepercomputeredinternet.com per IpCeI
function removeHtmlTag(strx,chop){
var s = strx.split("<");
for(var i=0;i<s.length;i++){
if(s[i].indexOf(">")!=-1){
s[i] = s[i].substring(s[i].indexOf(">")+1,s[i].length);
}
}
s =  s.join("");
s = s.substring(0,chop-1);
return s;
}
function showrecentposts(json) {
document.write('<table width="'+tablewidth+'" border=0 bordercolor="#FF0000" cellspacing="'+cellspacing+'" bgcolor="'+borderColor+'" align="center">');
j = (showRandomImg) ? Math.floor((imgr.length+1)*Math.random()) : 0;
img  = new Array();
  for (var i = 0; i < numposts; i++) {
    var entry = json.feed.entry[i];
    var posttitle = entry.title.$t;
var pcm;
    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;
      }
    }
for (var k = 0; k < entry.link.length; k++) {
      if (entry.link[k].rel == 'replies' && entry.link[k].type == 'text/html') {
        pcm = entry.link[k].title.split(" ")[0];
        break;
      }
    }
    if ("content" in entry) {
      var postcontent = entry.content.$t;}
    else
    if ("summary" in entry) {
      var postcontent = entry.summary.$t;}
    else var postcontent = "";
    postdate = entry.published.$t;
if(j>imgr.length-1) j=0;
img[i] = imgr[j];
s = postcontent ; a = s.indexOf("<img"); b = s.indexOf("src=\"",a); c = s.indexOf("\"",b+5); d = s.substr(b+5,c-b-5);
if((a!=-1)&&(b!=-1)&&(c!=-1)&&(d!="")) img[i] = d;
cmtext = (text != 'no') ? '<i><font color="'+acolor+'">('+pcm+' '+text+')</font></i>' : '';
var month = [1,2,3,4,5,6,7,8,9,10,11,12];
var month2 = ["Gen","Feb","Mar","Apr","Mag","Giu","Lug","Ago","Set","Ott","Nov","Dic"];
var day = postdate.split("-")[2].substring(0,2);
var m = postdate.split("-")[1];
var y = postdate.split("-")[0];
for(var u2=0;u2<month.length;u2++){
if(parseInt(m)==month[u2]) {
m = month2[u2] ; break;
}
}
var daystr = (showPostDate) ? '<i><font color="'+acolor+'"> - ('+day+ ' ' + m + ' ' + y + ')</font></i>' : "";
posttitle = (aBold) ? "<b>"+posttitle+"</b>" : posttitle;
var trtd = '<tr><td valign="middle" width="'+imgwidth+'" height="'+imgheight+'" style="background:'+bgTD+'"><a href="'+posturl+'"><img src="'+img[i]+'" width="'+imgwidth+'" height="'+imgheight+'"/></a></td><td style="background:'+bgTD+'" valign="middle">'+icon+'<a href="'+posturl+'" style="color:'+acolor+'; font-size:'+fntsize+'px;">'+posttitle+'</a> '+cmtext+ ' ' + daystr + '<div style="color:'+summaryColor+'; margin-top:2px; border-top:1px '+borderColor+' solid; font-size:'+summaryFontsize+'px;">'+icon2+removeHtmlTag(postcontent,summaryPost)+'...</div></td></tr>';
if(summaryPost == 0) { trtd = '<tr><td valign="middle" width="'+imgwidth+'" height="'+imgheight+'" style="background:'+bgTD+'"><a href="'+posturl+'"><img src="'+img[i]+'" width="'+imgwidth+'" height="'+imgheight+'"/></a></td><td style="background:'+bgTD+'" valign="middle">'+icon+'<a href="'+posturl+'" style="color:'+acolor+'; font-size:'+fntsize+'px;">'+posttitle+'</a> '+cmtext+ ' ' + daystr + '</td></tr>'; }
document.write(trtd);
j++;
}
document.write('</table>');
}
znak = (rc_feedLink.match("start-index")) ? "&" : "?";
document.write("<script src=\""+rc_feedLink+znak+"max-results="+numposts+"&orderby=published&alt=json-in-script&callback=showrecentposts\"><\/script>");
document.write('<a href="https://www.ideepercomputeredinternet.com/2010/01/il-widget-degli-articoli-recenti-con.html" style="font-size: 7px; text-decoration:none; color: #dddddd;">Installa il Widget</a>');
//]]>
</script>


Per le personalizzazioni del codice vi rimando all'articolo precedente. Voglio solo appuntare l'attenzione sul feed evidenziato di rosso. In Blogger i feed relativi a una singola etichetta hanno infatti il seguente URL


http://nome-blog.blogspot.com/feeds/posts/default/-/nome-etichetta

dove al posto di nome-blog e nome-etichetta vengono inseriti quelli del nostro blog e dell'etichetta di cui vogliamo inserire il widget. Nel mio blog di demo ho inserito il widget degli ultimi articoli relativi all'etichetta "blogger". Vedi
AGGIORNAMENTO: Il codice che prima era stato caricato esternamente adesso è stato inserito in modo nativo e non c'è bisogno di caricare nessun file javascript presente in altro servizio


39 commenti :

  1. A me interesserebbe visualizzare il titolo di tutti i post di una singola etichetta in un altro post. Mi servirebbe per fare un indice in un blog dedicato ai cinema. Si può fare? Ho utilizzato quel widget consigliato da te in passato. Al post del feed del blog ho inserito quello relativo all'etichetta(http://nome-blog.blogspot.com/feeds/posts/default/-/nome-etichetta). Purtroppo non funziona.

    RispondiElimina
  2. @Maxso
    Non so a che widget ti riferisci. Ne ho proposti talmente tanti... Postami il link per fammi capire quale.
    Comunque prova a utilizzare il widget di questo post inserendo il codice in modalità HTML in un articolo. Funziona sicuramente e dovrebbe andare nel mezzo della pagina.
    In questo caso ti conviene ingrandire di parecchio la larghezza del widget, delle immagini e il numero dei caratteri del sommario.
    Magari ci faccio un post.
    Ciao

    RispondiElimina
  3. Ciao Parsifal...rieccomi...
    Come posso fare ad eliminare il numero dei commenti tra parentesi? Vorrei non visualizzare quella informazione ma solo l'immagine e il miniriassunto ...
    Grazzzzzziiiiiieeeee!!!1
    P.S.
    Indovina...di nuovo a combattere con il terzo tentativo di cambio template... ^_^

    RispondiElimina
  4. @astasia
    Puoi eliminare la scritta Commenti non mettendo niente accanto a text ma le parentesi e il numero rimangono. Bisognerebbe modificare lo script. Se ho tempo e voglia, senza impegno però...
    Ciao

    RispondiElimina
  5. Ciao Parsifal, io invece mi chiedevo se anche questo si poteva fare in orizzontale, per logica di layout del mio blog.

    Credi sia possibile?

    Se mi indichi come vado a cambiarmi io lo script.

    Ciao Gabriele

    RispondiElimina
  6. @G. Gualco
    In questo momento non mi viene in mente nessun widget con miniature che abbia anche il feed e che sia in orizzontale.
    Se mi capita ci faccio un post.
    Ciao

    RispondiElimina
  7. Ciao te l'ho postato da un altra parte: la modifica al tuo javascript

    https://sites.google.com/site/gualco12/postrecentilabels.js

    stessa cosa ma vengono orizzontali come nel tuo widget ultimi post miniature orizzontali.

    Solo che da questo indirizzo non funziona su firefox e file eden non accetta il JavaScript. Almeno la versione gratuita :(

    A presto. Gabriele

    RispondiElimina
  8. G. Gualco
    E' vero non funziona su Firefox mentre non ci sono problemi con IE e Chrome.
    Le miniature sono poi un po' troppo attaccate. Bisognerebbe modificare il cellspacing

    RispondiElimina
  9. Io l'ho fatto nella mia home page che col tuo permesso ricito, anche perchè magari qualcuno può forse trovare il perchè non funziona: Gabriele gualco in Viaggio

    Sono riuscito a fare una colonna con il cellspacing più piccolo e fondo trasparente, cinque o sei etichette..

    Cmq è da un pò che firefox non accetta css esterni o altri file quasi a caso, poi li hosti diversamente e li prende, mistero.

    Oltretutto quando si va nella console degli errori java si vede come non riesca a decodificare alcuni file, cioè si vedono in caratteri indecifrabili.

    Se dovessi mai risolvere in bene la cosa fammi sapere come! Grazie, Gabriele

    RispondiElimina
  10. Ho notato un comportamento particolare di questo script... volevo creare delle pagine in cui avere un indice, una pagina per ogni etichetta.
    Lo script funziona, ma solo se non si imposta un numposts superiore al numero di post collegati ad un'etichetta. Ad esempio se ho 5 post etichettati come "Antipasti" ed io imposto un numposts a 6, lo script funziona ma sminchia tutto il layout del blog e va a posizionarsi nella colonna centrale ma sotto ai commenti insieme a tutti i widget, pure quelli posizionati nelle sidebar.

    Volendo appunto utilizzarlo per creare delle pagine di indice, dovrei di volta in volta andare a modificare il numpost per essere sicura che tutto funzioni... non c'è modo per superare questo problema? Forse chiedo troppo, ma chiedere non costa nulla, no? :))
    Grazie :)

    RispondiElimina
  11. @azabel
    Il problema di tutte le personalizzazioni è che funzionano con i modelli base di Blogger.
    Nel momento in cui si utilizzano dei modelli personalizzati possono nascere delle incompatibilità. Probabilmente è il tuo caso

    RispondiElimina
  12. Ciao, posto qui per "correlazione" degli argomenti. Un poco di tempo fa ti avevo chiesto se avevi idea di un widget in grado di mostrare in automatico gli slideshow dei post in blogger...Alla fine l'ho trovato ed è diventato un post che puoi trovare Qui. Lo script purtroppo non è opera mia (non ne sarei capace...) quindi mi chiedevo se vedendolo hai qualche idea su come modificarlo per mostrare solo lo slide dei post di 1 etichetta specifica. Detto questo ti ringrazio e mi scuso per il link al mio blog.

    RispondiElimina
  13. @takycardia
    da uno sguardo superficiale del codice mi sembra che non ci sia il feed ma solo la homepage. In questo caso credo che sia difficile trovare una soluzione. Bisognerebbe modificare lo script e mi sa che è un lavoraccio.
    Comunque prometto che se ho tempo gli darò uno sguardo, senza impegno.
    Ciao

    RispondiElimina
  14. Ciao Parfisal ritorno da te dopo qualche tempo :)

    perchè per il mio blog non funziona?

    non lo linko per non spammare ma è facimente raggiungibile dal mio profilo

    ps : se invece lo utilizzo per il blog di prova funziona bene

    RispondiElimina
  15. @tanzillo massimo
    Ho aperto i tuoi due blog con Chrome e non ho riscontrato problemi di sorta

    RispondiElimina
  16. in che senso non hai riscontrato problemi?

    praticamente ora ho caricato lo stesso modello in entrambi i blog..con gli stessi gadget...e in quello di prova funziona e nell'altro no! come lo spieghi?

    RispondiElimina
  17. @tanzillo massimo
    Ho provato anche con IE e a me si aprono tutti e due i blog con tutti i widget

    RispondiElimina
  18. si ma su "generazione di talenti" ora non ho inserito questo widget...proprio perchè nonme lo visualizza...nonostante abbia tutti i gadget e lo stesso modello di quello di prova dove invece viene visualizzato senza problemi!

    che spiegazione può esserci?

    aspettavo da tanto uno script simile...

    RispondiElimina
  19. potrebbero esserci conflitti con il codice? ma come mai visto che uso lo stesso modello?????

    pease aiutami..

    RispondiElimina
  20. @Tanzillo Massimo
    Mi scuserai ma non sono riuscito a vedere il widget presentato in questo articolo in nessuno dei tuoi blog.
    Forse ti riferisci ad un altro widget...
    Comunque in uno dei modelli ci sono due menù di cui uno con un javascript. Quindi non sono lo stesso modello e ci potrebbero essere delle incompatibilità, anche se non ho capito a quale widget ti riferisci.
    Ciao

    RispondiElimina
  21. mi riferisco a questo widget di questo articolo..se vedi bene nel blog di prova è presente nella colonna di destra mentre nell'altro no perchè quando lo inserisco non è visibile.

    Inoltre il menà a cui ti riferisci (quello orizzontale?) è presente in entrambi i modelli e anche tutti gli altri gadget!

    Secondo te cosa debbo fare allora ora?

    RispondiElimina
  22. @tanzillo massimo
    Mi spiace ma il blog di prova probabilmente lo vedi solo tu nella tua Bacheca ma non viene mostrato agli altri. Sono visibili solo i blog
    http://www.generazioneditalenti.com/ e
    http://www.generazioneditalenti.com/
    Comunque ovviamente non ho motivo di ritenere che tu dica una cosa non vera. Questo fatto è indubbiamente strano che deriva forse da un'installazione successiva.
    Ti faccio un esempio. Il widget del calendario con l'archivio continua a funzionare su tutti i blog in cui l'ho installato. In questo lo avevo tolto e adesso se tento di rimetterlo non funziona.
    Blogger sta cambiando molte impostazioni e spesso, se si toglie qualcosa, non è più possibile rimetterla. Altre volte accade che un gadget possa essere inserito fino a una certa data e dopo sia impossibile installarlo.
    In altre parole credo che se non hai fatto degli errori, ma mi pare improbabile visto che probabilmente ha ripetuto più volte l'installazione, ti trovi in una di queste situazioni che non sono risolvibili, almeno io non saprei come fare.
    Ciao

    RispondiElimina
  23. Beh penso sia la spiegazione più plausibile e ti ringrazio..

    cmq ecco il blog di prova così magari riesci a notare qualcosa che a me sfugge http://younapoli.blogspot.com/

    Infine non potremmo provare altri gadget più o meno simili (la cosa importante è che siano per categoria) che però usano altri script? o provare ad installare lo script sul mio modello?

    RispondiElimina
  24. @tanzillo massimo
    Puoi provare questo
    http://www.ideepercomputeredinternet.com/2010/01/come-inserire-il-widget-degli-ultimi_07.html
    oppure quest'altro
    http://www.ideepercomputeredinternet.com/2010/01/come-inserire-nel-blog-il-widget-degli.html
    Altri non ne conosco, ciao

    RispondiElimina
  25. ti ringrazio vivamente ma senza miniatura non vale la pena..

    ti chiedo un ultimo favore dopodichè getto la spugna..

    ho notato che oggi improvvisamente dopo l'inserimento ha funzionato ma poi qualsiasi parametro toccavo (n. post, feed del mio blog ) non funzionava più e da quel momento anche se lo reinserivo come fatto originariamente senza modifiche non funzionava più...

    non so darmi spiegazioni ma potresti prepararmi tu un codice dello script per il mio blog per una categoria a caso (ad esempio "Profilo") con 1 solo ultimo pos visualizzato? in modo che io riprovo ogn tanto ad inserirlo già pronto se dovesse funzionare..senza che poi debbo toccarlo

    ti ringrazio ancora per tutto

    RispondiElimina
  26. @tanzillo massimo
    guarda che se fa così non vale la pena. Il widget dei top commentatori aveva un comportamento simile, qualche volta si vedeva, qualche altra volta no. Alla fine ho dovuto toglierlo

    RispondiElimina
  27. vabbè aspetterò qualche altro tuo widget simile più stabile..sperando che lo posti presto... ;)

    grazie

    RispondiElimina
  28. @tanzillo massimo
    Comunque il widget presente in questo post
    http://www.ideepercomputeredinternet.com/2010/01/come-inserire-nel-blog-il-widget-degli.html
    è relativo agli ultimi articoli per etichette anche con le miniature come puoi vedere la demo sulla destra di quest'altro post
    http://demo-parsifal32.blogspot.com/2010/01/widget-degli-ultimi-articoli-per.html

    RispondiElimina
  29. @parsifal32

    Si può impostare il numero di posts visibili all'interno di una singola etichetta? Di default è impostato a 20, un pò troppe...vorrei impostarle almeno a 10 come nei posts in homepage...

    RispondiElimina
  30. @Calcio Napoli 365
    Dal punto di vista di un link si può fare. Esempio
    http://www.ideepercomputeredinternet.com/search/label/caratteri?max-results=10
    sono i primi dieci post con etichetta "caratteri". Come impostazione di default fanno delle pagine di 20 elementi e non mi ricordo di aver trovato una opzione per modificare questo valore.

    RispondiElimina
  31. @Ernesto T.

    Grazie, personalizzerò il link in mancanza di una relativa opzione ;)

    RispondiElimina
  32. grazie sono riuscita ad inserire anche questo!

    RispondiElimina
  33. Ciao, come mai da un tratto questo widget non funziona più?

    RispondiElimina
    Risposte
    1. In questo post su Facebook c'è la spiegazione
      https://www.facebook.com/ideepercomputeredinternet/posts/10164142540835514
      Ho aggiornato il codice che adesso dovrebbe funzionare. Clicca sul link di Demo per controllare
      @#

      Elimina
  34. Purtroppo non funziona ho provato a cambiare l'URL colorato di celeste e non funziona. ho cliccato sul link di Demo per controllare ma non funziona. Perfavore, e utile per il mio blog di informazione

    RispondiElimina
    Risposte
    1. Ho capito qual è il problema. Torna domani e dovrebbe esserci una versione funzionante
      @#

      Elimina
    2. Il nuovo codice è pronto. E' molto più lungo di prima perché ho dovuto fare a meno del file caricato su Google Sites che adesso ho incollato nativamente
      @#

      Elimina
    3. Grazie, ma purtroppo appena inserisco il mio nome del blog non funzioan. Ho provato cosi con il tuo nome funziona. qual è il problema? dove sbaglio?

      Elimina
    4. Ok problema risolto, ti ringrazio, sei sembre gentie e complimenti per quello che fai. Grazie buona serata

      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