Помогите вывести поле в ноду из связанного типа материала (reference)?

Аватар пользователя tehfoxen tehfoxen 10 июня 2020 в 22:27

Есть тип материала, к которому привязан через reference другой тип материала. Необходимо вывести программно в ноду текущего материала поле image из привязанного типа материала. Пробовали следующее

<?php $nid node_load($team_member);
$output field_view_value('node'$nid'field_image'$image[0], array(
       
'label' => 'hidden',
       
'type' => 'image',
       
'settings' => array(
              
'image_style' => 'avatar_220x220',
      ),
));
?>

Не работает.Что не так делаю? $team_member - это машинное имя привязанного материала.

Комментарии

Аватар пользователя OldWarrior OldWarrior 11 июня 2020 в 20:42

Вы опять смешиваете мухи и котлеты.
Вам правильно выше указали, загрузить можно только ноду по ID.

Аватар пользователя tehfoxen tehfoxen 11 июня 2020 в 21:04

мне просто нужно другое. Подскажите, в какое направление смотреть. мне необходимо вывести поле в шаблоне ноды из другого типа материала. Этот материал привязан к этот ноде через reference. В этом материала много нод, а не одна.

Аватар пользователя OldWarrior OldWarrior 12 июня 2020 в 9:52

Раз уж на то пошло, то давайте таки по порядку.

Во-первых,

tehfoxen wrote: вывести поле в шаблоне ноды

вместе с

tehfoxen wrote: из другого типа материала

совсем не по уставу. Долго рассказывать почему, но не принято делать относительно сложную обработку в шаблонах - на то есть preprocess-функции. Конечно, в некоторых случаях (как очень временное решение) на это можно закрыть глаза, но это не должно быть постоянной практикой. Просто вы уже не в первый раз просите помочь именно с выводом чего-то там из шаблонов.

Во-вторых, тип материала в вашем случае не имеет никакого значения. Достаточно знать ID ноды и ID поля изображения внутри неё, чтобы заработала конструкция field_view_value('node', $nid, 'field_image', ...).

Если вся проблема сводится к тому, чтобы получить $nid из

tehfoxen wrote:...через reference

то вы забыли самое главное: сообщить почтенной публике ID поля типа node_reference

В третьих, видимо, здесь таким загадочным образом подразумевается множественное (multiple values) поле типа node_reference (эх, мне бы медаль за догадливость):

tehfoxen wrote:...В этом материала много нод, а не одна.

И если это так, то ответ на ваш вопрос

tehfoxen wrote: Подскажите, в какое направление смотреть.

напрашивается сам собой: смотрите на аналог с загрузкой картинки из множественного поля термина (да-да, из ответа на вопрос, который вы задавали ранее). Только грузить вы в этом случае будете не термин, а ноду.

Пожалуй, ещё намекну: у терминов - [tid], у reference - [target_id]
И ещё намёк: var_dump(), print_r() ... etc.

---
PS. Дальше намекать некуда, поскольку останется уже только написать за вас сам код.