Вывод отдельного поля в Drupal 7

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

Аватар пользователя wolfphantom wolfphantom 8 апреля 2011 в 9:24

Есть вопрос.
В шестом Друпале когда мне надо было темизировать node.tpl я часто пользовался выводом значений cck полей следующим образом:

<?php if ($node->field_name[0]['value']!=''): ?>
 <?php print $node->field_name[0]['view'] ?>
<?php endif; ?>

но вот теперь перешел на Друпал 7 и возникла проблемма, этот код там не работает.
Может кто знает как это реализовывается на семерке?

з.ы.
Заранее очень благодарен за помощь.

Комментарии

Аватар пользователя wolfphantom wolfphantom 11 апреля 2011 в 15:50

"xxandeadxx" wrote:
$entity->{$field_name}[$langcode][$delta][$column_name]

Может я не доконца понял что такое $delta и $column_name или что другое, пробовал следующие варианты:

<?php $entity->{field_koordinaty}['ru'][0]['value'?>
<?php $entity
->field_koordinaty['ru'][0]['value'?>
<?php $entity
->field_koordinaty[0]['value'?>
<?php 
echo $entity->field_koordinaty['ru'][0]['value'?>
<?php 
echo $entity->{field_koordinaty}['ru'][0]['value'?>

но не сработало. Вполне допускаю что все варианты неправильно понял и написал так как php знаю %15 (тоесть практически незнаю совсем). Но всёравно большое спасибо.

Зато покопался в инете и нашел другой вариант и он сработал, если вдруг кому интересно:
<?php echo render($node->field_name['ru'][0]['value']); ?>
где field_name это имя поля

Аватар пользователя olk olk 11 апреля 2011 в 17:43

На самом деле в 7-ке появился замечательный механизм срытия/вывода сск полей прямо из переменной $content
например:


<?php 
print hide($content['field_myfield']); 
print 
render($content); 
print 
render($content['field_myfield']); 
?>
Аватар пользователя wolfphantom wolfphantom 25 апреля 2011 в 13:23

"xxandeadxx" wrote:
$node->field_koordinaty['ru'][0]['value']
этот вариант у меня не заработал Sad

"olk" wrote:
<?php print render($content['field_myfield']); ?>

а это действительно очень красивый вариант решения данной задачи.

Появилась еще одна интересная проблемка:
необходимо вывести поле "Ссылка на термин", но чтобы оно было не обернуто в ul li.
Найденный мной вариант

"wolfphantom" wrote:
<?php echo render($node->field_name['ru'][0]['value']); ?>

для поля "Ссылка на термин" пришлось подредактировать: вместо 'value' поставить 'name', но все равно вывод получается списком.

А вариант

"olk" wrote:
<?php print render($content['field_myfield']); ?>

хоть и красивый и очень мне нравится но помоему не поможет решить эту проблемму.

Может кто знает как это реализовать?

Аватар пользователя Lopar Lopar 12 февраля 2012 в 16:03

А можно как-то приписать своё значение после введённого? Если просто добавить его в нужное место через .="addthis"; то добавляемая строка вылетает из всех дивов, в которые обёрнуто значение поля и выпиливает всю верстку.

Аватар пользователя roman-yrv roman-yrv 21 марта 2013 в 10:39

Можно воспользоваться модулем devel и в коде написать следующее:

kpr($content);

и будут отображены все поля и элементы, входящие в $content;