terça-feira, 3 de fevereiro de 2009

Marcadores em formato de nuvem 2

Nível: avançado

Neste tutorial, os marcadores devem aparecer com tamanhos variados, conforme o número de posts. Se quiser marcadores com tamanho de fonte único, visite o primeiro tutorial.

Primeiros passos

  1. Antes de usar este código em seu blog oficial, teste-o em seu blog de testes. Caso não tenha blog de testes, chegou a hora de criar um.
  2. Quando for aplicar este tutorial em seu blog oficial, salve o template atual, e verifique se o widget de Marcadores já está adicionado ao blog.

Em seguida cole os códigos:

1. Código do cabeçalho

Procure a linha de código ]]></b:skin> e substitua por todo o código abaixo:

/* Label Cloud Styles
----------------------------------------------- */
#labelCloud {text-align:center;}
#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:overline underline;}
#labelCloud .label-count {padding-left:0.2em;font-size:9px;color:#000}
#labelCloud .label-cloud li:before{content:"" !important}
]]></b:skin>
<script type='text/javascript'>
// Label Cloud User Variables
var maxFontSize = 20;
var maxColor = [0,0,0];
var minFontSize = 15;
var minColor = [204,204,204];
var lcShowCount = false;
</script>

Personalização:

  • Onde está escrito 20 coloque o tamanho que você deseja para o marcador que tem mais posts.
  • Onde está escrito 15 coloque o tamanho que você deseja para o marcador que tem menos posts.
  • Onde está escrito 0,0,0 coloque o código RGB da cor que você quer para o marcador que tem mais posts.
  • Onde está escrito 153,204,0 coloque o código RGB da cor que você quer para o marcador que tem menos posts. Se tiver dúvidas em relação aos códigos, consulte o cubo ou a tabela de cores.
  • Se ainda tem dúvidas sobre essa customização, deixe como está.

Recomendo que salve essas modificações antes de inserir o próximo código:

2. Código do corpo

Procure pela linha de código:

<b:widget id='Label1' locked='false' title='Marcadores' type='Label'/>

Observe que, onde está escrito Marcadores, deve vir o nome que você deu a seu widget de Labels, caso tenha escolhido outro.

Substitua por todo o código abaixo:

<b:widget id='Label1' locked='false' title='Marcadores' 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'>
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 em '+t;
a.style.color = 'rgb('+c[0]+','+c[1]+','+c[2]+')';
a.href = 'http://htmhelen.blogspot.com/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>

A única substituição necessária é colocar o endereço exato de seu blog onde está escrito http://htmhelen.blogspot.com.

Salve e verifique como ficaram seus marcadores. Veja como ficou no Helen Fernanda Pink e no meu blog de testes:



Update 05/02/2009
A variável lcBlogURL estava apresentando problemas, então o endereço do blog virá direto no widget, sem precisar da variável no script do cabeçalho.

Este tutorial é uma correção versão melhorada do tutorial publicado no blog Usuário Compulsivo.

Pix meutedio arroba mail ponto com

13 comentários:

  1. achei muito interessante essa postagem salvei a pagina e logo que tiver um tempo vou fazer.

    ResponderExcluir
  2. Opaa... Valeu d+ Nanda ; ) [Intimidade Precoce = ON]

    ResponderExcluir
  3. Nossa ficou perfeito!!!Exatamente como eu queria,já tinha feito um tutorial que não ficou tão bom.
    Obrigada!
    Ana Carolina

    ResponderExcluir
  4. @Ana Carolina, eu vi no seu blog. Funcionou legal!

    ResponderExcluir
  5. Realmente a sua versão é corrigida e melhorada do compulsivo, parabéns e obrigado!

    ResponderExcluir
  6. Olá!

    Fiz tudo como vc explicou, mas dá o seguinte erro:

    Não foi possível analisar o seu modelo, pois sua formatação é inadequada. Certifique-se de que todos os elementos XML estão fechados adequadamente.
    Mensagem de erro em XML: The element type "b:section" must be terminated by the matching end-tag "".

    Você pode me ajudar?

    Gostei muito do seu blog!

    ResponderExcluir
  7. Denise,

    Significa que você errou feio! Esse código não tem b:section.

    ResponderExcluir
  8. Helen, realmente sou leiga. Você pode me ajudar? Te juro que tentei fazer exatamente como vc orienta...

    ResponderExcluir
  9. Helen, deu certo!

    A opção expandir modelos de widgets estava marcada antes, por isso dava erro.

    Ficou perfeito!

    ResponderExcluir
  10. Denise,

    Que legal!

    Esses posts do nível avançado exigem bastante atenção. Qualquer detalhe e a gente erra mesmo, fico feliz por não ter desistido no primeiro erro e alcançado seu objetivo. =D

    ResponderExcluir
  11. GRAÇA AO HTMHELEN CONSEGUI CRIAR MINHA NUVEM DE TAG.

    FICOU MUITO BOA, CASO QUEIRA VER ACESSE www.liradutra.blogspot.com

    EU RECOMENDO O POST

    ResponderExcluir
  12. ..fiz, deu certo, super fácil =)
    obrigada

    ResponderExcluir

Todos os comentários são moderados pela autora do blog.