public function SendMessageAction() { $messagesModel = new MessagesModel(); $friendModel = new FriendModel(); $userModel = new UserModel(); $user = Project::getUser()->getDbUser(); $request = Project::getRequest(); $this->_view->clearFlashMessages(); $message_to = $request->message_to; $mess_header = trim($request->mess_header); $m_text = trim($request->m_text); $recipient_name = trim($request->recipient_name); // $this -> _view -> assign('tab_list', TabController::getOwnTabs(false, false, false, false, false, false, false, false, true)); $this->_view->assign('tab_list', TabController::getOwnTabs(false, false, false, false, false, false, false, false, false, true)); if ($request->message_action == 'new_message') { $noErrors = true; if (!$request->recipient && !$recipient_name && $message_to != "admin") { $this->_view->addFlashMessage(FM::ERROR, "Выберите из списка друзей или введите имя вручную"); $noErrors = false; } else { if ($message_to == "admin") { $aAdmins = $userModel->getUsersByType(1); } else { $recipient_name = $recipient_name ? $recipient_name : $request->recipient; $recipient = $userModel->getUserByLogin($recipient_name); if (!$recipient) { $this->_view->addFlashMessage(FM::ERROR, "Такого пользователя нет"); $noErrors = false; } } } if (!$mess_header) { $this->_view->addFlashMessage(FM::ERROR, "Введите тему сообщения"); $noErrors = false; } if (!$m_text) { $this->_view->addFlashMessage(FM::ERROR, "Введите текст сообщения"); $noErrors = false; } if ($noErrors) { if ($message_to == "admin") { foreach ($aAdmins as $admin) { $this->sendMessage($mess_header, $m_text, $user->id, $admin['id'], $request->avatar_id, 0, 0); } $addUrl = '/message_to:admin'; } else { $this->sendMessage($mess_header, $m_text, $user->id, $recipient['id'], $request->avatar_id, 0, 0); $addUrl = ''; } $redirect_controller = $request->redirect_controller ? $request->redirect_controller : 'Messages'; $redirect_action = $request->redirect_action ? $request->redirect_action : 'SendMessage'; $redirect_url = $request->redirect_url ? $request->redirect_url : "/message_action:sent" . $addUrl; Project::getResponse()->redirect(Project::getRequest()->createUrl($redirect_controller, $redirect_action) . $redirect_url); } } elseif ($request->message_action == 'reply') { // ответить на сообщение $messagesModel->load($request->mess_id); if ($messagesModel->id == $request->mess_id && $messagesModel->recipient_id == $user->id) { $mess_header = "Re: " . $messagesModel->header; $m_text = ">> " . $messagesModel->m_text; $author = $userModel->getUserById($messagesModel->author_id); $recipient_name = $author['login']; } } elseif ($request->message_action == 'sent') { $this->_view->addFlashMessage(FM::INFO, "Ваше сообщение успешно отправлено. Можете отправить еще сообщение"); } $this->_view->assign('message_to', $message_to); $this->_view->assign('mess_header', $mess_header); $this->_view->assign('m_text', $m_text); $this->_view->assign('recipient_name', $recipient_name); $this->_view->assign('user_friends', $friendModel->getFriendsAll($user->id)); $aGroupMessagesCount['all'] = array("new" => $messagesModel->getCountMessagesToUser($user->id, -1, 1, 0), "read" => $messagesModel->getCountMessagesToUser($user->id, -1, 1, 1)); $this->_view->assign('aGroupMessagesCount', $aGroupMessagesCount); $this->_view->assign('user_avatars', $userModel->getAllUserAvatars($user->id)); $this->_view->SendMessagePage(); $this->_view->parse(); }