public function loadModelById($id) { $model = Chat::model()->findByPk($id); if ($model === null) { throw new CHttpException(404, 'The requested page does not exist.'); } else { return $model; } }
/** * * @param integer $relatedID * @param integer $userID * @param integer $lastID * @param mixed $data * @return Chat[] */ public function yiichat_list_posts($relatedID, $userID, $lastID, $data) { $limit = 3; $rows = array(); if ($lastID == -1) { $chats = Chat::model()->findAll(array('order' => 'datetime ASC', 'condition' => 'relatedID = :relatedID', 'params' => array(':relatedID' => $relatedID))); foreach ($chats as $key => $chat) { $rows[$key] = $this->restructureChat($chat); } } else { $chats = Chat::model()->findAll(array('condition' => 'userID != :userID AND relatedID = :relatedID', 'order' => 'datetime DESC', 'params' => array(':userID' => $userID, ':relatedID' => $relatedID))); $lastChats = $this->getLastPosts($chats, $limit, $lastID); foreach ($lastChats as $key => $lastChat) { $rows[$key] = $this->restructureChat($lastChat); } } return $rows; }
/** * Добавление, редактирование, удаление сообщений в чате */ 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; } } }
<?php $date = date('Y-m-d H:i:s', strtotime("-30 minutes")); $all = Chat::model()->findAll("id > :last and time > :lt", array('last' => $last, 'lt' => $date)); $cont = ""; $id = 0; foreach ($all as $msg) { $cont .= "<div class='chat-msg' id='{$msg->id}' >\n"; $cont .= "<div class='chat-user'>{$msg->user}</div>\n"; $cont .= "<div class='chat-time'>{$msg->time}</div>\n"; $cont .= "<div class='chat-content'>{$msg->content}</div>\n"; $cont .= "</div>\n"; $id = $msg->id; } if ($id == 0) { $id = Yii::app()->db->createCommand()->select('max(id)')->from('chat')->queryScalar(); } echo json_encode(array('content' => $cont, 'last_id' => $id));
/** * Returns the static model of the specified AR class. * Please note that you should have this exact method in all your CActiveRecord descendants! * @param string $className active record class name. * @return Chat the static model class */ public static function model($className = __CLASS__) { return parent::model($className); }
public function deleteChatMsg($idChat) { Chat::model()->deleteByPk($idChat); }