【发布时间】:2012-11-15 05:25:01
【问题描述】:
自从我开始使用drupal 以来,一直困扰着我的事情是php 引擎如何准确地知道您在模板文件中指的是哪个$node/$classes/$attributes。这些变量永远不会被声明为全局变量,那么 php 引擎如何确定您所指的“$node”是什么??
【问题讨论】:
自从我开始使用drupal 以来,一直困扰着我的事情是php 引擎如何准确地知道您在模板文件中指的是哪个$node/$classes/$attributes。这些变量永远不会被声明为全局变量,那么 php 引擎如何确定您所指的“$node”是什么??
【问题讨论】:
查看http://drupal.org/node/223430 哪些状态
预处理器的主要作用是设置要放置的变量 在模板 (
.tpl.php) 文件中。从 Drupal 7 他们适用于 模板和函数,而在 Drupal 6 中只有预处理函数 适用于作为模板实现的主题挂钩。简单的主题功能 不要与预处理器交互。
查看template_preprocess* 和API 中提到的template_process。这些函数向您展示了设置您可以在节点模板中访问的各种变量的代码。
以类似的方式,您还可以在主题函数中添加自己的预处理代码,以添加到 tpl.php 文件中可用的变量,如下所示:
/**
* Implements hook_preprocess_HOOK().
*/
function MY_MODULE_preprocess_node(&$variables) {
$variables['hello'] = 'Look at me now!';
}
之后,您可以在您的node.tpl.php 文件中引用$hello。
【讨论】:
这些变量由 Drupal 的模板引擎设置。
【讨论】: