Значение поля в чистом виде (без оберток оформления) может понадобиться, например, для подстановки этого значения в строку запроса или для сохранения в глобальную переменную и т.д.
В типовом варианте шаблона node.tpl.php для Drupal7 значения полей выводятся на страницу с помощью кода:
print render($content);
Таким способом выводятся все поля чохом. Перенести расположение некоторых полей вниз страницы позволяет такая конструкция (именно она и используется в оригинале):
<div class="content"<?php print $content_attributes; ?>>
<?php
// Скрываем комментарии и ссылки сейчас, чтобы вывести их позднее
hide($content['comments']);
hide($content['links']);
print render($content);
?>
</div>
// Выводим комментарии и ссылки
<?php print render($content[';links']); ?>
<?php print render($content['comments']); ?>
В последних двух строках на страницу сайта выводятся значения конкретных полей. Но функция render возврашает их в соответствующей обертке html-кода, не говоря уже о том, что внутри этой обертки не само значение, которое мы видим на экране, а массив (array). А для начей задачи, описанной вначале, такой результат совершенно непригоден.
Поэтому, для получения значения поля в ноде используем такой код:
<?php
$fldnm = 'field_имя'; // машинное имя поля (подставить свое), берется из свойств типа материала
$lng = $node->language; // определяем язык (эту строку не изменять)
$rez=$node->{$fldnm}[$lng][0]['value']; // результат
?>
Теперь в переменной $rez искомое значение поля текущей ноды.
Ист. (анг.): http://stackoverflow.com/questions/5066858/reading-node-field-values-in-drupal7-programmatically
Комментарии
Трудясь в рунете необходимо
Трудясь в рунете необходимо знать важное правило, в сети все решают детали.
Мудрые слова, мудрых людей!
Мудрые слова, мудрых людей! Достойный материал.
Большое спасибо, в
Большое спасибо, в дальнейшем буду мониторить