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版本:

1 无法在当前主题下面覆写breadcrumb.tpl.php

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

作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
如果,我们提供了breadcrumb.tpl.php,但是却无法在当前主题下面覆写的话,这个模板文件的作用就大打折扣了。从发现这个问题以后,我就多次尝试去解决它。首先是借助于Google,有什么技术问题,先问Google。这是我在Google上使用的搜索词“hook_theme_registry_alter template file could not be override”。

Drupal版本:

第5章 Drupal主题系统探索

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

作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
我们前面,已经为Breadcrumb2实现了上下文链接,在里面也提到一个问题,就是将breadcrumb.tpl.php复制到当前主题下面,不起作用的问题。还有一些其它的问题,以及可以改善的地方。

Drupal版本:

10 总结

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

​作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
通过本章的学习,我们成功的实现了为breadcrumb.tpl.php文件添加上下文链接的功能,与此同时,我们还学习了contextual模块的机制,以及如何通过预处理函数为模板文件添加变量 。

Drupal版本:

9 与Panels的兼容问题

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

作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
在一个实际的项目中,面包屑是添加到Panels的窗格里面去的。如果节点页面不使用Panels的话,就正常,使用了Panels,把面包屑放到Panels的窗格里面输出的话,就不正常了。你可以通过这个步骤重现这个问题,在panels的内容页面,为某一个区域添加内容,在弹出的对话框里面,左边选择页面元素(page elements),此时右边就会有面包屑可以添加,添加后,就会出现我们这里所说的问题。

Drupal版本:

页面

Subscribe to Think in Drupal RSS