Ejemplo n.º 1
0
 /**
  * Добавление, редактирование, удаление сообщений в чате
  */
 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;
         }
     }
 }
Ejemplo n.º 2
0
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;