Para gerar uma nuvem de tags usarei uma função chamada geraTags que recebe um array, onde cada posição deste array possui um valor tags:quantidade, e um valor máximo de tamanho de exibição no HTML, ou seja, quantas tags serão mostradas na nuvem.
Código da função geraTags:
<?
function geraTags ($tags,$max) {
$total = 0;
$maior = 0;
$retorno="";
for ($i=0;$tags[$i];$i++) {
$exp = explode(":",$tags[$i]);
$tag[$i] = $exp[0];
$qnt[$i] = $exp[1];
$total = $total+$qnt[$i];
if ($qnt[$i] > $maior) $maior = $qnt[$i];
}
for ($i=0;$tag[$i];$i++) {
$size = round($max*$qnt[$i]/$maior);
$menor = $max/3;
if ($size<$menor) $size=$menor;
$retorno.= "<span style='font-size:$size"."px'>$tag[$i]</span> ";
}
return $retorno;
}
?>
Agora devemos preencher o array com os valores correspondentes, conforme mostra o código abaixo:
<?
$tags=array("php:5","java:6","html:2","programacao:4","javascript:3","humor:1","internet:1","fotos:3","linux:7","shell-script:3","livros:2","musica:2","videos:1","jogos:4","windows:5");
?>
O preenchimento do array também pode ser feito através de uma consulta em seu banco de dados, ou seja, o array também pode ser preenchido de forma dinâmica.
A chamada da função se dá da seguinte maneira:
echo geraTags($tags,30);
Um exemplo de visualização da nuvem seria:
Espero que tenham gostado desta dica.
0 comentário