1 html.tpl.php
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
在单个Drupal页面中, 这个模板用来显示基本HTML结构的。它包含以下可用变量:
作者:老葛,北京亚艾元软件有限责任公司,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的代码:
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
我们其实在前面已经讲过了,如何新增一个变量。不过我们在Drupal核心的模板文件里面,经常看到这样的代码:
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
我们前面忘记介绍了一点,就是什么时候改用template_preprocess_breadcrumb了,以前我们都是用的breadcrumb2_preprocess_breadcrumb,在调试breadcrumb.tpl.php无法在当前主题下面覆写的时候,我就把它改过来了。
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
好吧,关于breadcrumb.tpl.php在当前主题下面的覆写,我们先介绍到这里。我们已经找到了一个解决办法。现在我们来看另外一个问题,我们知道page.tpl.php它是有模板建议的,而我们的breadcrumb.tpl.php现在还没有这个功能,现在就为它添加模板建议。