diff options
Diffstat (limited to 'mod/thewire/actions/delete.php')
-rw-r--r-- | mod/thewire/actions/delete.php | 39 |
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); +} |