При разработке каждого нового сайта встаёт один и тот же вопрос — что использовать в качестве свойств материалов, таксономию или текстовое поле? Однозначного ответа увы нет. Таксономия в друпале с бородатых времён и отказаться от её использования не так просто. Рассмотрим основные плюсы обоих подходов.
Преимущества таксономии
- Множество модулей (создание меню, ограничение доступа, экспорт/импорт).
- Возможность фильтровать материалы без дополнительных модулей (taxonomy/term/[tid]).
- Возможность создавать иерархию из терминов и делать выборки вида "термин + все дочерние термины".
- Виджет автодополнения, возможность создать зависимые списки на основе иерархии (модуль Hierarchical Select).
- Достаточно просто создать навигацию (модуль Taxonomy Menu или Views).
- Возможность расширять термины полями.
- Возможность сделать раскрытый фильтр в виде выпадающего списка.
- Интеграция с Pathauto (возможность каждому термину дать адрес и делать красивые иерархические ЧПУ).
- Возможность сменить название термина, при этом изменения коснутся всех материалов.
- Возможность дать определённой роли права на редактирования терминов.
Преимущества текстового поля
- Простота создания.
- При большом количестве данных не так жрёт системные ресурсы, как таксономия.
- В Views можно делать фильтры по части значения поля (
LIKE %часть%
). - Неограниченная длина значения поля (в таксономии максимум 255 символов).
Оставляйте комменты, если я что-то забыл.
Похожие записи
- Как при установке модуля создать словарь с полем
- Модуль Taxonomy Term Reference Tree Widget — раскрывающийся древовидный виджет для полей Term reference
- Модуль Taxonomy container — виджет для Term reference с группировкой терминов
- Изменяем дефолтное значение поля Term reference на значение из последнего созданного материала
- Создание сравнительной таблицы с значениями из EAV Field
Комментарии
Помню в одном из подкастов Луллаботы обсуждали этот вопрос. Сошлись на том, что поля нужно использовать если данные являются внутренним свойством, таксономия - если это внешнее описание.
Например, у нас есть рецепты. Состав рецепта (молоко, яйца, масло и пр) это внутреннее свойство - значит поля. Классификация рецептов - первое, второе, десерт - это внешнее описание, следовательно таксономия.
любопытно
не совсем понял что значит «огнаничение доступа», но для полей есть Field Permissions
http://drupal.org/project/taxonomy_access
http://drupal.org/project/taxonomy_role
http://drupal.org/project/vocabperms
http://drupal.org/project/term_permissions
http://drupal.org/project/content_taxonomy
эти все модули под 6-ку. Если с 7-кой работать, то получается - поля основной выбор.
поля далеко не основной выбор ;)
Из одного словаря таксономии можно сделать два поля в контент-тайпе. Но поле может использоваться только один раз.
Например объём оперативной памяти и максимальный объём озу тут — http://www.ktc-ua.com/catalog/notebook/all
А как вообще получить id нод с конкретным значением определенного поля кроме как собственный запрос к БД? Т.е. через API Drupal v6.
не могли бы вы подсказать, как это сделать?
интересует именно:
1. "термин + все дочерние термины".
2. "таксономия + все дочерние термины(подтермины)".
http://xandeadx.ru/blog/drupal/200
http://xandeadx.ru/blog/drupal/408
xandeadx
а есть варианты вывода нод на странице главного термина из подтерминов таксономии без использования модуль viws ?
http://xandeadx.ru/blog/drupal/200
Вроде простой вопрос, но не могу сдвинуться с места
Дано:
Несколько авторов
Единый словарь таксономии: музыка, кино, спорт и т.д.
Задача такая: 1. на странице автора (либо ноде "Об авторе") показывать только ТЕРМИНЫ ТАКСОНОМИИ, в которых имеются статьи созданные конкретным автором
2. Кликая на термин таксономии на странице автора (или ноде автора "Об авторе") получить список материалов созданных только им
Первый вопрос получилось реализовать разместив вьюшку с контекстными фильтрами в ноде "Об авторе". Но, видимо, этот способ не годиться, так как вторая часть задания не реализуется, высыпаються все материалы имеющие данный термин и всех авторов
Есть идеи?
Спасибо
Решено так:
Необходимы модули viewfield, Views Selective Exposed Filters и Better expose selective (чтобы красиво все оформить)
В материала об авторе добавляем поле-представление из статей авторов
В представлении настраиваем контекстные фильтры по автору материала
В поле viewfield аргумент, естественно id автора
Делее в фильтация добавляем фильтр Selective по термину таксономии
В результате получаем ноду об авторе с перечнем всех его статей сгруппированных по терминам таксономии
Фильтр Views Selective Exposed Filters не показывает термины, к которым не привязаны ноды конкретного автора
Добавить комментарий