Как получить значение поля из другого файла 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; ?>

Другие вопросы по тегам