Як зробити хмара тегів

Як зробити хмара тегів

Напевно на багатьох сайтах і блогах ви зустрічалися з такою забавною річчю, як хмара тегів. Якщо ви хочете створити таку хмару на своєму сайті або блозі, то в даній статті ви зможете знайти інструкцію з його генерації. Хмара тегів представляє собою набір ярликів або категорій, найбільш часто зустрічаються в пошуку, посиланнях і згадок будь-яких слів. І чим частіше зустрічається те чи інше слово або поняття, тим більше стає зображення, що містить гіперпосилання на ці поняття і слова.

Інструкція

  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

    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-скрипту.

    Успіхів вам у створенні власних хмар!