You are here

3 html.tpl.php的模板建议

admin 的头像
Submitted by admin on 星期五, 2015-09-18 06:11

作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com

html.tpl.php的模板建议,是由theme_get_suggestions设置的,在预处理函数template_preprocess_html中,对应的代码:

 

  if ($suggestions = theme_get_suggestions(arg(), 'html')) {

    $variables['theme_hook_suggestions'] = $suggestions;

  }

 

    它的模板建议规则是按照路径来的,路径越具体,优先级越高。我们举个例子,来了解一下模板建议及其优先级问题。假定当前Drupal路径为node/1/edit,那么html.tpl.php有以下模板建议:

   html--node--edit.tpl.php

   html--node--1.tpl.php

   html--node--%.tpl.php

   html--node.tpl.php

 

    当用户访问页面node/1/edit,会使用这里面的哪个模板。Drupal的主题系统,会按照html.tpl.php的模板建议规则,首先检查html--node--edit.tpl.php是否存在,如果存在,就使用该模板文件;如果不存在,会接着检查html--node--1.tpl.php是否存在,如果存在,就使用html--node--1.tpl.php;如果不存在,会接着检查html--node--%.tpl.php是否存在,如果存在,就使用html--node--%.tpl.php;如果不存在,会接着检查html--node.tpl.php是否存在,如果存在,就使用html--node.tpl.php;如果不存在,就会使用主题自带的html.tpl.php文件,如果该主题没有html.tpl.php文件,则会使用Drupal核心自带的默认html.tpl.php文件。

    注意,在$variables['theme_hook_suggestions']对应的数组中,越靠后的模板建议,优先级越高。 


Drupal版本: