Jump to content

Recommended Posts

Posted

(Tal como prometido aqui fica.)

Afinal de contas o que é uma Tag Cloud?

Uma Tag Cloud não é mais que uma lista de tags (palavras chave) que são distinguidas através de diferentes tamanhos de letra. Isto permite que o utilizador possa seleccionar uma tag em função da sua maior relevância ou utilização.

O grande criador desta tendência foi o site del.icio.us que introduziu esta tendência que em pouco tempo ganhou uma enorme relevância.

Começando:

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.

A tabela em questão pode possuir uma estrutura simples ou complexa consoante o projecto em questão:

------------------------

TABELA Tags

Tags [varchar(50)]

------------------------

OU

------------------------

TABELA Tags

ID [iNT]

Tags [varchar(50)]

------------------------

OU

------------------------

TABELA Tags

ID [iNT]

Tags [varchar(50)]

Artigo [iNT]

------------------------

Código:

Após termos a base de dados e respectivos registos poderemos introduzir o código. Tentem usar sempre que possível os padrões web.

Aqui fica o código php correspondente à criação da Tag Cloud

// 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
}

Estilos:

Para terminar basta o toque que fará a Tag Cloud brilhar, a alteração de tamanhos. Use este código na sua folha de estilos css.

.micro {
         font-size: xx-small;
}
.pequena {
        font-size: small;
}
.medio {
        font-size: medium;
}
.grande {
         font-size: large;
}
.enorme {
        font-size: xx-large;
}

Enfim os resultados:

Após concluído este processo o efeito final deve ser bastante idêntico ao site http://www.o-directorio.info/.

Espero que este artigo seja do vosso agrado.

Com os melhores cumprimentos,

Sérgio Matias

ser.gifsartim.gif

Posted

Bom tutorial para aqueles que estão a aprender agora 👍

if (@mysql_num_rows($risTags)) {

      while (list($count, $tag) = mysql_fetch_row($risTags)) $array[$tag] = $count;

}

Não testei esse código mas parece-me que ai esta errado... não era suposto ser

while (list($count, $tag) = each(mysql_fetch_row($risTags)) $array[$tag] = $count;

Acho que esqueceste o each();

  • 2 months later...
Posted

Bom tutorial para aqueles que estão a aprender agora 👍

Não testei esse código mas parece-me que ai esta errado... não era suposto ser

while (list($count, $tag) = each(mysql_fetch_row($risTags)) $array[$tag] = $count;

Acho que esqueceste o each();

kingless, nao é preciso usar o each(), pelo menos eu nunca usei e nos tutorias k leio, eu nunca vi kom essa funcao! e axo k tb n é preciso, pois o while ja vai buscar cada valor da array!

Bom tutorial perdido_e_sozinho! 😁

  • 5 years later...
Posted

Boas tardes,

Gostaria de obter indicações de PHP de uma Tag Cloud para um site que adquiri na net.

É um site simples, mas gostaria de o tornar moderno.

Caso seja possivel obter indicações Tutoriais sobre como fazer e algum codigo.

Não necessita de ser coisa muito complexa.

Obrigado pelas dicas que possam dar.

Abraços.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.