/** * Добавление, редактирование, удаление сообщений в чате */ public function actionSave_chat() { if (!Yii::app()->user->isGuest) { if (Yii::app()->request->isAjaxRequest) { $result = false; if (isset($_POST['idChat'])) { $model = Chat::model()->findAllByPk((int) $_POST['idChat']); } else { $model = new Chat(); } switch ($_POST['action']) { case 'add': $model->text = trim(htmlspecialchars($_POST['text'])); $model->idUser = empty($this->_user) ? Users::getIdUserForAdmin() : $this->_user['idUser']; if ($model->save()) { $model->date = date('d.m.Y H:i', $model->date); $model->nameUser = empty($this->_user) ? 'Админ' : (!empty($this->_user['lastFirstName']) ? $this->_user['lastFirstName'] : $this->_user['login']); $result = $model; } break; case 'edit': if ($model->update(array('active' => (int) $_POST['active']))) { $result = $model; } break; case 'delete': if ($model->delete()) { $result = true; } break; } echo CJSON::encode(array('result' => $result)); exit; } } }
switch ($action) { case "getHistory": $fromUser = $_POST['fromUser']; $toUser = $_POST['toUser']; $historyPageIndex = isset($_POST['historyPageIndex']) ? $_POST['historyPageIndex'] : 0; $history = $chat->getHistory($fromUser, $toUser, $historyPageIndex); echo json_encode($history); break; case "update": $fromUser = $_POST["fromUser"]; // $toUser = $_POST['toUser']; $wait = $_POST["wait"]; $unreadMsgIds = json_decode($_POST['unreadMessages']); // $history = $chat->update($fromUser, $toUser, $unreadMsgIds); $lastMsgId = isset($_POST["lastMsgId"]) ? $_POST["lastMsgId"] : -1; $history = $chat->update($fromUser, $wait, $unreadMsgIds, $lastMsgId); echo json_encode($history); break; case "insertMessage": $fromUser = $_POST["fromUser"]; $toUser = $_POST["toUser"]; $msg = $_POST["msg"]; list($msgId, $createDate) = $chat->insertMessage($fromUser, $toUser, $msg); echo json_encode(array("msg_id" => $msgId, "create_date" => $createDate)); break; case "getUnreadMessagesCount": if (isset($_POST["user"])) { $msgCount = $chat->getIncomingMessagesCount($_POST["user"]); echo json_encode($msgCount); } break;