Existem módulos específicos para CMS e motores de blog, mas neste caso este exemplo serve para sites que façam uso de uma tabela de tags.
TABELA Tags Tags varchar(50)
OU
TABELA Tags ID INT Tags varchar(50)
OU
TABELA Tags ID INT Tags varchar(50) Artigo INT
<?php // Cria a conecção à base de dados $db = @mysql_connect('localhost','utilizador','password'); @mysql_select_db("base de dados",$db); // Obtem a lista de tags e número de vezes que surge na tabela $risTags = @mysql_query("SELECT COUNT(tag) AS tagCount, tag FROM tags GROUP BY tag"); // Cria um array de tags if (@mysql_num_rows($risTags)) { while (list($count, $tag) = mysql_fetch_row($risTags)) $array[$tag] = $count; } // Obtém a tag com o maior número de registos $max = max($array); // Obtém a tag com o menor número de registos $min = min($array); // Obtém a Aplitude dos registos e calcula a diferença entre as categorias $distribution = ($max -$min) / 5; // Este número corresponde ao número de categorias da Tag Clouds // Cria a Lista de tags foreach ($array as $tag=>$count) { // Define a categoria da tag if ($count == $min) { $class = "micro"; } elseif ($count == $max) { $class = "enorme"; } elseif ($count > ($min + ($distribution * 2))) { $class = "grande"; } elseif ($count > ($min + $distribution)) { $class = "medio"; } else { $class = "pequeno"; } // Cria o hiperlink com a tag echo '<a href="?links='.$tag.'" class="'.$class.'">'.$tag.'</a> '; // Poderá personalizar esta linha de forma a se adaptar este projecto usando as variáveis $tag para as tags e $class para a propriedade das letras }
.micro { font-size: xx-small; } .pequena { font-size: small; } .medio { font-size: medium; } .grande { font-size: large; } .enorme { font-size: xx-large; }