0

自从我开始使用 drupal 以来,一直困扰着我的事情是 php 引擎如何准确地知道您在模板文件中指的是哪个 $node/$classes/$attributes。这些变量永远不会被声明为全局变量,那么 php 引擎如何确定您所指的“$node”是什么?

4

2 回答 2

1

请参阅http://drupal.org/node/223430其中指出

预处理器的主要作用是设置要放置在模板 ( .tpl.php) 文件中的变量。从 Drupal 7 开始,它们适用于模板和函数,而在 Drupal 6 中,预处理函数仅适用于作为模板实现的主题挂钩。普通主题函数不与预处理器交互。

查看API中提到的template_preprocess*和。这些函数向您展示了设置您可以在节点模板中访问的各种变量的代码。template_process

以类似的方式,您还可以在主题函数中添加自己的预处理代码,以添加到 tpl.php 文件中可用的变量,如下所示:

/**
 * Implements hook_preprocess_HOOK().
 */
function MY_MODULE_preprocess_node(&$variables) {
   $variables['hello'] = 'Look at me now!';
}

在此之后,您可以$hellonode.tpl.php文件中引用。

于 2012-11-14T21:25:01.363 回答
0

这些变量由 Drupal 的模板引擎设置。

于 2012-11-14T21:09:57.400 回答