欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

drupal7 d7 Views Bulk Operations (VBO) Bulk operations: content 内容 有大用 有大大用 有大大用

shiping1 的头像

 


下面的有大用

Drupal 7 Views Bulk Operations (VBO)

主标签

标签: 
Drupal 7 Views Bulk Operations (VBO)

Views Bulk Operations (VBO) 模块可以批量操作Views中的数据。比如修改、删除、或者执行PHP代码. 

支持以下批量操作

  1. Change the author of content   修改内容作者

  2. Delete item                            批量删除

  3. Delete revision                       删除Revision

  4. Execute arbitrary PHP script   执行PHP脚本

  5. Make content sticky               内容置顶

  6. Make content unsticky           内容取消置顶

  7. Modify entity values                修改内容值

  8. Pass ids as arguments to a page  传递参数到内容页面

  9. Promote content to front page    推荐到首页

  10. Publish content                   发布内容

  11. Remove content from front page  取消推荐首页

  12. Save content                     保存内容

  13. Send e-mail                       发送邮件

  14. Unpublish content               取消发布

  15. Unpublish content containing keyword(s)  取消包含某些关键词的内容

 

每一个操作有三个选项:

  1. Enqueue the operation instead of executing it directly 排队执行

  2. Skip confirmation step  当点击执行以后跳过确定的按钮

  3. Override label               覆盖默认的Lable

 
安装与配置: 
模块案例: 

1. 创建一个Views, 为了方便我使用Table的方式显示

2. 添加一个VBO字段

2. 基本配置, 一般保持默认

3. 批量操作动作, 这边我选几个常用作为案例

批量修改作者

保存以后进入到内容展示页面, 可以看到有以前内容

当我点击全选以后我可以选择所有的内容。因为我有5页。 我想选中5面里面的所有内容

现在再去内容页面,可以看到所有的内容的作者都被修改了

 

批量执行PHP

批量执行PHP无疑是最好用的功能。经常我们可以需要修改内容的一些特定信息。只能使用PHP

这边会提供变量 $entity ,当前对象,如果是node则是  node_load的数据。

最后再进入到内容管理页面查看(admin/content),已经修改成功

来自 http://www.drupalmodule.cn/project/views_bulk_operations/7.x


介绍

drupal通常用views制作列表,列表也应该能实现某些操作,例如删除、审批等,并且应该是批量进行的,VBO的存在就是为了实现views批量操作功能。事实上,drupal把操作统称为action,而VBO的原理仅仅是把views与action关联起来。

 

使用步骤(来源于官方)

1. Create a View.
2. Add a "Bulk operations" field if available
3. Configure the field. There's a "Views Bulk Operations" fieldset where the actions visible to the user are selected.
4. Go to the View page. VBO functionality should be present.

 

给VBO添加更多的操作

由于VBO的操作实现依赖于action,所以声明新的action就等于为VBO添加新的操作。
假设开发一个delete node的action,mymodule.module代码大致如下:

复制代码
/**
 * Implementation of hook_action_info().
 */
function mymodule_action_info() {
  return array(
      'mymodule_node_delete_action' => array(
          'label' => t('Delete node'),
          'type' => 'node', // 限定的内容类型
          'aggregate' => TRUE, // 如果为TRUE,即为批量操作
          'configurable' => FALSE,
          'triggers' => array('any'), // 触发器限定
      ),
  );
}

/**
 * Implementation of a Drupal action.
 * Passes selected ids as arguments to a view.
 */
function mymodule_node_delete_action($entities, $context = array()) {
  $nids = array_keys($entities);
  node_delete_multiple($nids);
}
复制代码

然后在views中的"Bulk operations" field就可以看到delete node这个action。

来自 http://www.cnblogs.com/catcat811/p/3329312.html



搞不懂,下面几个不选,修改才起作用,否则修无效

image.png

普通分类: