Как организовать такое на друпал 7?

17 октября 2013 в 20:37
Аватар пользователя Alex_web Alex_web 0 6 Решено

Есть два типа материалов.

Тип A. Поля:

Заголовок
Содержимое
Изображение
Теги (термин таксономии, 10 терминов)

Всего 10 материалов.

Тип B. Поля:

Заголовок
Содержимое
Изображение
Теги (термин таксономии)

Нужно в материалах Типа B вывести изображения материалов Типа A (всегда разное кол-во). Изображения должны быть ссылками на материалы Типа A.
Можно было бы сделать представлением, если бы кол-во изображений всегда было одинаковым. Но создавать 10 представлений как-то глупо. Поэтому и добавил в оба типа термины таксономии, чтобы связать их как то. Но вот что делать дальше не могу понять.

Комментарии

Без представления думаю никак!
Делаем "Отношения" по термину таксономии.

Что долго клонов наделать представлений, делом на 5 минут!

17 октября 2013 в 21:45

Для меня не проблема.
Проблема для заказчика менять где какое представление выводить.
Было бы гораздо удобнее, если бы заказчик просто мог выбирать у материала термины таксономии. Или даже лучше из списка выбрать сколько и какие именно фотки должны быть показаны.

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

17 октября 2013 в 23:05

Если я правильно понял задачу, то проще сделать с помощью модулей Еntity reference + Corresponding Entity References + views

Порядок действий:

1. Типу материала A добавляем поле Entity Reference, машинное имя field_link_b, виджет Флажки/переключатели.
В настройках:
Тип цели Материал
Режим простой
Целевые пакеты Тип B
Количество значений неограничено

2. Создаем views Показать содержимое типа А. Снимаем галочку с Создать страницу. Продолжить. Добавляем дисплей Entity Reference. Удаляем поле Заголовок и добавляем поле Изображение(то что в материале типа А). Жмем Настройки напротив Формат: Список Entity Reference, ставим галочку возле "поля изображения". Сохраняем views.

3. Типу материала B добавляем поле Entity Reference, машинное имя field_link_a, виджет Флажки/переключатели.
В настройках:
Тип цели Материал
Режим Views, в выпадающем списке выбираем views созданный на предыдущем шаге
Количество значений неограничено

4. Открываем admin/config/system/cer
Ставим 2 галочки, напротив field_link_a к field_link_b и field_link_b к field_link_a
Если ноды уже были созданы, то переходим на вкладку Update existing entities -> Выбираем Тип сущности Материал -> Submit

5. Создаем views с дисплеем block. Показать содержимое типа А. Настраиваем вывод нужных полей. Добавляем Контекстный фильтр:
Поле Содержимое: field_link_b. Передать значение по умолчанию ID материала из URL. Далее галочка на Укажите критерии проверки, выбираем Проверка Содержимое, Типы материалов Тип B, Формат значения фильтра ID материала, Действие в случае если значение фильтра недействительно Скрыть представление.
Сохраняем views

6. Настраиваем вывод блока на страницах материалов Тип B

В итоге получаем: в форме создания материала Тип B выводятся чекбоксы с картинками из Тип A. Отмеченные картинки выводятся на страницах материала B

18 октября 2013 в 1:39