diff --git a/views/views_bulk_operations_handler_field_operations.inc b/views/views_bulk_operations_handler_field_operations.inc index 007233e..bf47c12 100644 --- a/views/views_bulk_operations_handler_field_operations.inc +++ b/views/views_bulk_operations_handler_field_operations.inc @@ -300,4 +300,5 @@ class views_bulk_operations_handler_field_operations extends views_handler_field public function get_entity_type() { return $this->entity_type; } + } diff --git a/views_bulk_operations.module b/views_bulk_operations.module index b25b661..04090da 100644 --- a/views_bulk_operations.module +++ b/views_bulk_operations.module @@ -864,10 +864,16 @@ function views_bulk_operations_adjust_selection($queue_name, $operation, $option } $vbo = _views_bulk_operations_get_field($view); + + // Call views_handler_field_entity::pre_render() to get the entities. + $vbo->pre_render($view->result); + $rows = array(); foreach ($view->result as $row_index => $result) { + // Set the row index. + $view->row_index = $row_index; $rows[$row_index] = array( - 'entity_id' => $vbo->get_value($result), + 'entity_id' => $vbo->get_value($result, $vbo->real_field), 'views_row' => array(), 'position' => array( 'current' => ++$context['sandbox']['progress'], @@ -1089,12 +1095,22 @@ function views_bulk_operations_direct_adjust(&$selection, $vbo) { if ($field_name != $vbo->options['id']) { unset($view->field[$field_name]); } + else { + // Get hold of the new VBO field. + $new_vbo = $view->field[$field_name]; + } } $view->execute($vbo->view->current_display); + + // Call views_handler_field_entity::pre_render() to get the entities. + $new_vbo->pre_render($view->result); + $results = array(); foreach ($view->result as $row_index => $result) { - $results[$row_index] = $vbo->get_value($result); + // Set the row index. + $view->row_index = $row_index; + $results[$row_index] = $new_vbo->get_value($result, $new_vbo->real_field); } $selection = $results; }