В этой статье рассмотрен вопрос как вывести список терминов Таксономии через систему представлнеий Drupal. Для плоского списка никаких сложностей возникнуть не должно. Другое дело, если термины Таксономии имеют дочерние элементы. В этом случае, если попробовать вывести список через систему представлений(Views) Drupal, он будет выведен без учета иерархии, как обычный плоский список.
Шаг 1. Установите модули Drupal
Для настройки нам потребуются модули:
- http://drupal.org/project/views - сам модуль, реализующий систему представлений
- http://drupal.org/project/ctools - требуется для модуля views
- http://drupal.org/project/views_tree - дополнение к модулю views, позволяющее реализовать деревовидный стиль представления.
Как их установить, можно посмотреть в статье: Как установить модуь Drupal. В данный момент подразумевается что модули установлены и включены.
Шаг 2. Создайте словарь таксономии и наполните его терминами
Шаг 3. Создайте представление
- Зайдите в меню "Структура - Представления".
- Создайте представление, отображающее термины таксономии:
Нажмите кнопку Продолжить редактирование, для перехода к настройке только что созданного представления.
Шаг 4. Отредактируйте представление
В разделе Отношения (Relation): нажмите кнопку Добавить и в открывшемся окне найдите "Термин таксономии: Родительский термин" ("parent term"), идентификатор можно оставить по умолчанию.
Добавте в представление поле для родителя
- Создайте поле " Термин таксономии: ID термина". В выпадающем списке "Связь" выберите единственный пункт Родитель.
- Установите чекбокс "Создать метку" и в качестве метки укажите "Родитель"
- Установите чекбокс Исключить из вывода
- Нажмите кнопку Применить
Создайте второе поле для самого термина
Процедура та-же самая, только в выпадающем списке "Связь" не нужно ничего выбирать и в качестве метки указать "Термин".
Шаг 5. Настройте формат вывода представления
Если при создании представления у вас указан другой формат вывода, измените его на "Tree (Adjacency model)".
В окне настройки "Tree (Adjacency model)" выбираем:
- В виде списка: Маркированный список(Ordered list)
- В выпадающем списке Main field выбираем TID второго добавленного поля (метку ему мы присвоили Термин)
- В выпадающем списке Parent field выбираем TID первого добавленного поля (метку ему мы присвоили Родитель)
Результирующий список терминов должен выглядеть так:
Единственное замечание - если в предварительном просмотре у вас отображается простой плоский список, не пугайтесь - просто в каскадных стилях не настроены отступы:
There are 12 Comments
Все сделал как описано выше.
Все сделал как описано выше. Но у меня выводятся только TID'ы терминов. Пробовал заменить поля TermID на TermName - вьюс выдает ошибку аякс-запроса. В чем может быть дело?
следует установить чекбокс "Исключить из вывода"
Доброго дня.
Для того, чтоб поля ID термина не выводились, следует в параметрах обоих полей установить чекбокс "Исключить из вывода" , а для того, чтоб выводились названия - добавить еще одно поле Термин таксономии: Название.
Делись своим опытом и знаниями, ибо в могиле они тебе вряд-ли пригодятся.
Здравствуйте!
Здравствуйте!
Похожая проблема. В настройках формата Tree (Adjacency model) не показывается родитель, хотя в отношениях и выводимых полях он есть. Этот модуль расценивает их как одинаковое поле. Вот картинка: http://borisoglebsk.su/share/views-tree.png
Вы немного ошиблись
Доброго дня.
У вас закралось две ошибочки.
Первая - это то, что нужно использовать поле Термин таксономии: ID Термина, а не Термин таксономии: Название.
А вторая - это то, что родитель и не должен показываться в этом списке. Надпись в скобках Родитель говорит о том, что в поле Связь указана связь Родитель.
Для наглядности, я немного изменил название полей, чтоб стало немного понятнее:
Обратите внимание, что минимум поля должно быть три - Название, и два идентификатора термина.
Делись своим опытом и знаниями, ибо в могиле они тебе вряд-ли пригодятся.
Замечание: Если число
Замечание: Если число терминов велико, то число Items per page надо установить не менее, чем число терминов, так как это число входит в запрос к базе данных и, если не все термины извлекутся, то и иерархию составить не получится.
Спасибо за замечание
Думаю логичнее было б отключить постраничный вывод, тогда не нужно вообще беспокоиться про количество элементов.
Делись своим опытом и знаниями, ибо в могиле они тебе вряд-ли пригодятся.
drupal
"Создайте второе поле для самого термина"
Поля -> добавить
Термин таксономии: Term edit link
Термин таксономии: Вес
Термин таксономии: Имя
Термин таксономии: Описание термина
Что именно добавить?
Термин таксономии: ID термина
Термин таксономии: ID термина
Делись своим опытом и знаниями, ибо в могиле они тебе вряд-ли пригодятся.
Collapsible view
Collapsible view как я понял позволяет сворачивать список?
не работает у меня. при каких условиях должен функционировать?
Не понял сути вопроса. В
Не понял сути вопроса. В статье вроде нет раскрывающихся представлений. на вскидку гугл показывает варианты типа этого
Делись своим опытом и знаниями, ибо в могиле они тебе вряд-ли пригодятся.
Вывод терминов в виде деревв
Все получилось, спасибо большое за урок! =)
Не пустые термины
Доброго времени.
А как вывести только те термины, которые используются в материалах, а пустые скрыть?
Если добавлять к представлению связь "Термин таксономии: Материалы с термином" и ставить чекбокс, что эта связь обязательна то исчезает родитель в списке и остаются только дочерние термины, которые используются в материалах.
Добавить комментарий