Ищу модуль. Отобразить поля из другого материала

Главные вкладки

Аватар пользователя 5851998 5851998 21 августа 2013 в 19:46

Помогите найти модуль. Есть два материала со связью Node Reference один-к-одному, хочу отобразить поля одного материала на странице другого в режиме просмотра (НЕ РЕДАКТИРОВАНИЯ!). Поля сложные типа изображения и тому подобных, т.е. у них есть еще и форматирование.

Комментарии

Аватар пользователя duozersk duozersk 21 августа 2013 в 22:34

Это ж из коробки есть... отобразить связанную сущность с помощью одного из view mode, для этого view mode можно настроить отображение полей как хотите (на закладке Manage display).

Аватар пользователя 5851998 5851998 22 августа 2013 в 11:28

"duozersk" wrote:
Это ж из коробки есть... отобразить связанную сущность с помощью одного из view mode, для этого view mode можно настроить отображение полей как хотите (на закладке Manage display).

А можно поподробнее, ни разу так не делал, для вывода использую Display Suite.

"webpavilion" wrote:
в panels очень удобно это сделано, через контексты можно что угодно выводить.

В Panels я умею, а мне на тизере нужно, а как тизер "запанелить" (и вообще нужно ли это) я не знаю.

Аватар пользователя duozersk duozersk 22 августа 2013 в 11:41

Открываете Manage display той сущности, в тизере которой вы хотите отображать поля другой сущности
Выбираете view mode тизер
Выбираете формат для поля референс - Rendered entity, в настройках этого форматтера указываете view mode той сущности, на которую эта ссылается.
Далее вы должны настроить этот выбранный view mode - либо создать новый и настроить его, а потом проставить в настройках форматтера.

Аватар пользователя 5851998 5851998 22 августа 2013 в 13:57

"duozersk" wrote:
Открываете Manage display той сущности, в тизере которой вы хотите отображать поля другой сущности
Выбираете view mode тизер
Выбираете формат для поля референс - Rendered entity, в настройках этого форматтера указываете view mode той сущности, на которую эта ссылается.
Далее вы должны настроить этот выбранный view mode - либо создать новый и настроить его, а потом проставить в настройках форматтера.

Спасибо! Сработало. Вот только мне не совсем по нраву такое решение по нескольким причинам:

1. Нет возможности гибко управлять расположением полей, т.е. нельзя расположить последовательно, скажем, родное поле-неродное поле-родное поле-неродное поле
2. В моем конкретном случае у меня есть материал Товар, который объединяет в себе свойства других материалов (типа как наследование типов), получается, чтобы вывести фотографию из материалов на Товаре, мне придется делать View Mode для каждого Материала наследующего свойства Товара и настраивать его.
3. Ну и понятно, что это только в одну сторону работает, т.е. вывести поля ссылающегося материала (т.е. ссылка наоборот) это уже совсем другая песня.

В общем и целом годится как временное решение, но странно что нет модуля, задача то вроде тривиальная.

P.S. Кстати помню в 6-м друпале был очень крутой модуль "Node Relationships" вот там действительно раздолье было, жаль не портировали его на семерку.

Аватар пользователя duozersk duozersk 22 августа 2013 в 15:14

1. Да, чего нет - того нет Smile Попробуйте Panelizer - https://drupal.org/project/panelizer - в нём это должно получиться.
2. View mode для типа контента для ваших материалов, а не для каждой конкретной сущности (ноды) материала.
3. Обратная задачка решается с помощью EVA - https://drupal.org/project/eva

Аватар пользователя 5851998 5851998 23 августа 2013 в 19:21

Нашел решение! ))
Для этого понадобился модуль Panelizer, он позволяет использовать панели для различных View Modes, а дальше через контекст подсоединяешь Reference материал и вперед.
Пришлось правда переписать несколько шаблонов, уж больно много HTML кода, но это свойственно Drupal генерить тонны бесполезного HTML.
Думаю теперь перейду с Display Suite на Panelizer, больше гибкости.