aboutsummaryrefslogtreecommitdiff
path: root/mod/messages
diff options
context:
space:
mode:
Diffstat (limited to 'mod/messages')
-rw-r--r--mod/messages/actions/messages/send.php2
-rw-r--r--mod/messages/start.php39
-rw-r--r--mod/messages/views/default/forms/messages/reply.php7
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