Урок 7. Таксономия и облако тегов

Таксономия

Навигацию по сайту можно организовать и через так называемую таксономию. Вообще таксономия — это учение, которое занимается классификацией и систематикой; изначально оно никак не связано с web, но термин и его значение прижились во Всемирной паутине.

Любую статью можно отнести к какой-нибудь теме. Если на сайте предусмотрена таксономия, то при создании статьи (например, записи в блог) пользователь обязан (или ему предлагается) выбрать из уже существующих или вписать новую тему, которой будет принадлежать данная запись. Для статей каждой темы движок Drupal формирует отдельные страницы, после чего на них можно устанавливать ссылки из меню. Т.е. если на прошлом занятии мы пытались классифицировать материал по месяцу публикации, то на этом уроке будем классифицировать по темам. В принципе правильно на сайтах-блогах предусмотреть обе классификации, т.к. в определенных случаях бывает удобнее искать материал по дате публикации, а в иных — по теме.

Допустим, на нашем сайте освещаются следующие темы: программирование, Python, Linux, web-технологии. Бывает строгая таксономия, когда статья может принадлежать только одной теме, но пусть у нас любая запись в блог может принадлежать или одной или сразу нескольким темам. При этом запись обязательно должна принадлежать хотя бы одной теме.

Также следует определиться с тем, может или нет пользователь (блогер, в нашем случае) сам добавлять новые термины таксономии при создании материала, если ему недостаточно существующих. Пусть у нас будет так, что он не может этого делать; термины таксономии будет создавать только администратор сайта.

Итак, перейдите на страницу Управление содержимым ? Таксономия, нажмите кнопку Добавить словарь. Заполните открывшуюся форму следующим образом:

  • Название словаря: Темы
  • Типы содержимого: Запись в блог
  • Настройки: Множественный выбор, Обязательный

Сохраните изменения. Теперь кликните по ссылке Добавить термины напротив только что созданного словаря. По очереди добавьте термины (программирование, Python, Linux, web-технологии). После чего щелкните по кнопке Список вверху, вы должны увидеть список созданных терминов.

Наведите мышку на термины и посмотрите их адреса URL в строке состояния внизу. Там значится примерно следующее: developer.home/taxonomy/term/1. Номера в конце адреса не очень информативны, поэтому назначим адресам страниц синонимы, заменив цифры на ключевое слово темы. Чтобы было удобно переименовывать, откройте несколько вкладок в браузере. Адреса страниц должны выглядеть так:

  • developer.home/taxonomy/term/linux
  • developer.home/taxonomy/term/python
  • developer.home/taxonomy/term/programming
  • developer.home/taxonomy/term/web

Если вы перейдете на любую из этих страниц, то увидите сообщение "В этой категории нет материалов". Когда мы добавляли статьи, то словаря таксономии еще не существовало, поэтому уже добавленные материалы не принадлежат ни одному термину словаря. Это несложно исправить. Поочередно откройте статьи на редактирование и выберите в списке Темы один или несколько терминов, которым может принадлежать заметка. Чтобы выбрать несколько тем, следует зажать Ctrl. Большинство ранее добавленных статей относятся к теме "Программирование". Чтобы перейти на эту страницу и посмотреть, как она выглядит щелкните по ссылке "программирование" внизу страницы любой из статей, которая принадлежит этой теме. Вы окажетесь на странице taxonomy/term/programming.

Облако тегов

Далее можно создать меню и привязать к нему страницы терминов, но мы поступим по-другому. Воспользуемся специальным модулем, который создает так называемое облако тегов. Облако тегов - это тоже меню, но своеобразного вида. Понятие "тег" совпадает или очень близко по значению с понятиями "термин, тема" и т.п.

С сайта drupal.org загрузите модуль Tagadelic и распакуйте его в каталог sites/all/modulesсистемы Drupal. На странице модулей включите его. Если на сайте существуют словари таксономии, то Tagadelic автоматически создает блоки для них. Перейдите на страницу Блоки и разместите блок Tags in Темы в правой колонке сайта.

Скорее всего результат будет выглядеть не очень красиво. Облако тегов подразумевает, что термины, у которых больше статей, имеют более крупный шрифт. Поскольку у нас пока терминов мало, то "программирование" будет выглядеть гипертрофированно. Кроме того, как-то странно выглядит надпись над блоком (Tags in Темы). Кликните по ссыке настроить напротив блока и впишите в поле Заголовок блока одно слово — Темы.

Добавим еще ряд статей от имен двух блогеров. Это может сделать и под администратором сайта: при редактировании материала в разделе Информация об авторе следует вписывать имя одного из существующих блогеров. При оформлении материала встречающийся программыный код помещайте в контейнер code, используйте таблицу там, где это необходимо (вспомните, мы создали кнопку в BUEditor для добавления табличных тегов; пользуйтесь ей; кроме того, следует добавить теги <table>, <tr> и <td> в формат ввода Filter HTML). Примеры статей для добавления:

  • Направления развития и "эры" технологий Web (8)
  • Всемирная паутина и язык HTML (9)
  • Данные и операции над ними (10)
  • Условный оператор (11)
  • Права доступа к файлам в Unix-подобных операционных системах (12)

При добавлении материала вы должны были заметить, что облако тегов не обновилось (новые термины не появились). Чтобы исправить ситуацию, достаточно запустить крон (например, со страницы Отчет о состоянии).

Создано