diff options
Diffstat (limited to 'mod/thewire/actions')
| -rw-r--r-- | mod/thewire/actions/add.php | 95 | ||||
| -rw-r--r-- | mod/thewire/actions/delete.php | 77 |
2 files changed, 73 insertions, 99 deletions
diff --git a/mod/thewire/actions/add.php b/mod/thewire/actions/add.php index 77f877c3c..6b3d8d5ba 100644 --- a/mod/thewire/actions/add.php +++ b/mod/thewire/actions/add.php @@ -1,61 +1,34 @@ -<?php
-
- /**
- * Elgg thewire: add shout action
- *
- * @package Elggthewire
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider <info@elgg.com>
- * @copyright Curverider Ltd 2008-2009
- * @link http://elgg.org/
- */
-
- // Make sure we're logged in (send us to the front page if not)
- if (!isloggedin()) forward();
-
- // Get input data
- $body = get_input('note');
- $tags = get_input('thewiretags');
- $access_id = get_default_access();
- $location = get_input('location');
- $method = get_input('method');
- $parent = (int)get_input('parent', 0);
- if(!$parent)
- $parent = 0;
-
- // convert the shout body into tags
- $tagarray = filter_string($body);
-
- // Make sure the title / description aren't blank
- if (empty($body)) {
- register_error(elgg_echo("thewire:blank"));
- forward("mod/thewire/add.php");
-
- // Otherwise, save the thewire post
- } else {
-
- if (!thewire_save_post($body, $access_id, $parent, $method)) {
- register_error(elgg_echo("thewire:error"));
- if($location == "activity")
- forward("mod/riverdashboard/");
- else
- forward("mod/thewire/add.php");
- }
-
- // Now let's add tags. We can pass an array directly to the object property! Easy.
- if (is_array($tagarray)) {
- $thewire->tags = $tagarray;
- }
-
- // Success message
- system_message(elgg_echo("thewire:posted"));
-
- // Forward
- if($location == "activity")
- forward("mod/riverdashboard/");
- else
- forward("mod/thewire/everyone.php");
-
- }
-
-?>
\ No newline at end of file +<?php +/** + * Action for adding a wire post + * + */ + +// don't filter since we strip and filter escapes some characters +$body = get_input('body', '', false); + +$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, elgg_get_logged_in_user_guid(), $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("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 11e4e5a36..38355d25e 100644 --- a/mod/thewire/actions/delete.php +++ b/mod/thewire/actions/delete.php @@ -1,38 +1,39 @@ -<?php
-
- /**
- * Elgg thewire: delete note action
- *
- * @package ElggTheWire
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider <info@elgg.com>
- * @copyright Curverider Ltd 2008-2009
- * @link http://elgg.org/
- */
-
- // Make sure we're logged in (send us to the front page if not)
- if (!isloggedin()) 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 = 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);
-
- }
-
-?>
\ 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->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); +} |
