Nube de etiquetas

Recuerda
que aunque yo pruebe los "trucos"
Antes de hacer ningún cambio
GUARDA SIEMPRE TU PLANTILLA
Nunca es seguro
que todo salga bien...
Además de alguna página online desde donde podemos añadir una nube de etiquetas a nuestro blog, podemos configurar una nosotros mismos, para colocar en la sidebar o debajo de la cabecera como menú, que es como yo uso la nube en El Escaparate.

Los pasos a seguir son tres: un código para añadir al CSS, otro para configurarlas y, el último código para añadir al widget donde aparecerá nuestra nube.

Antes de empezar tenemos que añadir en la sección elementos de la plantilla, un nuevo elemento "etiquetas" y, por supuesto, hemos de tener etiquetados nuestros post. Si estamos usando ya un elemento de etiquetas, por ejemplo, para nuestro menú de pestañas, no importa, puede añadirse otro nuevo para usar con la nube.

[1] Vamos a nuestra plantilla - html y no expandimos la plantilla de artilugios. Localizamos esto: ]]></b:skin> y justo antes, o lo que es lo mismo, al final del CSS, colocamos este código que definirá el estilo de nuestra nube:
/* Label Cloud Styles
----------------------------------------------- */
#labelCloud {text-align:center;font-family:arial,sans-serif;}
#labelCloud .label-cloud li{display:inline;background-image:none !important;padding:0 5px;margin:0;vertical-align:baseline !important;border:0 !important;}
#labelCloud ul{list-style-type:none;margin:0 auto;padding:0;}
#labelCloud a img{border:0;display:inline;margin:0 0 0 3px;padding:0}
#labelCloud a{text-decoration:none}
#labelCloud a:hover{text-decoration:underline}
#labelCloud li a{}
#labelCloud .label-cloud {}
#labelCloud .label-count {padding-left:0.2em;font-size:9px;color:#000}
#labelCloud .label-cloud li:before{content:"" !important}

[2] Volvemos al mismo sitio de antes: ]]></b:skin> solo que ahora hemos de colocar el código después de esto, es decir, antes de </head>:
<script type='text/javascript'>
// Label Cloud User Variables
var lcBlogURL = 'http://YOURBLOG.blogspot.com';
var cloudMin = 1;
var maxFontSize = 20;
var maxColor = [0,0,255];
var minFontSize = 10;
var minColor = [0,0,0];
var lcShowCount = false;
</script>

Cambiamos YOURBLOG por el nombre de nuestro blog.

[3] Buscamos en la plantilla esta línea de código, tendremos en cuenta que si hemos añadido un nuevo elemento de etiquetas, el elemento se verá como label2 :
<b:widget id='Label1' locked='false' title='Labels' type='Label'/>

Hemos de reemplazar esa línea por todo este código:
<b:widget id='Label1' locked='false' title='Label Cloud' type='Label'>
<b:includable id='main'>
<b:if cond='data:title'>
<h2><data:title/></h2>
</b:if>
<div class='widget-content'>
<div id='labelCloud'/>
<script type='text/javascript'>

// Don't change anything past this point -----------------
// Cloud function s() ripped from del.icio.us
function s(a,b,i,x){
if(a&gt;b){
var m=(a-b)/Math.log(x),v=a-Math.floor(Math.log(i)*m)
}
else{
var m=(b-a)/Math.log(x),v=Math.floor(Math.log(i)*m+a)

}
return v
}

var c=[];
var labelCount = new Array();
var ts = new Object;
<b:loop values='data:labels' var='label'>
var theName = &quot;<data:label.name/>&quot;;
ts[theName] = <data:label.count/>;
</b:loop>

for (t in ts){
if (!labelCount[ts[t]]){
labelCount[ts[t]] = new Array(ts[t])
}
}
var ta=cloudMin-1;
tz = labelCount.length - cloudMin;
lc2 = document.getElementById('labelCloud');
ul = document.createElement('ul');
ul.className = 'label-cloud';
for(var t in ts){
if(ts[t] &lt; cloudMin){
continue;
}
for (var i=0;3 &gt; i;i++) {
c[i]=s(minColor[i],maxColor[i],ts[t]-ta,tz)
}
var fs = s(minFontSize,maxFontSize,ts[t]-ta,tz);
li = document.createElement('li');
li.style.fontSize = fs+'px';
li.style.lineHeight = '1';
a = document.createElement('a');
a.title = ts[t]+' Posts in '+t;
a.style.color = 'rgb('+c[0]+','+c[1]+','+c[2]+')';
a.href = '/search/label/'+encodeURIComponent(t);
if (lcShowCount){
span = document.createElement('span');
span.innerHTML = '('+ts[t]+') ';
span.className = 'label-count';
a.appendChild(document.createTextNode(t));
li.appendChild(a);
li.appendChild(span);
}
else {
a.appendChild(document.createTextNode(t));
li.appendChild(a);
}
ul.appendChild(li);
abnk = document.createTextNode(' ');
ul.appendChild(abnk);
}
lc2.appendChild(ul);
</script>
<noscript>
<ul>
<b:loop values='data:labels' var='label'>
<li>
<b:if cond='data:blog.url == data:label.url'>
<data:label.name/>
<b:else/>
<a expr:href='data:label.url'><data:label.name/></a>
</b:if>
(<data:label.count/>)
</li>
</b:loop>
</ul>
</noscript>
<b:include name='quickedit'/>
</div>
</b:includable>
</b:widget>

Nota:
Para que el código funcione correctamente tendremos que cerciorarnos de que al menos, una de las etiquetas, tenga mas de una entrada y no debe aparecer en las etiquetas ninguna comilla ".

Gracias a: Phydeaux3

0 comentarios:

Publicar un comentario