diff options
Diffstat (limited to 'sites/all/modules/views_bulk_operations/actions/delete.action.inc')
-rw-r--r-- | sites/all/modules/views_bulk_operations/actions/delete.action.inc | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/sites/all/modules/views_bulk_operations/actions/delete.action.inc b/sites/all/modules/views_bulk_operations/actions/delete.action.inc new file mode 100644 index 000000000..52c72d2fb --- /dev/null +++ b/sites/all/modules/views_bulk_operations/actions/delete.action.inc @@ -0,0 +1,38 @@ +<?php + +/** + * @file + * Implements a generic entity delete action. Uses Entity API if available. + */ + +function views_bulk_operations_delete_action_info() { + return array( + 'views_bulk_operations_delete_item' => array( + 'type' => 'entity', + 'label' => t('Delete item'), + 'configurable' => FALSE, + 'behavior' => array('deletes_property'), + 'triggers' => array('any'), + ), + 'views_bulk_operations_delete_revision' => array( + 'type' => 'entity', + 'label' => t('Delete revision'), + 'configurable' => FALSE, + 'behavior' => array('deletes_property'), + 'triggers' => array('any'), + ), + ); +} + +function views_bulk_operations_delete_item($entity, $context) { + $info = entity_get_info($context['entity_type']); + $entity_id = $entity->{$info['entity keys']['id']}; + + entity_delete($context['entity_type'], $entity_id); +} + +function views_bulk_operations_delete_revision($entity, $context) { + $info = entity_get_info($context['entity_type']); + $revision_id = $entity->{$info['entity keys']['revision']}; + entity_revision_delete($context['entity_type'], $revision_id); +} |