导航到admin/config/workflow/rules,这个rules的管理界面,需要启用Rules UI模块,才能访问这个页面。没有启用是看不到的。在这里我们点击“Add new rule”(添加一个新的规则)链接,进入页面admin/config/workflow/rules/reaction/add。在对应的事件里面,我们看到,已经有了有关面包屑实体的事件了。
这些事件包括,删除一个面包屑、创建一个新的面包屑之后、更新一个面包屑、在保存面包屑之前、查看面包屑。这些事件,都是Entity API默认提供的。
我们在这里,为Name(规则名字)输入“breadcrumb for node create”,事件选择“After saving new content”(在保存新内容后)。然后保存。这样进入Rules的配置页面admin/config/workflow/rules/reaction/manage/rules_breadcrumb_for_node_create。
我们现在先不加条件,我们添加一个动作,这里的动作很多:
由于,我们要做的事情是创建一个面包屑实体,Entity API模块提供了这样的一个动作“Create a new entity”(创建一个新的实体)。我们尽量利用已有模块提供的功能。所以这里选择这个动作“创建一个新的实体”。
此时会出来一个新的对话框,让我们选择实体类型,我们这里选择Breadcrumb就可以了:
选中之后,点击继续,此时会展开更多的配置选项:
我们创建了一个新的面包屑实体,这个实体需要使用一个变量存储起来,这里就是配置变量的名字的。图中所示,是默认的变量标签和名字,我们将其分别改为“Breadcrumb”和“breadcrumb”,并保存。
接下来,我们需要为这个面包屑设置属性和字段的值了,我们关心的有两个地方,一个是当前页面的路径,另一个就是面包屑链接,我们使用的link字段。先来看路径的设置。
我们需要再添加一个动作,这一次,我们选择使用“Set a data value”这个动作。选中以后是这样的:
在这个数据选择器里面,我们需要指定要修改哪个数据。通过选择,我们得到“breadcrumb:path”,具体的选择过程,自己用鼠标点点就知道了。Rules的这种选择,非常方便。选中,以后,点击继续按钮。
现在我们需要为“breadcrumb:path”指定一个新的值了,在这里面,我们输入“node/[node:nid]”,其中“[node:nid]”是一个替换符,展开下面的置换模式,就可以找到。我们这里把面包屑的路径设置为了当前被保存的节点的路径。
注意,我们动作添加到这里,如果现在去创建一个新的节点的话,系统就会创建一个面包屑对象。并且为我们指定对应的路径。我开始做到这里的时候,还添加了一个动作“Save entity”(保存实体)。用来将我们在前面创建的面包屑实体保存。但是后来经过反复的测试,突然发现,我们不需要“Save entity”这个动作,系统会自动的帮助我们保存面包屑对象。有兴趣的朋友,读到这里可以做一下对比。
此外,我还做过一个尝试,就是继续添加动作“Set a data value”这个动作,只不过这次要设置的数据,我们改为了“breadcrumb:link”,但是link本身是一个数组,不好直接输入。添加后是这个样子的:
我们使用这个链接本身来设置这个链接,就是绕了一个圈,又回到了原点,什么都没有做。我开始的时候曾经尝试过,比如添加一个变量,将这个变量的类型,设置为“List”的形式,然后想一个一个向里面追加链接,这种办法,尝试了,也不起作用。最终我决定,定义自己的一个动作,专门用来向面包屑对象里面追加链接。