Доступ к определенному полю ноды в шаблоне node.tpl.php

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

Аватар пользователя roman-yrv roman-yrv 8 августа 2012 в 13:06

Добрый день !

Есть шаблон node--[тип узла].tpl.php.
И есть в нём переменная $content.

Такой вопрос.
Каким образом можно получить доступ к определенному полю этого узла через переменную $content ?

Например, есть поле body (где текст) или еще какое-нибудь ССК-поле. И его надо разместить где-то в определенном месте.

А то получается, что функция render($content) выводит всё содержимое узла одно за другим, а это не всегда удобно.

Или хотя бы на каком уровне устанавливать порядок размещения информации в узле ?

Комментарии

Аватар пользователя roman-yrv roman-yrv 8 августа 2012 в 18:24

Я не совсем то имел в виду.

Например, у меня есть дополнительное поле типа date из модуля Date.

Если я просто напишу render($content['field_date']), то я получу следующее:

Дата новости:
среда, August 8, 2012

Если я напишу просто print $content['field_date'], то окажется, что этот элемент в свою очередь представляет собой некий массив.

А как вот получить именно само значение этого поля, чтобы в данном случае можно было вычленить из него год, месяц, день и т.д ?

Аватар пользователя roman-yrv roman-yrv 8 августа 2012 в 19:32

Понятно, спасибо большое !

А скажите пожалуйста, если я в файле node-[тип узла].tpl.php буду работать с данными следующим образом:

$dt=$node->field_date['und'][0]['value'];
...
// Далее из $dt вычленяю год, месяц, день и т.д. и вывожу их где-то в шаблоне

Такой подход не будет являться каким-то логическим нарушением формирования страницы Друпала ?
То есть, получается, я работаю в обход массива $content.

Или более правильно будет предварительно вычислить эту информацию где-то до запуска файла шаблона node-[тип узла].tpl.php, чтобы
там уже определить значения $content['aday'], $content['amonth'] и $content['ayear'],
а в файле node-[тип узла].tpl.php просто эти значения выводить ?

P.S. Прошу прощения за назойливость, в Друпале я пока еще начинающий Smile