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>&nbsp; ";
    }
    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.


Emilio Mario Wieczorek

I talk about everything, I discuss everything, but I only support 🇧🇼Grêmio. 💻IT Manager, 🎮Gamer and 👽Jedi (or Sith, depending on the day).

0 comentário

Deixe um comentário

Avatar placeholder

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *