diff options
Diffstat (limited to 'mod/thewire/actions')
-rw-r--r-- | mod/thewire/actions/add.php | 74 | ||||
-rw-r--r-- | mod/thewire/actions/delete.php | 73 |
2 files changed, 72 insertions, 75 deletions
diff --git a/mod/thewire/actions/add.php b/mod/thewire/actions/add.php index 04aa2bc82..f32f7e555 100644 --- a/mod/thewire/actions/add.php +++ b/mod/thewire/actions/add.php @@ -1,41 +1,33 @@ -<?php - -/** - * Elgg thewire: add shout action - * - * @package Elggthewire - */ - -// Make sure we're logged in (send us to the front page if not) -if (!elgg_is_logged_in()) forward(); - -// 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 -if (empty($body)) { - register_error(elgg_echo("thewire:blank")); - forward("mod/thewire/add.php"); -} - -if (!thewire_save_post($body, $access_id, $parent, $method)) { - register_error(elgg_echo("thewire:error")); - forward("mod/thewire/add.php"); -} - - -// Success message -system_message(elgg_echo("thewire:posted")); - -// Forward -forward("mod/thewire/everyone.php"); - -?> +<?php
+/**
+ * Action for adding a wire post
+ *
+ */
+
+// Get input data
+$body = get_input('body', '', false); // don't filter since we strip and filter escapes some characters
+$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(REFERER);
+}
+
+$guid = thewire_save_post($body, get_loggedin_userid(), $access_id, $parent_guid, $method);
+if (!$guid) {
+ register_error(elgg_echo("thewire:error"));
+ 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("pg/thewire/thread/$parent->wire_thread");
+}
+
+system_message(elgg_echo("thewire:posted"));
+forward(REFERER);
diff --git a/mod/thewire/actions/delete.php b/mod/thewire/actions/delete.php index 849433e0f..7758b4b03 100644 --- a/mod/thewire/actions/delete.php +++ b/mod/thewire/actions/delete.php @@ -1,34 +1,39 @@ -<?php - - /** - * Elgg thewire: delete note action - * - * @package ElggTheWire - */ - - // Make sure we're logged in (send us to the front page if not) - if (!elgg_is_logged_in()) forward(); - - // 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 = $thewire->getOwnerEntity(); - // 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); - - } - -?>
\ No newline at end of file +<?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->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("pg/thewire/owner/" . $owner->username);
+}
|