Связать ноды через node reference и вывести в поле через views

Задача — связать ноды разных типов материала, чтобы в выводе содержимого поля reference выплевывало связанные материалы с темизацией.
Пути решения:
  1. Первый способ — темизировать node.tpl.php типа материала, ноды которого мы будем выводит. Далее в поле отображения reference выбрать формат — обработанный материал и режим представления — полная версия.
    Плюсы способа — относительно быстрое решение если работа выполняется с 2 типами материалов.
    Минусы — если таких связок много, то необходимо будет выполнять темизацию node.tpl.php для каждого типа материала, что достаточно неудобно. Так же это проблема, если эти материалы являются карточками товаров и шаблон ноды задействован под нее (этот недостаток можно решить, темизируя node.tpl--teaser.php, или другой вид отображения, но это не совсем гибкое решение).
  2. Второй способ — создать вьюху, которую мы будем использовать через поле reference для отображения связанных нод.
    Что нужно сделать: Создаем views с тем набором полей который нам необходим и в раздел контекстные фильтры добавляем Содержимое: Nid из настроек фильтра можно поставить только галочку на Разрешить множественные значения. В типе материала в котором мы будем выводить эту вьюху добавляем поле reference с необходимой настройкой. Далее создаем ноды этого типа материала и прикрепляем к нему ноды другого типа материала. Устанавливаем модуль Node Reference View Formatter. Потом переходим в отображение ноды выбираем формат — Render view и выбираем вьюху. Единственное — для двусторонней связи reference необходимо это поле добавить и в тип материала, ноды которого мы будем выводить. Настраивать reference для каждой ноды этого ТМ не нужно. Это полее вообще можно скрыть из отображения.
Stewie / 13 августа 2017, 15:02
0

0 комментариев
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.