1 html.tpl.php

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

作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
在单个Drupal页面中, 这个模板用来显示基本HTML结构的。它包含以下可用变量:

Drupal版本:

7 不修改Drupal核心代码

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

​作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
我们在前面通过修改Drupal核心代码,实现了在主题层也能覆写breadcrumb.tpl.php这个模版文件。在实现这个功能以后,我就想到了,其实不修改核心代码,也能够在我们的模块中实现这个功能。就是说,我们把_theme_build_registry里面的基主题、主题引擎、主题的_theme_process_registry的调用,在breadcrumb2_theme_registry_alter里面,重新调用执行一遍就可以了。
开始的时候,我是这样写的代码:

Drupal版本:

6 在保存面包屑时,更新对应的静态缓存

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

​作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
前面,我们讲了如何使用drupal_static,新的问题出来了,如果在一个HTTP内,如果我们更新的对应的面包屑对象,更新了之后,再去调用breadcrumb2_load_by_path函数,有可能返回的还是最初的面包屑对象。所以我们有必要在保存面包屑对象的时候,也修改一下这个静态缓存。

Drupal版本:

5 drupal_static

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

作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
我们在阅读Drupal核心代码的时候,可以经常碰到这个函数drupal_static,它的作用是,能够将一个变量缓存起来,在同一HTTP请求期间,重复调用这个变量,不会计算第二次。就是说,如果有这么一个变量,它在一个HTTP请求内,可以被调用多次的话,我们可以只计算一次,然后使用drupal_static将它缓存起来。
我想为breadcrumb2_load_by_path函数,使用drupal_static。这是没有使用drupal_static的代码:

Drupal版本:

3 template_preprocess_breadcrumb?

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

作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
我们前面忘记介绍了一点,就是什么时候改用template_preprocess_breadcrumb了,以前我们都是用的breadcrumb2_preprocess_breadcrumb,在调试breadcrumb.tpl.php无法在当前主题下面覆写的时候,我就把它改过来了。

Drupal版本:

2 添加模板建议

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

作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
好吧,关于breadcrumb.tpl.php在当前主题下面的覆写,我们先介绍到这里。我们已经找到了一个解决办法。现在我们来看另外一个问题,我们知道page.tpl.php它是有模板建议的,而我们的breadcrumb.tpl.php现在还没有这个功能,现在就为它添加模板建议。

Drupal版本:

页面

Subscribe to Think in Drupal RSS