Beispiel #1
0
 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();
 }