Hacer una Nube de Etiquetas en un Blog

  • mayo 27, 2010




Una nube de etiquetas es una representaci??n visual de las ???etiquetas??? o palabras clave usadas en un sitio web. Generalmente este listado de palabras se ordena alfab??ticamente y con diferente tama??o seg??n su relevancia.

Para empezar a poner nuestra nube de etiquetas en el blog tenemos que etiquetar todos nuestros post.

1. Ir a dise??o de la plantilla, luego a Edici??n de HTML y clic en Expandir plantillas de artilugios y tendr??s que pegar entre <b:skin><![CDATA[ y ]]></b:skin>. Preferible que lo pegues casi al final (antes de ]]></b:skin>).

/* 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. Despu??s agregar el siguiente c??digo entre ]]></b:skin> y </head>. Preferible que lo pegues casi al final (antes de </head>).
<script type=’text/javascript’>
// Label Cloud User Variables
var lcBlogURL = ‘http://ayudaparaelblog.blogspot.com’;
var maxFontSize = 20;
var maxColor = [0,0,255];
var minFontSize = 10;
var minColor = [0,0,0];
var lcShowCount = false;
</script>
3. Buscar el widget con el id Label1 y con el title Etiquetas. Esto lo encuentras donde dice:
<div id=’sidebar-wrapper’>
<b:section class=’sidebar’ id=’sidebar’ preferred=’yes’>
<b:widget id=’Label1′ locked=’false’ title=’Etiquetas’ type=’Label’>
<b:includable id=’main’>
<b:if cond=’data:title’>
<h2><data:title><h2>
<b:if>
<div class=’widget-content’>
<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’><?xml:namespace prefix = data /></data:label.name></a>
</b:if>
(<data:label.count/>)
</li>
</b:loop>
</ul>

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

4. Una vez ubicado, tienes que reemplazar todo el c??digo anterior por lo siguiente:
<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’>

// Do not change anything past this point —————–
function s(a,b,i,x){
if(a>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 ta=0
var c=[];
var labelCount = new Array(); 
var ts = new Object;
<b:loop values=’data:labels’ var=’label’>
var theName = «<data:label.name/>»;
ts[theName] = <data:label.count/>;
</b:loop>

for (t in ts){
if (!labelCount[ts[t]]){
labelCount[ts[t]] = new Array(ts[t])
}
}
tz = labelCount.length-1;
lc2 = document.getElementById(‘labelCloud’);
ul = document.createElement(‘ul’);
ul.className = ‘label-cloud’;
for(var t in ts){
for (var i=0;3 > 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 = lcBlogURL+’/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>

Explicaci??n del paso N?? 2
 En lcBlogURL, se debe poner la direcci??n de tu blog.

 En maxFontSize, podemos modificar el tama??o de la fuente mostrada.

 En maxColor = [0,0,255], podemos modificar el color de la fuente mostrada.
Por ejemplo:
[255,0,0] = Rojo claro
[0,255,0] = Verde claro
 
[128,0,0] = Rojo oscuro
[0,128,0]= Verde oscuro
[0,0,128] = Azul oscuro
Mas combinaciones de colores en
 HYPE’s Color Specifier.

 En minFontSize, podemos modificar el tama??o de la fuente mostrada.

 En minColor = [0,0,0], podemos modificar el color de la fuente mostrada.

 En lcShowCount (true o false) .- Si es true se mostrar?? una nube de etiquetas con el n??mero de entradas que existen. Mientras que en false simplemente se vera una nube de etiquetas sin su respectivo n??mero.

Nota: 
– Para que te resulte este truco debes tener como m??ximo m??s de 2 entradas en caso contrario no se mostrar??.

No Comments Found

Deja un comentario