public function execute() { $tp = SJB_System::getTemplateProcessor(); if (SJB_UserManager::isUserLoggedIn()) { $user_id = SJB_UserManager::getCurrentUserSID(); $errors = array(); $id = SJB_Request::getInt('id', 0, 'GET'); $action = SJB_Request::getVar('action', '', 'GET'); if ($id > 0) { // read message if (SJB_PrivateMessage::isMyMessage($id)) { if ($action == 'delete') { SJB_PrivateMessage::delete(array($id)); SJB_HelperFunctions::redirect(SJB_System::getSystemSettings('SITE_URL') . '/private-messages/inbox/'); } $message = SJB_PrivateMessage::readMessage($id); SJB_Authorization::updateCurrentUserSession(); $current_user_info = SJB_UserManager::createTemplateStructureForCurrentUser(); $current_user_info['logged_in'] = true; $current_user_info['new_messages'] = SJB_PrivateMessage::getCountUnreadMessages($current_user_info['id']); SJB_System::setCurrentUserInfo($current_user_info); $tp->assign('message', $message); $tp->assign('include', 'message_detail.tpl'); } else { $errors['NOT_EXISTS_MESSAGE'] = 1; } } $tp->assign('errors', $errors); $tp->assign('unread', SJB_PrivateMessage::getCountUnreadMessages($user_id)); $tp->display('main.tpl'); } else { $tp->assign('return_url', base64_encode(SJB_Navigator::getURIThis())); $tp->display('../users/login.tpl'); } }
/** * Delete private messages. * Incoming param is hash of private messages SIDs or single message SID. * @param array|integer $messageSIDs */ public static function delete($messageSIDs) { if (empty($messageSIDs)) { return; } if (is_array($messageSIDs)) { foreach ($messageSIDs as $key => $sid) { if (!SJB_PrivateMessage::isMyMessage($sid) || !is_numeric($sid) || empty($sid)) { unset($messageSIDs[$key]); } } $sidsString = join(',', $messageSIDs); SJB_DB::query('DELETE FROM `private_message` WHERE `id` IN (?w)', $sidsString); } else { $sid = intval($messageSIDs); if (SJB_PrivateMessage::isMyMessage($sid)) { SJB_DB::query('DELETE FROM `private_message` WHERE `id` = ?n', $sid); } } }
public function execute() { $tp = SJB_System::getTemplateProcessor(); if (SJB_UserManager::isUserLoggedIn()) { $user_id = SJB_UserManager::getCurrentUserSID(); $id = SJB_Request::getInt('id', 0, 'GET'); if ($id > 0) { $errors = array(); if (isset($_POST['form_to'])) { $to_user_name = isset($_POST['form_to']) ? strip_tags($_POST['form_to']) : ''; $to_user_info = SJB_UserManager::getUserInfoByUserName($to_user_name); $to_user = isset($to_user_info['sid']) ? $to_user_info['sid'] : 0; $subject = isset($_POST['form_subject']) ? strip_tags($_POST['form_subject']) : ''; $text = isset($_POST['form_message']) ? SJB_PrivateMessage::cleanText($_POST['form_message']) : ''; $save = isset($_POST['form_save']) ? true : false; $reply_id = isset($_POST['reply_id']) ? $_POST['reply_id'] : false; if ($to_user == 0) { $errors['form_to'] = 'You specified wrong username'; } if (empty($subject)) { $errors['form_subject'] = 'Please, enter message subject'; } if (empty($text)) { $errors['form_message'] = 'Please, enter message'; } if (count($errors) == 0) { $anonym = SJB_Request::getVar('anonym'); SJB_PrivateMessage::sendMessage($user_id, $to_user, $subject, $text, $save, $reply_id, false, $anonym); // save to contacts if (!$anonym) { SJB_PrivateMessage::saveContact($user_id, $to_user); SJB_PrivateMessage::saveContact($to_user, $user_id); } SJB_HelperFunctions::redirect(SJB_System::getSystemSettings('SITE_URL') . '/private-messages/inbox/'); } else { $message['to_name'] = htmlentities($to_user_name, ENT_QUOTES, "UTF-8"); $message['subject'] = htmlentities($subject, ENT_QUOTES, "UTF-8"); $message['message'] = $text; $tp->assign('save', $save); } } else { if (SJB_PrivateMessage::isMyMessage($id)) { $message = SJB_PrivateMessage::readMessage($id); } else { $errors['NOT_EXISTS_MESSAGE'] = 1; $message = ''; } if ($message) { $message['to_name'] = htmlentities($message['from_name'], ENT_QUOTES, "UTF-8"); $message['subject'] = 'RE: ' . htmlentities($message['subject'], ENT_QUOTES, "UTF-8"); $message['message'] = '<p> </p><blockquote class="pmQuote">' . $message['message'] . '</blockquote>'; } $tp->assign('reply_id', $id); } } $tp->assign('errors', $errors); $tp->assign('include', 'reply_message.tpl'); $tp->assign('message', $message); $tp->assign('unread', SJB_PrivateMessage::getCountUnreadMessages($user_id)); $tp->display('main.tpl'); } else { $tp->assign('return_url', base64_encode(SJB_Navigator::getURIThis())); $tp->display('../users/login.tpl'); } }