* * This file is part of the ElggPG plugin for Elgg. * * ElggPG is free software: you can redistribute it and/or modify it * under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * ElggPG is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public * License along with this program. If not, see * . */ /** * Send an internal message * * @param string $subject The subject line of the message * @param string $body The body of the mesage * @param string $body_sent The body of the mesage encrypted for the sender * @param int $recipient_guid The GUID of the user to send to * @param int $sender_guid Optionally, the GUID of the user to send from * @param int $original_msg_guid The GUID of the message to reply from (default: none) * @param bool $notify Send a notification (default: true) * @param bool $add_to_sent If true (default), will add a message to the sender's 'sent' tray * @return bool */ function messages_send_override($subject, $body, $body_sent, $recipient_guid, $sender_guid = 0, $original_msg_guid = 0, $notify = true, $add_to_sent = true) { // @todo remove globals global $messagesendflag; $messagesendflag = 1; // @todo remove globals global $messages_pm; if ($notify) { $messages_pm = 1; } else { $messages_pm = 0; } // If $sender_guid == 0, set to current user if ($sender_guid == 0) { $sender_guid = (int) elgg_get_logged_in_user_guid(); } // Initialise 2 new ElggObject $message_to = new ElggObject(); $message_sent = new ElggObject(); $message_to->subtype = "messages"; $message_sent->subtype = "messages"; $message_to->owner_guid = $recipient_guid; $message_to->container_guid = $recipient_guid; $message_sent->owner_guid = $sender_guid; $message_sent->container_guid = $sender_guid; $message_to->access_id = ACCESS_PUBLIC; $message_sent->access_id = ACCESS_PUBLIC; $message_to->title = $subject; $message_to->description = $body; $message_sent->title = $subject; $message_sent->description = $body_sent; $message_to->toId = $recipient_guid; // the user receiving the message $message_to->fromId = $sender_guid; // the user receiving the message $message_to->readYet = 0; // this is a toggle between 0 / 1 (1 = read) $message_to->hiddenFrom = 0; // this is used when a user deletes a message in their sentbox, it is a flag $message_to->hiddenTo = 0; // this is used when a user deletes a message in their inbox $message_sent->toId = $recipient_guid; // the user receiving the message $message_sent->fromId = $sender_guid; // the user receiving the message $message_sent->readYet = 0; // this is a toggle between 0 / 1 (1 = read) $message_sent->hiddenFrom = 0; // this is used when a user deletes a message in their sentbox, it is a flag $message_sent->hiddenTo = 0; // this is used when a user deletes a message in their inbox $message_to->msg = 1; $message_sent->msg = 1; // Save the copy of the message that goes to the recipient $success = $message_to->save(); // Save the copy of the message that goes to the sender if ($add_to_sent) { $message_sent->save(); } $message_to->access_id = ACCESS_PRIVATE; $message_to->save(); if ($add_to_sent) { $message_sent->access_id = ACCESS_PRIVATE; $message_sent->save(); } // if the new message is a reply then create a relationship link between the new message // and the message it is in reply to if ($original_msg_guid && $success) { add_entity_relationship($message_sent->guid, "reply", $original_msg_guid); } $message_contents = strip_tags($body); if (($recipient_guid != elgg_get_logged_in_user_guid()) && $notify) { $recipient = get_user($recipient_guid); $sender = get_user($sender_guid); $subject = elgg_echo('messages:email:subject'); $body = elgg_echo('messages:email:body', array( $sender->name, $message_contents, elgg_get_site_url() . "messages/inbox/" . $recipient->username, $sender->name, elgg_get_site_url() . "messages/compose?send_to=" . $sender_guid )); notify_user($recipient_guid, $sender_guid, $subject, $body); } $messagesendflag = 0; return $success; }