You are here

逐步分析theme()函数

在本节中,我们将深入幕后,我们将学习theme()实际是如何工作的。假定当前主题为Drupal的核心主题Bluemarine,并进行了下面的主题调用,让我们逐步分析一下调用的执行路径。

 
theme('node', $node, $teaser, $page)
 
    首先,Drupal通过第一个参数来得知当前是什么东西正被主题化。在这里,它是“node”,所以Drupal将在主题注册表中为“node”查找相应的条目。它找到的注册表条目,和图8-7中所给的类似。
8-7.主题为Bluemarine时,节点的注册表条目
 
    如果注册表路径里有一个文件条目,那么Drupal将为该文件运行include_once(),从而将一些需要的主题函数包含进来,但是在这里,没有这样的条目。
    Drupal将检查这个主题调用是由一个函数处理的,还是由一个模板文件处理面的。如果该调用是由函数负责处理的,Drupal将简单的调用这个函数并返回输出。但是在本次调用中,因为在注册表条目中没有定义函数,所以Drupal将准备一些变量,以将它们传递给一个模板文件。

老葛的Drupal培训班 Think in Drupal

Drupal版本: