剖析 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