diff options
Diffstat (limited to 'mod/messages')
| -rw-r--r-- | mod/messages/actions/messages/send.php | 2 | ||||
| -rw-r--r-- | mod/messages/start.php | 39 | ||||
| -rw-r--r-- | mod/messages/views/default/forms/messages/reply.php | 7 |
3 files changed, 38 insertions, 10 deletions
diff --git a/mod/messages/actions/messages/send.php b/mod/messages/actions/messages/send.php index 16a971ad2..9d9f6c8b7 100644 --- a/mod/messages/actions/messages/send.php +++ b/mod/messages/actions/messages/send.php @@ -11,7 +11,7 @@ $recipient_guid = get_input('recipient_guid'); elgg_make_sticky_form('messages'); -$reply = get_input('reply',0); // this is the guid of the message replying to +//$reply = get_input('reply',0); // this is the guid of the message replying to if (!$recipient_guid) { register_error(elgg_echo("messages:user:blank")); diff --git a/mod/messages/start.php b/mod/messages/start.php index 2bf0526da..6d0e82744 100644 --- a/mod/messages/start.php +++ b/mod/messages/start.php @@ -51,6 +51,9 @@ function messages_init() { elgg_register_plugin_hook_handler('notify:entity:message', 'object', 'messages_notification_msg'); register_notification_object('object', 'messages', elgg_echo('messages:new')); + // delete messages sent by a user when user is deleted + elgg_register_event_handler('delete', 'user', 'messages_purge'); + // ecml elgg_register_plugin_hook_handler('get_views', 'ecml', 'messages_ecml_views_hook'); @@ -100,9 +103,6 @@ function messages_page_handler($page) { $page[1] = $current_user->username; } - $user = get_user_by_username($page[1]); - //elgg_set_page_owner_guid($user->guid); - $base_dir = elgg_get_plugins_path() . 'messages/pages/messages'; switch ($page[0]) { @@ -428,6 +428,39 @@ function messages_user_hover_menu($hook, $type, $return, $params) { return $return; } +/** + * Delete messages from a user who is being deleted + * + * @param string $event Event name + * @param string $type Event type + * @param ElggUser $user User being deleted + */ +function messages_purge($event, $type, $user) { + + if (!$user->getGUID()) { + return; + } + + // make sure we delete them all + $entity_disable_override = access_get_show_hidden_status(); + access_show_hidden_entities(true); + $ia = elgg_set_ignore_access(true); + + $options = array( + 'type' => 'object', + 'subtype' => 'messages', + 'metadata_name' => 'fromId', + 'metadata_value' => $user->getGUID(), + 'limit' => 0, + ); + $batch = new ElggBatch('elgg_get_entities_from_metadata', $options); + foreach ($batch as $e) { + $e->delete(); + } + + elgg_set_ignore_access($ia); + access_show_hidden_entities($entity_disable_override); +} /** * Register messages with ECML. diff --git a/mod/messages/views/default/forms/messages/reply.php b/mod/messages/views/default/forms/messages/reply.php index a0a01afce..9f3f4b57e 100644 --- a/mod/messages/views/default/forms/messages/reply.php +++ b/mod/messages/views/default/forms/messages/reply.php @@ -15,11 +15,6 @@ echo elgg_view('input/hidden', array( 'name' => 'recipient_guid', 'value' => $vars['message']->fromId, )); -echo elgg_view('input/hidden', array( - 'name' => 'reply', - 'value' => $vars['message']->guid, -)); - ?> <div> @@ -40,4 +35,4 @@ echo elgg_view('input/hidden', array( </div> <div class="elgg-foot"> <?php echo elgg_view('input/submit', array('value' => elgg_echo('messages:send'))); ?> -</div> +</div>
\ No newline at end of file |
