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

Drupal → Как на странице материала вывести в блоке ноды из этой же категории

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

Распространённая задача — в блоке на странице материала, вывести ноды из категории, к которой принадлежит просматриваемый материал.

Способ 1

1. Создаём представление.

2. Добавляем дисплей Блок.

3. Добавляем фильтры (по типу материала, статусу и т.п.), меняем настройки по вкусу.

4. Добавляем контекстный фильтр по полю, в котором прописана категория материала (в примере это field_category).

5. В настройках контекстного фильтра отмечаем опцию Provide default value, в качестве типа выбираем PHP Code и в поле PHP contextual filter code пишем код, который вернёт значение поля у открытого материала, например:

return node_load(arg(1))->field_category['und'][0]['tid'];

6. Идём на страницу управления блоками, открываем настройки нового блока и устанавливаем видимость только для материалов определённого типа.

Способ 2

Всё тоже самое, только в настройках контекстного фильтра, в Provide default value, вместо PHP Code выбираем Taxonomy term ID from URL, отмечаем появившуюся опцию Load default filter from node page, that's good for related taxonomy blocks и выбираем нужный словарь в поле Vocabularies:

Спасибо kalabro за наводку.

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

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

Если поле term reference одно, можно ещё так: http://www.drupal.ru/node/67295#comment-379233
Если не одно, тоже наверно можно, но у меня на Postgres работает некорректно.

совсем не очевидно =) добавил вторым вариантом. спасибо за наводку

field_category['und'][0]['tid']

und я бы заменил на LANGUAGE_NONE

А как исключить из вьюшки материал, на странице которого мы находимся?

Владимир, http://www.drupal.ru/node/67295#comment-379233

Content: Nid → Content ID from URL → и поставить галочку Exclude в MORE.

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

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

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