You are here

function _views_bulk_operations_get_selection_full in Views Bulk Operations (VBO) 6

Compute the actual selected objects based on the settings.

2 calls to _views_bulk_operations_get_selection_full()
views_bulk_operations_form in ./views_bulk_operations.module
Form implementation for main VBO multistep form.
views_bulk_operations_form_submit in ./views_bulk_operations.module
Form submit function for views_bulk_operations_form().

File

./views_bulk_operations.module, line 808
Allows operations to be performed on items selected in a view.

Code

function _views_bulk_operations_get_selection_full($plugin, $form_state) {

  // Get the objects from the view if selectall was chosen.
  $view = $plugin->view;
  if ($form_state['storage']['selectall']) {
    $view_copy = views_get_view($view->name);
    $view_copy
      ->set_exposed_input($view->exposed_input);
    $view_copy
      ->set_arguments($view->args);
    $view_copy
      ->set_items_per_page(0);
    $view_copy->skip_render = TRUE;

    // signal our plugin to skip the rendering
    $view_copy
      ->render($view->current_display);
    $objects = array();
    foreach ($view_copy->result as $row) {
      $objects[_views_bulk_operations_hash_object($row, $view_copy)] = $row;
    }
    $view_copy
      ->destroy();
    $objects = array_diff_key($objects, $form_state['storage']['selection']);
  }
  else {
    $objects = $form_state['storage']['selection'];
  }
  return $objects;
}