第4章 集成上下文链接

admin 的头像
Submitted by admin on 星期四, 2015-09-17 09:19

作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
其实我一直有一个这样的想法,当我决定为每个页面创建一个面包屑对象的时候,就有了这样的想法,在面包屑这片内容上面输出一个上下文链接,可以方便的添加、配置面包屑:

Drupal版本:

13 总结

admin 的头像
Submitted by admin on 星期四, 2015-09-17 09:18

作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
通过本章的学习,我们实现了:

Drupal版本:

12 实现hook_rules_file_info

admin 的头像
Submitted by admin on 星期四, 2015-09-17 08:55

作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
这个其实是一个很小的问题了,我在阅读rules的相关代码的时候,注意到,很多地方实现了这个钩子。此外部分第三方模块也实现了这个钩子函数,比如views_rules这个模块,它是这样实现的:

Drupal版本:

11 为Rules自定义条件

admin 的头像
Submitted by admin on 星期四, 2015-09-17 08:54

​作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
后来,我还想到了这样的问题,假如用户安装了breadcrumb2模块,他在安装这个模块以前添加的节点怎么办?一种办法就是使用VBO,批处理一下,每个节点重新保存一边,这样就会为其生成对应的面包屑对象;还有一个办法,就是当用户浏览这个节点的时候,如果此时面包屑对象没有创建的情况下,我们为其创建一个。这里的“此时面包屑对象没有创建的情况下”,就是Rules里面的一个需要自定义的条件。

Drupal版本:

10 将rules规则导出到代码里面

admin 的头像
Submitted by admin on 星期四, 2015-09-17 08:52

​作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
我们实现了在新建节点时,使用rules自动创建一个面包屑对象。现在我们将这个规则克隆一下,将克隆后的名字改为“breadcrumb for node update”,并保存。接着,添加一个新的事件“After updating existing content”(在更新已有内容之后),删除原来的事件“After saving new content”(新建内容之后)。这样当系统更新节点时,我们也会自动的更新对应的面包屑对象。
接着,新建一个规则“breadcrumb for term create”,事件为“After saving a new term”,配置好的动作为:

Drupal版本:

9 实现以分类层级结构为基础的面包屑

admin 的头像
Submitted by admin on 星期四, 2015-09-17 08:47

​作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
如果你对Rules比较熟悉的话,现在我们就可以点击“Add loop”这个链接,添加一个循环,我们根据lightest_term,就可以自动的获取到它所有的父术语,Rules核心就自带了这个功能。

Drupal版本:

8自定义动作:获取节点上面的第一个分类术语

admin 的头像
Submitted by admin on 星期四, 2015-09-17 07:45

作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
我们前面实现了一个动作,通过追加面包屑链接,我们可以构建完整的面包屑对象了。做到这里,就基本上可以满足大部分实际需要了,只不过配置的过程比较麻烦一些,可能需要为每个内容类型分别配置面包屑。而我们的目标是建立基于分类的面包屑,而且构建起来,通用一些,这样模块的易用性就更高一些。所以我们这里借鉴一下Custom breadcrumbs里面的部分代码,从一个节点上面智能的获取第一个分类术语,然后以它为基础,构建面包屑。

Drupal版本:

7 按照路径更新面包屑

admin 的头像
Submitted by admin on 星期四, 2015-09-17 03:41

​作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
一个新的问题出现了,如果当我们更新一个节点时,也使用rules更新我们的面包屑,此时由于我们通过rules设置的面包屑并不带有bid,所以默认只会新建。

Drupal版本:

页面

Subscribe to Think in Drupal RSS