2012-11-14 120 views
0

自从我开始使用drupal后,一直困扰着我的是PHP引擎如何知道您在模板文件中引用了哪个$ node/$ classes/$属性。这些变量永远不会被声明为全局变量,那么PHP引擎如何找出您所指的是什么“$ node”?Drupal模板变量

回答

1

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!'; 
} 

在此之后,你可以参考$hello在您的node.tpl.php文件中。

+0

明白了。感谢您花时间解释。 – africanherbsman

0

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