aboutsummaryrefslogtreecommitdiff
path: root/mod/thewire/actions
diff options
context:
space:
mode:
Diffstat (limited to 'mod/thewire/actions')
-rw-r--r--mod/thewire/actions/add.php47
-rw-r--r--mod/thewire/actions/delete.php63
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);
+}