Связать два типа материалов

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

Аватар пользователя Никки Никки 30 апреля 2015 в 12:51

есть тип1, содержащий поля: организация (термин таксономии) и фото.
есть тип2, содержащий поля: организация (термин таксономии) и еще кучу других полей.

нужно вывести содержимое полей из типа2, но также нужно чтобы к полю "организация" было добавлено фото из типа1

Как сделать views?

Комментарии

Аватар пользователя gun_dose gun_dose 5 мая 2015 в 16:32

"Никк" wrote:
А вот во вьюсах есть "связи". Они не для этого?

не совсем. Вам же нужно показывать на одной странице одну ноду, просто пару полей из другой ноды ещё вытянуть. Если это делать чисто через вьюс (теоретически это возможно), то замучаетесь с контекстными фильтрами, т.к. надо будет писать туда пхп-обработчик, для подгрузки ноды по алиасу.

Аватар пользователя gun_dose gun_dose 5 мая 2015 в 18:41

"Никк" wrote:
А в каких случаях тогда используют "Связи"? Простейший пример можете привести?

Классический пример - это представление, где рядом с материалами выводится информация об авторе. Например, аватарка и имя. Без связей можно вытащить только uid автора. А со связями можно вытащить уже любое поле из пользователя.

Помимо того, каждая связь даёт возможность добавить ещё какое-то количество связей, зависимых от уже добавленной. При желании и умении можно очень знатный огород нагородить)) А в Drupal Commerce без связей вообще никуда. Вот бывает надо предложить на стадии оформления заказа некие дополнительные услуги или товары, которые зависят от того, что юзер уже добавил в корзину. Если корзина показывает продукты, то надо добавить связь с нодой-товаром, потом связь ноды-товара с нодами-доп.товарами, а потом связь ноды-доптовара с её продуктом.

Аватар пользователя Никки Никки 6 мая 2015 в 9:57

"gun_dose" wrote:
Без связей можно вытащить только uid автора. А со связями можно вытащить уже любое поле из пользователя.

Очень похоже на мою задачу, разве нет? В чем отличие? Пока не могу уловить...

Аватар пользователя gun_dose gun_dose 6 мая 2015 в 11:41

"Никк" wrote:
Очень похоже на мою задачу, разве нет? В чем отличие? Пока не могу уловить...

Отличие в том, что нода связывается с автором по умолчанию. А вам же нужно принудительно связать две ноды, для построения этой связи вам нужен модуль references. А node_reference_view_formatter нужен только для того, чтобы связанная нода показывалась на странице ноды, а не представления, иначе вы запутаетесь с ссылками, которые ведут на ноду и на представление. Потом вы задолбаетесь писать контекстный фильтр, чтобы по алиасу подгружать ноду и переопределять заголовок. Можно конечно ещё извратиться и засунуть связанную ноду в блок, который будет отображаться под основным контентом. А можно просто за 5 минут установить и настроить те два модуля и радоваться жизни.

Аватар пользователя Никки Никки 6 мая 2015 в 12:58

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

Аватар пользователя gun_dose gun_dose 6 мая 2015 в 20:52

Связь указывает не на поле, а на сущность. В вашем примере связь должна быть автор. И тогда его поля будут доступны для выбора из списка там, где мы указываем, какие поля выводить. Только это если вьюс выводит поля, а не тизеры.