drupal template.php

时间:2011-03-18 01:38:46

标签: drupal drupal-6

我怎么知道哪个变量和对象可以直接在这个文件中使用。(例如:$ node,$ term ....)谢谢。

3 个答案:

答案 0 :(得分:1)

在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);
}

并将转储功能添加到自定义模块

/*
 * 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) . '</pre>');
  }
  else {
    drupal_set_message('<pre>' . print_r($var, 1) . '</pre>');
  }
}

答案 1 :(得分:0)

我猜你在谈论创建/修改主题。您可以使用standard Drupal globals的大部分内容。您始终可以使用get_defined_vars查看是否已定义任何其他变量。

答案 2 :(得分:0)

template.php文件中没有这样的变量。 你是否想到在page.tpl.php或node.tpl.php找到的$node$terms,...?

如果是,则在preprocess函数中生成这些变量。

模块可以实现那些钩子来定义你可以直接在那些文件中使用的新变量,或者template.php也可以定义一些新的变量。

请查看有关preprocess

的文档