diff --git a/views/views_bulk_operations.views.inc b/views/views_bulk_operations.views.inc index a740ab3..e6c685a 100644 --- a/views/views_bulk_operations.views.inc +++ b/views/views_bulk_operations.views.inc @@ -11,6 +11,7 @@ function views_bulk_operations_views_data_alter(&$data) { 'title' => $data[$info['base table']]['table']['group'], 'group' => t('Bulk operations'), 'help' => t('Provide a checkbox to select the row for bulk operations.'), + 'real field' => $info['entity keys']['id'], 'field' => array( 'handler' => 'views_bulk_operations_handler_field_operations', 'click sortable' => FALSE, diff --git a/views/views_bulk_operations_handler_field_operations.inc b/views/views_bulk_operations_handler_field_operations.inc index bf47c12..89e6df2 100644 --- a/views/views_bulk_operations_handler_field_operations.inc +++ b/views/views_bulk_operations_handler_field_operations.inc @@ -46,6 +46,12 @@ class views_bulk_operations_handler_field_operations extends views_handler_field unset($operation_options['use_queue']); } } + + // Check whether this is a revision. + $table_data = views_fetch_data($this->table); + if (!empty($table_data['table']['revision'])) { + $this->revision = TRUE; + } } function option_definition() { @@ -242,20 +248,19 @@ class views_bulk_operations_handler_field_operations extends views_handler_field // in order to get the base key value (for example, nid for nodes). foreach ($this->view->result as $row_index => $row) { $this->view->row_index = $row_index; - $entity = $this->get_value($row); - list($entity_id, , ) = entity_extract_ids($this->get_entity_type(), $entity); + $id = $this->get_value($row, $this->real_field); if ($this->options['vbo_settings']['force_single']) { $form[$this->options['id']][$row_index] = array( '#type' => 'radio', '#parents' => array($this->options['id']), - '#return_value' => $entity_id, + '#return_value' => $id, ); } else { $form[$this->options['id']][$row_index] = array( '#type' => 'checkbox', - '#return_value' => $entity_id, + '#return_value' => $id, '#default_value' => FALSE, '#attributes' => array('class' => array('vbo-select')), );