aboutsummaryrefslogtreecommitdiff
path: root/mod/thewire/actions/delete.php
diff options
context:
space:
mode:
Diffstat (limited to 'mod/thewire/actions/delete.php')
-rw-r--r--mod/thewire/actions/delete.php39
1 files changed, 39 insertions, 0 deletions
diff --git a/mod/thewire/actions/delete.php b/mod/thewire/actions/delete.php
new file mode 100644
index 000000000..38355d25e
--- /dev/null
+++ b/mod/thewire/actions/delete.php
@@ -0,0 +1,39 @@
+<?php
+/**
+ * Action for deleting a wire post
+ *
+ */
+
+// Get input data
+$guid = (int) get_input('guid');
+
+// Make sure we actually have permission to edit
+$thewire = get_entity($guid);
+if ($thewire->getSubtype() == "thewire" && $thewire->canEdit()) {
+
+ // unset reply metadata on children
+ $children = elgg_get_entities_from_relationship(array(
+ 'relationship' => 'parent',
+ 'relationship_guid' => $post_guid,
+ 'inverse_relationship' => true,
+ ));
+ if ($children) {
+ foreach ($children as $child) {
+ $child->reply = false;
+ }
+ }
+
+ // Get owning user
+ $owner = get_entity($thewire->getOwnerGUID());
+
+ // Delete it
+ $rowsaffected = $thewire->delete();
+ if ($rowsaffected > 0) {
+ // Success message
+ system_message(elgg_echo("thewire:deleted"));
+ } else {
+ register_error(elgg_echo("thewire:notdeleted"));
+ }
+
+ forward("thewire/owner/" . $owner->username);
+}