Всем привет. Есть тип материала новости и словарь с терминами для новостей.
/news/World Expo 2025
Есть другой тип материала, где описывается World Expo, который тоже имеет термин World Expo 2025.
/vistavki/World Expo
Соответственно термин таксономии покажет все типы материала. А мне нужно для новостей показывать термины только типа новости., для выставок - термины выставок.
Как лучше сделать:
Дубли терминов
taxonomy/vistavki/World Expo
taxonomy/news/World Expo
или выводить таксономию через views?
Или другие варианты?
Лучше для быстродействия сайта, логики структуры, работы с cms, экономии ресурсов итд. В общем как правильно работать с таксономией?
Комментарии
Работайте так как вам удобно. Если делает большой сайт будете много раз менять структуру (словари, типы материалов, разные ил одинаковые поля и т.д.)
Получается на вскидку 1600 терминов и в пяти словарях будут дублироваться = 8 000 терминов
выводить таксономию через views
тяжело дается мне выбор.
С одной стороны удобные и гибкие вьюхи с аяксом и сортировкой.
С другой больше запросов к БД, чем таксономия.
Если у Вас фобия или пунктик по количеству запросов - Вы выбрали явно не тот движок.
преимущества в дублях словарей еще в возможности генерации разных путей в pathauto и path breadcrumbs, задавая аргументы в виде taxonomy словарь
Повторяю делайте как удобнее. Вьюхи можно закешировать.
"С другой больше запросов к БД, чем таксономия." Что больше?
sql запросов
Что больше по количеству sql запросов чем таксономия?
Использование views /taxonomy/term/% больше, чем без views.
Ресурсы экономить, Вам какой смысл? По секрету скажу, это предвестник крайне нищенской оплаты за работу.
В вопрос особо не вникал, но вьюхи при нормальных ресурсах удивительно гибкие и послушные.
В целом да гибкие, но каково было разочарование, когда я сегодня узнал, что вьюхи для таксономии применяются ко всем словарям сразу (/taxonomy/term/%).
И из коробки не сделать, чтобы одному словарю один вид - другому другой, нужны еще подмодули....
И что такого в этом?
Не подмодули, а один.
Либо tvi, либо что-то из контексто-панелей, которыми вы и другие вопросы закроете.
Первый так вообще простецкий
Панелями это вообще рулится на раз-два.
Без tvi и панелей словари указываются в контекстных фильтрах вьюхи. Т.обр. разные вьюхи для разных словарей. Это для автора темы.
Это там, где "иммеет идентификатор термина таксономии"? - "Указать критерии валидации" - выбрать словарь?
Работает, спасибо.
Тогда зачем нужен этот tvi...
Все же не работает. Клонировал стандартную Taxonomy term дважды и отключил оригинал.
Первая "новости" - указал контекстный фильтр Содержимое: Имеет идентификатор термина таксономии (с глубиной) - Обеспечить значение по умолчанию - Загрузить фильтр по умолчанию для страницы термина
Загрузить фильтр по умолчанию со страницы материала - Ограничить термины словарем
выбрал словарь "новости"
Вторая "статьи" указал Содержимое: Имеет идентификатор термина таксономии (с глубиной) - все то же самое, только указал словарь "статьи".
В итоге новости работают, а у "статьи" 404 ошибка.
Да, но системную таксономию /taxonomy/term/% так не сделать.
www.example.com/[словарь1] ( view1)
www.example.com/[словарь2]/view2
/taxonomy/term/% перезапишет и словарь 1 и словарь 2.
И если указать один словарь, в контекстных фильтрах, то будет 404 в словаре 2.
Если во втором словаре тоже указать словарь, то будет 404 в словаре 1, т.к. /taxonomy/term/% для всех словарей.
Потому что по умолчанию в Drupal не существует словарной страницы, такой как
site.com/[vocabulary name].
Значит во вьюхе taxonomy-term выводим поле пустой пользовательский текст, т.е. делаем пустую вьюху.
А ноды терминов выводим через блоки, которые ставим на страницы таксономии. Вот для этих блоков точно можно указать разные словари в контекстных фильтрах.