Certamente, em muitos sites e blogs você se deparou com algo tão engraçado como uma nuvem de tags. Se você deseja criar essa nuvem em seu site ou blog, neste artigo, você pode encontrar instruções sobre como gerá-la.
Uma nuvem de tags é uma coleção de tags ou categorias que aparecem com mais frequência em pesquisas, links e menções de palavras. E quanto mais frequentemente ocorre uma ou outra palavra ou conceito, maior se torna a imagem, contendo um hiperlink para esses conceitos e palavras.
Instruções
Passo 1
Primeiro, gere uma lista de pares no formato: tag - o número de ocorrências. Para fazer isso, use o seguinte código:
1. <?
2. class TagsCloud {
3.
4. tags $ privadas;
5.
6.privado $ font_size_min = 14;
7.privado $ font_size_step = 5;
8.
9.function _construct ($ tags) {
10.
11. shuffle ($ tags);
12. $ this-> tags = $ tags;
13.
14. }
15.
16. função privada get_tag_count ($ tag_name, $ tags) {
17.
18. $ contagem = 0;
19.
20. foreach ($ tags as $ tag) {
21. if ($ tag == $ tag_name) {
22. $ count ++;
23. }
24. }
25.
26. return $ count;
27.
28. }
29.
30. private function tagscloud ($ tags) {
31.
32. $ tags_list = array ();
33.
34. foreach ($ tags as $ tag) {
35. $ tags_list [$ tag] = self:: get_tag_count ($ tag, $ tags);
36. }
37.
38. return $ tags_list;
39.
40. }
41.
42. função privada get_min_count ($ tags_list) {
43.
44. $ min = $ tags_list [$ this-> tags [0];
45.
46. foreach ($ tags_list as $ tag_count) {
47.
48. if ($ tag_count <$ min) $ min = $ tag_count;
49.
50. }
51.
52. return $ min;
53.
54. }
55.
56. public function get_cloud () {
57.
58. $ nuvem = Matriz ();
59.
60. $ tags_list = self:: tagscloud ($ this-> tags);
61. $ min_count = self:: get_min_count ($ tags_list);
62.
63. foreach ($ tags_list as $ tag => $ count) {
64.
65. $ font_steps = $ count - $ min_count;
66. $ font_size = $ this-> font_size_min + $ this-> font_size_step * $ font_steps;
67.
68. $ cloud = ". $ Tag. ";
69. }
70.
71. return $ cloud;
72.
73. }
74. }
75. ?>
Passo 2
Trabalhe com este código assim:
01. <?
02.
03. $ tags = array (04. '1111', '2222', '333', '444', 05. '5555', '666', '777', '777', 06. '333', '8888', '6666', '333', 07. '888', '000’, '989', '45455', 08. '5555', '63636', '54545', '55656'
09.);
10.
11. $ mycloud = new TagsCloud ($ tags);
12. $ tags_list = $ mycloud-> get_cloud ();
13.
14.foreach ($ tags_list as $ tag) {
15.echo $ tag. ' ';
16. }
17.
18. ?>
No lugar dos números, coloque as tags de que você precisa!
etapa 3
Para exibir uma nuvem de tag com base na relevância, faça o seguinte. Nas configurações, defina o tamanho mínimo da fonte que corresponderá ao número mínimo de ocorrências (ou seja, uma ocorrência). Use o campo font_size_min.
Passo 4
Defina o tamanho da fonte para o resto das tags da seguinte maneira: cada ocorrência aumenta a fonte em um pixel. Para fazer isso, use o campo font_size_step.
Etapa 5
Se você quiser melhorar sua nuvem de tags, anexe-a a um script js.
Boa sorte criando suas próprias nuvens!