diff options
Diffstat (limited to 'mod/thewire/actions/add.php')
| -rw-r--r-- | mod/thewire/actions/add.php | 89 |
1 files changed, 30 insertions, 59 deletions
diff --git a/mod/thewire/actions/add.php b/mod/thewire/actions/add.php index 1a59a979f..6b3d8d5ba 100644 --- a/mod/thewire/actions/add.php +++ b/mod/thewire/actions/add.php @@ -1,63 +1,34 @@ <?php +/** + * Action for adding a wire post + * + */ - /** - * 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-2010 - * @link http://elgg.org/ - */ +// don't filter since we strip and filter escapes some characters +$body = get_input('body', '', false); - // Make sure we're logged in (send us to the front page if not) - if (!isloggedin()) forward(); +$access_id = ACCESS_PUBLIC; +$method = 'site'; +$parent_guid = (int) get_input('parent_guid'); - // Get input data - $body = get_input('new_post_textarea'); - $tags = get_input('thewiretags'); - $access_id = (int)get_default_access(); - if ($access_id == ACCESS_PRIVATE) - $access_id = ACCESS_LOGGED_IN; // Private wire messages are pointless - $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 +// 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); |
