summaryrefslogtreecommitdiff
path: root/sites/all/modules/views_bulk_operations/actions/delete.action.inc
diff options
context:
space:
mode:
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.inc38
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);
+}