Как вывести программно поле изображения из типа материала?

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

Не получается вывести картинку из типа материала в шаблон ноды. Есть поле изображение в типе материала, где в ноде идет его загрузка. Необходимо вывести это загруженное изображение в ноду. <?php print (file_create_url($node->field_avatar['und'][0]['uri']));?> Так выводит только основной адрес сайта. Как правильно вывести это поле. Спасибо!

Комментарии

Аватар пользователя adano adano 9 июня 2020 в 5:02

Изображение или ссылку?

Если первая картинка нужна в node.tpl, то так:

<?php
print render($content['field_avatar']['0']);
?>
Аватар пользователя iryston iryston 9 июня 2020 в 17:59

Выше верно подсказали, изображение из поля field_avatar выводится именно так.
<?php print render($content['field_avatar'][0]); ?>

Аватар пользователя tehfoxen tehfoxen 9 июня 2020 в 18:09

Но ничего не выводится у меня при этом коде. Выводятся все поля кроме изображения

Аватар пользователя iryston iryston 9 июня 2020 в 18:20

Проверьте
какой темплейт используется при рендере,
тизер/страница,
что имеется в поле и какой у него тип.
Что будет если использовать такой код?

<?php if (empty($content['field_avatar'])): ?>
  <p>Hello World</p>
<?php endif; ?>
Аватар пользователя tehfoxen tehfoxen 9 июня 2020 в 20:51

По коду все выводится. Стало понятно почему поле не выводится. Дело в том, что это поле в связанной сущности, т.е. по сути это поле из другого материала. Этот материал привязан одним полем, но как вывести другое поле из этой сущности?

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

Это видели, но не понятно, как применить Вот так опять же не работает

<?php $wrapper entity_metadata_wrapper('node'$node);
print 
$wrapper->field_avatar->value();?>