aboutsummaryrefslogtreecommitdiff
path: root/mod/messages/actions
diff options
context:
space:
mode:
Diffstat (limited to 'mod/messages/actions')
-rw-r--r--mod/messages/actions/delete.php73
-rw-r--r--mod/messages/actions/messages/delete.php20
-rw-r--r--mod/messages/actions/messages/process.php35
-rw-r--r--mod/messages/actions/messages/send.php46
-rw-r--r--mod/messages/actions/send.php64
5 files changed, 101 insertions, 137 deletions
diff --git a/mod/messages/actions/delete.php b/mod/messages/actions/delete.php
deleted file mode 100644
index 17bae2808..000000000
--- a/mod/messages/actions/delete.php
+++ /dev/null
@@ -1,73 +0,0 @@
-<?php
-
- /**
- * Elgg delete a message action page
- * It is worth noting that due to the nature of a messaging system and the fact 2 people access
- * the same message, messages don't actually delete, they are just removed from view for the user who deletes
- *
- * @package ElggMessages
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd <info@elgg.com>
- * @copyright Curverider Ltd 2008-2010
- * @link http://elgg.com/
- */
-
- // Need to be logged in to do this
- gatekeeper();
-
- // grab details sent from the form
- $message_id_array = get_input('message_id');
- if (!is_array($message_id_array)) $message_id_array = array($message_id_array);
- $type = get_input('type'); // sent message or inbox
- $success = true;
- $submit = get_input('submit');
- $offset = get_input('offset');
-
- foreach($message_id_array as $message_id) {
-
- // get the message object
- $message = get_entity($message_id);
-
- // Make sure we actually have permission to edit and that the object is of sub-type messages
- if ($message && $message->getSubtype() == "messages") {
-
- if ($submit == elgg_echo('delete')) {
- if ($message->delete()) {
- } else {
- $success = false;
- }
- } else {
- if ($message->readYet = 1) {
- } else {
- $success = false;
- }
- }
-
- }else{
-
- // display the error message
- $success = false;
-
- }
-
- }
-
- if ($success) {
- if ($submit == elgg_echo('delete')) {
- system_message(elgg_echo("messages:deleted"));
- } else {
- system_message(elgg_echo("messages:markedread"));
- }
- // check to see if it is a sent message to be deleted
- if($type == 'sent'){
- forward("mod/messages/sent.php?offset={$offset}");
- }else{
- forward("mod/messages/?username=" . $_SESSION['user']->username . "&offset={$offset}");
- }
- } else {
- register_error(elgg_echo("messages:notfound"));
- forward($_SERVER['HTTP_REFERER']);
- }
-
-
-?> \ No newline at end of file
diff --git a/mod/messages/actions/messages/delete.php b/mod/messages/actions/messages/delete.php
new file mode 100644
index 000000000..ffdb3b3a3
--- /dev/null
+++ b/mod/messages/actions/messages/delete.php
@@ -0,0 +1,20 @@
+<?php
+/**
+ * Delete message
+ */
+
+$guid = (int) get_input('guid');
+
+$message = get_entity($guid);
+if (!$message || !$message->canEdit()) {
+ register_error(elgg_echo('messages:error:delete:single'));
+ forward(REFERER);
+}
+
+if (!$message->delete()) {
+ register_error(elgg_echo('messages:error:delete:single'));
+} else {
+ system_message(elgg_echo('messages:success:delete:single'));
+}
+
+forward(REFERER);
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);
diff --git a/mod/messages/actions/messages/send.php b/mod/messages/actions/messages/send.php
new file mode 100644
index 000000000..9d9f6c8b7
--- /dev/null
+++ b/mod/messages/actions/messages/send.php
@@ -0,0 +1,46 @@
+<?php
+/**
+* Ssend a message action
+*
+* @package ElggMessages
+*/
+
+$subject = strip_tags(get_input('subject'));
+$body = get_input('body');
+$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
+
+if (!$recipient_guid) {
+ register_error(elgg_echo("messages:user:blank"));
+ forward("messages/compose");
+}
+
+$user = get_user($recipient_guid);
+if (!$user) {
+ register_error(elgg_echo("messages:user:nonexist"));
+ forward("messages/compose");
+}
+
+// Make sure the message field, send to field and title are not blank
+if (!$body || !$subject) {
+ register_error(elgg_echo("messages:blank"));
+ forward("messages/compose");
+}
+
+// Otherwise, 'send' the message
+$result = messages_send($subject, $body, $recipient_guid, 0, $reply);
+
+// Save 'send' the message
+if (!$result) {
+ register_error(elgg_echo("messages:error"));
+ forward("messages/compose");
+}
+
+elgg_clear_sticky_form('messages');
+
+system_message(elgg_echo("messages:posted"));
+
+forward('messages/inbox/' . elgg_get_logged_in_user_entity()->username);
diff --git a/mod/messages/actions/send.php b/mod/messages/actions/send.php
deleted file mode 100644
index e48703e5a..000000000
--- a/mod/messages/actions/send.php
+++ /dev/null
@@ -1,64 +0,0 @@
-<?php
-
- /**
- * Elgg send a message action page
- *
- * @package ElggMessages
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd <info@elgg.com>
- * @copyright Curverider Ltd 2008-2010
- * @link http://elgg.com/
- */
-
- // Make sure we're logged in (send us to the front page if not)
- if (!isloggedin()) forward();
-
- // Get input data
- $title = get_input('title'); // message title
- $message_contents = get_input('message'); // the message
- $send_to = get_input('send_to'); // this is the user guid to whom the message is going to be sent
- $reply = get_input('reply',0); // this is the guid of the message replying to
-
- // Cache to the session to make form sticky
- $_SESSION['msg_to'] = $send_to;
- $_SESSION['msg_title'] = $title;
- $_SESSION['msg_contents'] = $message_contents;
-
- if (empty($send_to)) {
- register_error(elgg_echo("messages:user:blank"));
- forward("mod/messages/send.php");
- }
-
- $user = get_user($send_to);
- if (!$user) {
- register_error(elgg_echo("messages:user:nonexist"));
- forward("mod/messages/send.php");
- }
-
- // Make sure the message field, send to field and title are not blank
- if (empty($message_contents) || empty($title)) {
- register_error(elgg_echo("messages:blank"));
- forward("mod/messages/send.php");
- }
-
- // Otherwise, 'send' the message
- $result = messages_send($title,$message_contents,$send_to,0,$reply);
-
- // Save 'send' the message
- if (!$result) {
- register_error(elgg_echo("messages:error"));
- forward("mod/messages/send.php");
- }
-
- // successful so uncache form values
- unset($_SESSION['msg_to']);
- unset($_SESSION['msg_title']);
- unset($_SESSION['msg_contents']);
-
- // Success message
- system_message(elgg_echo("messages:posted"));
-
- // Forward to the users inbox
- forward('mod/messages/sent.php');
-
-?>