Creare menù a discesa per etichette post

E per la serie come personalizzare il blog, ho modificato il widget delle etichette per far sì che creasse un semplice menù a discesa riepilogativo, evitando che la sidebar assumesse dimensioni proibitive!

Questo è il codice:
<b:widget id='Label1' locked='false' title='Etichette' type='Label'>
<b:includable id='main'>
<b:if cond='data:title'>
<h2><data:title/></h2>
</b:if>
<div class='widget-content'>
<select class='sidebar_select' name='select_etichette' onChange='document.location.replace(this.value);'>
<b:if cond='data:blog.url == "http://tommity.blogspot.com"'>
<option selected='selected' value='http://tommity.blogspot.com'>Tutto</option>
<b:else/>
<option value='http://tommity.blogspot.com'>Tutto</option>
</b:if>
<b:loop values='data:labels' var='label'>
<b:if cond='data:blog.url == data:label.url'>
<option expr:value='data:label.url' selected='selected'><data:label.name/> (<data:label.count/>)</option>
<b:else/>
<option expr:value='data:label.url'><data:label.name/> (<data:label.count/>)</option>
</b:if>
</b:loop>
</select>

<b:include name='quickedit'/>
</div>
</b:includable>
</b:widget>


Sfruttando i tag <b:if> e <b:loop> costruisco un menu a tendina, usando il tag html <select>.
La sintassi del tag <select> è molto semplice, gli attributi degni di nota sono: class che permette di applicare uno stile css e onChange che permette di eseguire un comando ogni volta che viene selezionata una voce diversa dal menù a discesa. Il comando che viene eseguito è scritto in javascript ed è: document.location.replace(this.value), questo permette di reindirizzare il browser verso il link riportato nell'attributo value dei tag <option>.

I due <b:if> permettono di evidenziare la voce selezionata dopo che è stata ricaricata la pagina, grazie all'aggiunta dell'attributo selected="selected" nel tag <option>.

Il <b:loop> esegue un ciclo sulle etichette utilizzate nel blog, permette di elencarle e quindi di compilare il menù a tendina.

La guida ufficiale per i comandi widget la trovate qui, mentre l'elenco delle variabili che si possono utilizzare all'interno dei widget lo trovate qui.

Tornando all'attributo class del tag <select> per poter personalizzare l'aspetto del menù, si deve aggiungere all'interno dei tag <style> una classe ad hoc, tipo questa:
.sidebar_select{
background-color: #EEEEEE;
color: #6699CC;
font: 11px Verdana;
}


Questo è quanto, il risultato è visibile qui accanto! ——>
Spero possa esservi utile,
ciao!
Andrea

7 commenti:

Anonimo ha detto...

Ciao, scusa nn è che sai -o chiunque lo sapesse-come fare a modificate il title in corrispondenza delle etichette? io ci cono riuscito per i post. Nel caso me lo mandi a francesco1979@tim.it?

Andrea ha detto...

Perdonami, ma sinceramente non riesco a capire che cosa tu voglia fare... Che cosa intendi con 'title'?? Ho provato a guardare anche sul tuo blog, ma proprio non riesco a capire... :( Sorry... Spiegami meglio! Grazie!
Andrea

Fotografia Profesional ha detto...

Ciao! sono riuscito a mettere il menu sul blog che sto costruendo e funziona bene tutto ok!
http://fotografiaprofesional2008.blogspot.com/

Se guardi nel mio blog, ora vorrei riuscire a mettere l'archivio blog e il menu delle etichette sulla stessa riga!! pensi sia possibile?
la casella per fare il search ci son riuscito, ho intivato per puro caso il punto esatto dove inserire il codice, pero adesso mi è difficile mettere sulla stessa riga anche le etichette! ti prego di darmi una mano!
Grazie
Andrea

Fotografia Profesional ha detto...

Ciao, ancora una domanda: per inserire il codice del menu ho dovuto cambiare l'indirizzo del tuo blog con quello del mio blog! c'è forse una maniera per rendere il tuo codice generico, così se per caso devo fare un altro blog non ci sarebbe ogni volta il problema di cambiare l'indirizzo del blog!?
Grazie

Andrea ha detto...

Dovresti inviarmi il codice "sorgente" della tua pagina, almeno la parte che riguarda il Blog Archive e le Etichette.

La soluzione comunque è modificare i tag div che contengono questi elementi, aggiungendo la proprietà float.

Per quel che riguarda l'indirizzo del blog dovrebbe essere possibile sostituendolo con: <data:homepageUrl>
ma sinceramente non ho provato!

Fammi sapere! ;)
Ciao,
Andrea

Fotografia Profesional ha detto...

Si vabene! ti posso inviare il file del template! perchè io da solo non ce la farei mai!
Hai una email alla quale inviare?
Ciao!

Fotografia Profesional ha detto...
Questo commento è stato eliminato da un amministratore del blog.