跳转到主要内容

剖析 Drupal 6 Theme 系统

1. 系统调用函数theme(),进入theme系统;

2. init_theme()

3. theme_get_registry(),获得theme_registry列表;

4. 遍历theme_registry,选取当前调用的theme单元;

5. 判断该theme单元是否有[‘file’]、[‘path’],有则引用该文件;

6. 如果当前theme存在function,则调用该function;

7. 否则当前theme为template调用。默认渲染函数为theme_render_template(),可以自定义渲染函数和模板文件扩展名。

8. 执行该theme单元的preprocess functions注册函数,根据传进来的变量$variables['template_file']中系统中寻找合适的模板文件,执行渲染函数theme_render_template()。

API

1. hook_theme(),应用于module、theme_engine、theme里,返回theme单元数组;

2. 返回数组的参数:

Array(

‘hook_name’ => array(

‘function’ => ‘’, //调用函数,若省略默认为theme_hook_name;

转载请注明出处:http://www.drupalgarden.cn/node/5