drupal template.php - PullRequest
       4

drupal template.php

0 голосов
/ 18 марта 2011

откуда мне знать, какие переменные и объекты можно использовать непосредственно в этом файле (например: $ node, $ term ....) спасибо.

Ответы [ 3 ]

1 голос
/ 18 марта 2011

В template.php

/**
 * Override or insert PHPTemplate variables into the templates.
 */
function phptemplate_preprocess_node(&$vars) {
  _vdump(get_defined_vars(), 1);
}

/**
 * Override or insert PHPTemplate variables into the templates.
 */
function phptemplate_preprocess_page(&$vars) {
  _vdump(get_defined_vars(), 1);
}

И добавить функцию дампа в пользовательский модуль

<code>/*
 * Custom dump function
 *
 * @param $vars
 *   An string or array containing the data.
 * @param $keys
 *   If true6 function will return keys of $vars array
 * @return a dump of $vars as drupal message.
 */
function _vdump($var, $keys = FALSE) {
  if($keys){
    drupal_set_message('<pre>' . print_r(array_keys($var), 1) . '
');} else {drupal_set_message ('
' . print_r($var, 1) . '
');}}
0 голосов
/ 18 марта 2011

В файле template.php таких переменных нет. Вы думаете о $node, $terms, ..., которые вы найдете на page.tpl.php или node.tpl.php?

Если да, эти переменные генерируются в функциях preprocess .

Модули могут реализовать эти хуки для определения новых переменных, которые вы можете напрямую использовать в этих файлах, или template.php также может определять некоторые новые переменные.

Пожалуйста, ознакомьтесь с документацией о препроцессе

0 голосов
/ 18 марта 2011

Полагаю, вы говорите о создании / изменении темы. Вы можете использовать большинство стандартных глобалов Drupal . Вы всегда можете использовать get_defined_vars , чтобы увидеть, были ли определены другие переменные.

...