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

Может ли кто-нибудь предложить подходящий способ сделать это или даже дать мне рабочее решение для этого?


person Moushrat    schedule 12.06.2015    source источник


Ответы (2)


Загрузите узел, содержащий нужное вам поле, с помощью функции node_load () и передайте этот узел в качестве параметра. Для этого вам нужен идентификатор узла, который можно жестко запрограммировать или получить с помощью представления, собрать из URL-адреса, cookie, сеанса или чего-то в этом роде.

person MilanG    schedule 12.06.2015

Добавьте функцию hook_preprocess_page(&$var) и в этой функции получите данные объекта узла, используйте модуль dsm для доступа к объекту узла и полю. затем назначьте это поле такой переменной $vars['new_var'] = $your_field

Очистите кеш и перестройте реестр тем и распечатайте эту переменную в page.tpl.php как <?php print $new_var; ?>

person Shabir A.    schedule 12.06.2015