예제 #1
0
    /**
     * Send private message
     *
     * @param integer $from
     * @param integer $to
     * @param string $subject
     * @param string $message
     * @param boolean $copy       Save copy in outbox
     * @param boolean $reply_id   if we reply to message with $reply_id, mark it as replied
     */
    public static function sendMessage($from, $to, $subject, $message, $copy = true, $reply_id = false, $cc = false, $anonym = 0)
    {
        $date = date('Y-m-d H:i:s');
        // to anonymous resume
        $anonym = $anonym ? $anonym : 0;
        $query = 'INSERT INTO `private_message` SET `from_id`=?n, `to_id`=?n, `data`=?s, `subject`=?s, `message`=?s, `anonym` = ?n';
        $mess_id = SJB_DB::query($query, $from, $to, $date, $subject, $message, $anonym);
        if ($mess_id) {
            if (SJB_UserNotificationsManager::isUserNotifiedOnNewPersonalMessage($to)) {
                $message_for_notification = SJB_PrivateMessage::readMessage($mess_id, true);
                SJB_Notifications::sendNewPrivateMessageLetter($to, $from, $message_for_notification, $cc);
            }
            if ($copy) {
                SJB_DB::query('INSERT INTO `private_message`
					SET `from_id`=?n, `to_id`=?n, `data`=?s, `subject`=?s, `message`=?s, `outbox`=1, `anonym` = ?n', $from, $to, $date, $subject, $message, $anonym);
            }
            if ($reply_id) {
                SJB_DB::query('UPDATE `private_message` SET `status`=?n WHERE id = ?n', PM_STATUS_REPLIED, $reply_id);
            }
        }
    }