Инструкция
1
Для начала сгенерируйте список пар вида: тег – количество вхождений. Для этого используйте следующий код:
1. <?

2. class TagsCloud {

3.

4. private $tags;

5.

6. private $font_size_min = 14;

7. private $font_size_step = 5;

8.

9. function __construct($tags) {

10.

11. shuffle($tags);

12. $this->tags = $tags;

13.

14. }

15.

16. private function get_tag_count($tag_name, $tags) {

17.

18. $count = 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. private function 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. $cloud = Array();

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. ?>
2
Работайте с этим кодом примерно таким образом:

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. ?>
На месте цифр ставьте нужные вам теги!
3
Чтобы вывести облако тегов с учётом релевантности, сделайте следующее. В настройках задайте минимальный размер шрифта, который будет соответствовать минимальному числу вхождений (то есть, одно вхождение). Используйте поле font_size_min.
4
Задайте остальным тегам размер шрифта по следующей схеме: каждое вхождение увеличивает шрифт на один пиксель. Для этого воспользуйтесь полем font_size_step.
5
Если вы хотите усовершенствовать своё облако тегов, прикрутите его к js-скрипту.
Удачи вам в создании собственных облаков!