xandeadx.ru Блог музицирующего веб-девелопера

Drupal → Вернуть в Drupal 7 возможность выборки по нескольким терминам

Опубликовано в

Из Drupal 7 была удалена возможность выборки по нескольким терминам таксономии. Теперь рекомендуется использовать Views и модуль Multi-term Views:

  1. Включаем дефолтное представление Taxonomy term.
  2. Открываем форму редактирования представления.
  3. Раскрываем блок Advanced.
  4. В блоке Contextual filters кликаем по фильтру Content: Has taxonomy term ID (with depth) (скриншот).
  5. Прокручиваем форму вниз до поля Filter value type.
  6. Выбираем в этом поле значение Term IDs separated by , or + (скриншот).
  7. Сохраняем фильтр и представление.

Добавлено 30/08/2011:

Оказывается, если использовать фильтр Content: Has taxonomy term ID вместо Content: Has taxonomy term ID (with depth), то можно делать выборку по нескольким терминам и без этого модуля, достаточно отметить опцию Allow multiple values в настройках фильтра:

Настройки контекстного фильтра Content: Has taxonomy term ID

Написанное актуально для Drupal 7
Похожие записи

Комментарии RSS

А как сделать следующее:
имеется тип материала "статья о болезни".и есть 2 словаря.
1-раздел болезни,например:воспалительные,онкологические,кожные и т.д.
2-тип статьи,например:содержание и уход,симптомы,способы лечения.

у нужно следующее. открыть страницу по разделу болезни-не проблема,это страница термина таксономии.По типу-тоже самое.
А нужно открыть например статьи из раздела "онкология" и типа "содержание и уход".
тоесть фильтровка по двум словарям.
Как это реализовать?на вьюсе?под семерку.

фильтр по первому словарю, фильтр по второму словарю

Решил эту проблему написанием собственного модуля!

Это все замечательно! Но... какие возможности существуют подобного вывода через алиасы, например: "/slovari/termin"

возможности все те же, что и без алиасов

Тут гость у вас интересную вещь в начале спрашивал, но мне нужно сделать чуть по другому.
Есть несколько словарей таксономии, например:

Температура: Горячее, теплое, холодное.
Состояние: Твердое, мягкое.
Вкус: Вкусное, невкусное, отрава.

Нужно настроить вывод материалов с фильтрами по этим словарям, чтобы показывать только "Теплое и Мягкое" или "Холодное и Вкусное"
В идеале сделать это несколькими листбоксами, чтобы динамически фильтровало. А если еще и можно настроить, чтоб показывало, при уже выбранном "Теплое и Мягкое" сколько остается нод в каждой из категорий "Вкусное, невкусное, отрава."

А как вывести страницу (page) или блок, в котом бы отображались ноды, у которых есть хотя бы 1 из терминов текущей ноды

Точнее, есть у меня блок, показывает "похожие" публикации. Правда "похожесть" работает только для 1-ного словаря, как сделать для нескольких - не понял

И еще хочется сделать страницу, где показывать те же похожие, только вообще все, похожие, то есть
Все ноды (обычный тизерный вывод) - taxonomy/term1+term2+termn
Из терминов, той ноды, у которой и отображался блок с похожими публикациями

Можно такое же сделать для Критерии фильтрации(Filter criteria).
При выборе фильтра у которого разрешен множественный выбор. Ему показываются только те ноды в которых есть оба этих значения.
Можно сделать так что бы отображались все ноды в которых есть хотя бы один из параметров.

Для таких как я. Оператор надо выставить в значение "Один из"

Спасибо большое. Никак не мог понять почему с , аргументы не работают. Решен вопрос дня :)

если использовать фильтр Content: Has taxonomy term ID вместо Content: Has taxonomy term ID (with depth),

Т.е. термин "с глубиной" и множественный выбор (через +|,) совместно не работают?

я сейчас смотрю последнюю версию Views, и там опцию Allow multiple values появилась и у фильтра с глубиной, так что статью наверно можно считать уже не актуальной.

Единственное замечание — у фильтра с глубиной выходит очень сложный запрос с подзапросом, что может негативно сказаться на времени его выполнения, поэтому по возможности лучше использовать фильтр без глубины

Спасибо, перепроверил.

и там опцию Allow multiple values появилась и у фильтра с глубиной,

Опция действительно есть, но с первого раза она у меня не сработала.. Было подозрение, что причина в:

Из-за дополнительной сложности, это имеет меньше настроек, чем версия без глубины.

Оказалось - в кривых руках. Всё работает - статью можно дополнить..

Как правильнее в полученный результат добавить редактор для:
- Title (который Meta) - смотрел в сторону simplemeta
- Title, который H1 (при переопределении во views получается term1, term2..)
- текст под результатом (можно, конечно, отдельную таблицу завести для текстов, h1 и title /по URI или по path/ и в теме(?) к ней обращаться, но почти уверен, что есть готовый вариант)

И попутно, есть ли "простой" (коробочный) способ добавить блок "Уточнить" (пересечение "тэгов") на странице term-а, как, например здесь: http://rmcreative.ru/blog/tag/API ?

Присоединяюсь к вопросу:

И попутно, есть ли "простой" (коробочный) способ добавить блок "Уточнить" (пересечение "тэгов") на странице term-а, как, например здесь: http://rmcreative.ru/blog/tag/API ?

И хочу уточнить как реализован похожий блок в вашем блоге? Например, на этой странице: http://xandeadx.ru/blog/tags/views (Уточнить: и т.д. ...)

+ к вопросу

Можете подсказать как реализован блок - http://xandeadx.ru/blog/tags/views - Уточнить, спасибо.

Спасибо большое.

Оставить комментарий

Содержимое этого поля является приватным и не будет отображаться публично. Если у вас есть аккаунт в Gravatar, привязанный к этому e-mail адресу, то он будет использован для отображения аватара.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Доступные HTML теги: <a> <i> <b> <strong> <code> <ul> <ol> <li> <blockquote> <em> <s>
  • Строки и параграфы переносятся автоматически.
  • Подсветка кода осуществляется с помощью тегов: <code>, <css>, <html>, <ini>, <javascript>, <sql>, <php>. Поддерживаемые стили выделения кода: <foo>, [foo].

Подробнее о форматировании