diff options
Diffstat (limited to 'mod/thewire/actions')
| -rw-r--r-- | mod/thewire/actions/add.php | 47 | ||||
| -rw-r--r-- | mod/thewire/actions/delete.php | 63 |
2 files changed, 54 insertions, 56 deletions
diff --git a/mod/thewire/actions/add.php b/mod/thewire/actions/add.php index 181ac55aa..6b3d8d5ba 100644 --- a/mod/thewire/actions/add.php +++ b/mod/thewire/actions/add.php @@ -1,41 +1,34 @@ <?php - /** - * Elgg thewire: add shout action - * - * @package Elggthewire + * Action for adding a wire post + * */ -// Make sure we're logged in (send us to the front page if not) -if (!isloggedin()) forward(); +// don't filter since we strip and filter escapes some characters +$body = get_input('body', '', false); -// Get input data -$body = get_input('new_post_textarea'); -$access_id = (int)get_default_access(); -if ($access_id == ACCESS_PRIVATE) { - $access_id = ACCESS_LOGGED_IN; // Private wire messages are pointless -} -$method = get_input('method'); -$parent = (int)get_input('parent', 0); -if (!$parent) { - $parent = 0; -} -// Make sure the body isn't blank +$access_id = ACCESS_PUBLIC; +$method = 'site'; +$parent_guid = (int) get_input('parent_guid'); + +// make sure the post isn't blank if (empty($body)) { register_error(elgg_echo("thewire:blank")); - forward("mod/thewire/add.php"); + forward(REFERER); } -if (!thewire_save_post($body, $access_id, $parent, $method)) { +$guid = thewire_save_post($body, elgg_get_logged_in_user_guid(), $access_id, $parent_guid, $method); +if (!$guid) { register_error(elgg_echo("thewire:error")); - forward("mod/thewire/add.php"); + forward(REFERER); } +// Send response to original poster if not already registered to receive notification +if ($parent_guid) { + thewire_send_response_notification($guid, $parent_guid, $user); + $parent = get_entity($parent_guid); + forward("thewire/thread/$parent->wire_thread"); +} -// Success message system_message(elgg_echo("thewire:posted")); - -// Forward -forward("mod/thewire/everyone.php"); - -?> +forward(REFERER); diff --git a/mod/thewire/actions/delete.php b/mod/thewire/actions/delete.php index 98b5114cc..38355d25e 100644 --- a/mod/thewire/actions/delete.php +++ b/mod/thewire/actions/delete.php @@ -1,34 +1,39 @@ <?php +/** + * Action for deleting a wire post + * + */ - /** - * Elgg thewire: delete note action - * - * @package ElggTheWire - */ +// Get input data +$guid = (int) get_input('guid'); - // Make sure we're logged in (send us to the front page if not) - if (!isloggedin()) forward(); +// Make sure we actually have permission to edit +$thewire = get_entity($guid); +if ($thewire->getSubtype() == "thewire" && $thewire->canEdit()) { - // Get input data - $guid = (int) get_input('thewirepost'); - - // Make sure we actually have permission to edit - $thewire = get_entity($guid); - if ($thewire->getSubtype() == "thewire" && $thewire->canEdit()) { - - // Get owning user - $owner = get_entity($thewire->getOwner()); - // Delete it! - $rowsaffected = $thewire->delete(); - if ($rowsaffected > 0) { - // Success message - system_message(elgg_echo("thewire:deleted")); - } else { - register_error(elgg_echo("thewire:notdeleted")); - } - // Forward to the main wire page - forward("mod/thewire/?username=" . $owner->username); - + // 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; } - -?>
\ No newline at end of file + } + + // 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); +} |
