4 page.tpl.php
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
page.tpl.php
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
page.tpl.php
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
html.tpl.php的模板建议,是由theme_get_suggestions设置的,在预处理函数template_preprocess_html中,对应的代码:
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
Drupal自带的默认html.tpl.php模板文件,位于modules\system目录下面:
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
在单个Drupal页面中, 这个模板用来显示基本HTML结构的。它包含以下可用变量:
第6章 Drupal核心模板文件
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
我们在前面通过修改Drupal核心代码,实现了在主题层也能覆写breadcrumb.tpl.php这个模版文件。在实现这个功能以后,我就想到了,其实不修改核心代码,也能够在我们的模块中实现这个功能。就是说,我们把_theme_build_registry里面的基主题、主题引擎、主题的_theme_process_registry的调用,在breadcrumb2_theme_registry_alter里面,重新调用执行一遍就可以了。
开始的时候,我是这样写的代码:
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
前面,我们讲了如何使用drupal_static,新的问题出来了,如果在一个HTTP内,如果我们更新的对应的面包屑对象,更新了之后,再去调用breadcrumb2_load_by_path函数,有可能返回的还是最初的面包屑对象。所以我们有必要在保存面包屑对象的时候,也修改一下这个静态缓存。
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
我们在阅读Drupal核心代码的时候,可以经常碰到这个函数drupal_static,它的作用是,能够将一个变量缓存起来,在同一HTTP请求期间,重复调用这个变量,不会计算第二次。就是说,如果有这么一个变量,它在一个HTTP请求内,可以被调用多次的话,我们可以只计算一次,然后使用drupal_static将它缓存起来。
我想为breadcrumb2_load_by_path函数,使用drupal_static。这是没有使用drupal_static的代码: