Как получить значение поля из другого файла TPL в файле template.php для drupal 7?
Мне нужно получить значения полей в 1 page.tpl.php на моем template.php.
Обычный способ получить поле в page.tpl.php:$field = field_get_items('node', $node, 'field_name');
$field_name = field_view_value('node', $node, 'field_name', $field[0]);
Page.tpl.php обычно находится в каталоге "sites\all\themes\themename\templates"
Файл template.php находится в каталоге "sites\all\themes\themename"
Я должен получить значения полей в page.tpl.php в моей функции, расположенной в template.php.
Кто-нибудь может предложить подходящий способ сделать это или даже дать мне рабочее решение для этого?
2 ответа
Сначала загрузите узел, содержащий нужное вам поле, с помощью функции node_load() и передайте этот узел в качестве параметра. Для этого вам нужен идентификатор узла, который может быть жестко запрограммирован или получен с помощью view, собранным из URL, cookie, сессии или чего-то в этом роде.
Добавить функцию hook_preprocess_page(&$var)
и в функции получить данные объекта узла используйте модуль dsm для доступа к объекту и полю узла. затем присвойте это поле такой переменной $vars['new_var'] = $your_field
Очистите кеш и перестройте реестр тем и напечатайте эту переменную в файле page.tpl.php, как <?php print $new_var; ?>