You are here

3VBO

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

作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com

好像我们在前面并没有介绍过VBO,这是一个我在项目中,经常使用的模块,它的全称为Views Bulk Operations,翻译过来就是基于Views的批量操作。我们以批量删除某一类型的节点为例,看看VBO是如何实现这样的功能的。我们还在bookstore里面操作。

我们创建一个视图,初始配置如下:

图片1.png 

点击保存并继续按钮,在字段的添加对话框里面,找到“Bulk operations: 内容

图片2.png 

选中这个字段,点击应用按钮,该字段的配置选项很多,我们看与批处理相关的:

图片3.png 

这里我们采用默认配置就可以了,前面两个选项的意思是,采用下拉选择框的形式,还是逐个采用按钮的形式,来显示操作。Enable "Select all items on all pages",表示允许选中所有页面的全部条目;Force single,表示强制单选;Display processing result,表示是否显示处理结果的相关消息;Number of entities to load at once,就是一次加载多少个实体,也就是我们在批处理中,一次处理多少条记录。

再往下的配置,就是可选的操作:

图片4.png 

除了我们这里想要的删除操作以外,这里包括更多的动作可供选择,比如发布内容、使内容置顶、发送邮件、修改实体的值,等等,我们根据需要还可以编写自己的操作。VBO支持以下操作,系统自带的Action(动作),VBO定义的动作,RULES定义的动作。

我们这里选中,第一个删除条目Delete item (views_bulk_operations_delete_item)),其它采用默认配置即可。此时会显示出来三个新的复选框:

图片5.png 

Enqueue the operation instead of executing it directly,表示采用队列的形式,而不是直接执行;Skip confirmation step,表示跳过确认步骤;Override label,用来覆写标签。我们这里采用默认的即可。保存。

接着,我们将“Bulk operations: 内容 (内容)”调整到内容标题的上面:

图片6.png 

最后,添加一个内容类型过滤器,并将其暴露(exposed)出来:

图片7.png 

保存视图,现在访问页面,我们就实现了和batchdelete模块同样的功能:

图片8.png 

配置起来非常简单,所以,当我们需要批量操作Drupal系统里面的各种数据时,我们应该首先来看一看,VBO是否能够满足我们的需求,如果不能满足的话,再考虑Batch API的形式。其实VBO本身采用的也是Batch API的形式。我们有关批处理的,就介绍到这里。写完才发现,前面在第三集里面已经简单的介绍过VBO了。

 



Drupal版本: