terça-feira, 22 de maio de 2007

Nuvens no Blogger


Olá leitores do Toca do Elfo,

Hoje eu vou ensinar como fazer uma núvem de labels.

O que é uma Nuvem de Labels ?? Para aqueles que nunca viram o Digg, uma nuvem de labels nada mais é do que uma lista de tags onde, quanto mais referências a uma tag você tem, maior e com cores mais fortes ele se identifica. No Digg você pode encontrar no endereço http://digg.com/news/upcoming/cloud/most

Vamos ao tutorial ;)

Primeiro Passo:

Adicione as tags aos seus posts. Se você tiver um blog muito grande isso pode levar tempo.

Labels/Tags, são categorias dos seus posts. Então acredito que você deva ter uma margem de no máximo 14 categorias ou a núvem ficará muito grande.

Certifique-se de já ter convertido do Blogger para o Blogger Beta, onde basta você ir em Templates e fazer o upgrade. Não se preocupe, a outra versão ficará salva no próprio Blogger.

Segundo Passo:

Uma vez, adicionado aos posts, vá ao edit Html do blogger beta e ache o final da folha de estilos. O finalzinho do CSS .

Você deve achar um comando assim:
]]></b:skin>


Adicione ACIMA dele a seguinte configuração do CSS:
/* 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
}



Terceiro Passo:

Abaixo do código:
]]></b:skin>


E antes do código:
</head>


Você adiciona esse código:
<script type='text/javascript'>
// Label Cloud User Variables
var lcBlogURL = 'http://YOURBLOG.blogspot.com';
var maxFontSize = 20;
var maxColor = [0,0,255];
var minFontSize = 10;
var minColor = [0,0,0];
var lcShowCount = false;
</script>


Quarto Passo:

Certifique-se que o comando Expand Widget Templates, na tela de edição do template, canto superior direito, esteja DESMARCADA.

Pois se ela estiver marcada o código
<b:widget id='Label1' locked='false' title='Labels' type='Label'/>

vai se expandir, então você vai ter que adicionar o próximo código do ínicio ao fim, ou seja, até a tag
</b:widget>

estar finalizada.

Portanto é mais fácil deixar a Expand Widget Templates desmarcada e procurar pelo comando:
<b:widget id='Label1' locked='false' title='Labels' type='Label'/>


e substituí-lo completamente por:
<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'>

// Não mude nada a partir desse ponto -----------------
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>


Quinto Passo:

Clique em preview para ver o resultado.

Se der algum problema clique em desfazer as alterações (Clean Edits) e refaça os passos.

Mas com certeza vai dar certinho e aí você já vai poder contar com uma núvem de tags no seu blogspot.

Muito bonito e útil pois sinaliza aos mecanismos de busca a suas palavras chaves mais importantes. (é uma dica de otimização também)

Veja o resultado:
Você pode fazer os ajustes na folha de estilos pra configurar a sua cor preferida, o tamanho máximo das palavras. É só atentar para o fato das cores estarem em padrão RGB.

Namarië