aboutsummaryrefslogtreecommitdiff
path: root/mod/messages/actions/messages/process.php
diff options
context:
space:
mode:
Diffstat (limited to 'mod/messages/actions/messages/process.php')
-rw-r--r--mod/messages/actions/messages/process.php35
1 files changed, 35 insertions, 0 deletions
diff --git a/mod/messages/actions/messages/process.php b/mod/messages/actions/messages/process.php
new file mode 100644
index 000000000..d929ae190
--- /dev/null
+++ b/mod/messages/actions/messages/process.php
@@ -0,0 +1,35 @@
+<?php
+/**
+ * Process a set of messages
+ */
+
+$message_ids = get_input('message_id', array());
+
+if (!$message_ids) {
+ register_error(elgg_echo('messages:error:messages_not_selected'));
+ forward(REFERER);
+}
+
+$delete_flag = get_input('delete', false);
+$read_flag = get_input('read', false);
+
+if ($delete_flag) {
+ $success_msg = elgg_echo('messages:success:delete');
+ foreach ($message_ids as $guid) {
+ $message = get_entity($guid);
+ if ($message && $message->getSubtype() == 'messages' && $message->canEdit()) {
+ $message->delete();
+ }
+ }
+} else {
+ $success_msg = elgg_echo('messages:success:read');
+ foreach ($message_ids as $guid) {
+ $message = get_entity($guid);
+ if ($message && $message->getSubtype() == 'messages' && $message->canEdit()) {
+ $message->readYet = 1;
+ }
+ }
+}
+
+system_message($success_msg);
+forward(REFERER);