Каков алгоритм для облаков тегов? - PullRequest
1 голос
/ 24 ноября 2011

Я хотел бы создать облака тегов, и мне интересно, на основании каких параметров я должен это сделать.

Кроме того, я не хочу, чтобы одни и те же топ-теги отображались постоянноТак как же большие сайты справляются с этим?

У меня есть таблица, содержащая элементы, таблица, содержащая теги (только идентификатор тега и текст тега) и еще одна таблица для нормализации со строкой для каждогосвязь между элементом и тегом.

1 Ответ

1 голос
/ 24 ноября 2011

Я думаю, что хорошая реализация с хорошей гибкостью (и в PHP) - это реализация WordPress.Посмотрите на их объект аргумента в документации для wp_tag_cloud () :

  • наименьший - Наименьший тег (наименьшее количество) показан в размере 8
  • наибольший - наибольший тег (наибольшее количество) отображается в размере 22 * ​​1012 *
  • единица - описывает 'pt' (точку) в качестве шрифтаразмер для самых маленьких и самых больших значений
  • число - отображает не более 45 тегов
  • формат - отображает теги в плоском виде (разделенныепробел) стиль
  • разделитель - отображает пробел между тегами
  • orderby - упорядочивает теги по имени
  • order - сортировка тегов по возрастанию
  • исключение - исключение тегов
  • включение - включение всех тегов
  • * topic_count_text_callback * - Использует функцию default_topic_count_text
  • ссылка - просмотр
  • таксономия - Использовать теги записей для основыоблака
  • эхо - повторить результаты

Вот этот пример кода:

<?php $args = array(
    'smallest'                  => 8, 
    'largest'                   => 22,
    'unit'                      => 'pt', 
    'number'                    => 45,  
    'format'                    => 'flat',
    'separator'                 => \"\n\",
    'orderby'                   => 'name', 
    'order'                     => 'ASC',
    'exclude'                   => null, 
    'include'                   => null, 
    'topic_count_text_callback' => default_topic_count_text,
    'link'                      => 'view', 
    'taxonomy'                  => 'post_tag', 
    'echo'                      => true ); ?>
...