示例#1
0
 public function createDialog()
 {
     $required = array('interlocutor_id' => true);
     $interlocutor_id = $this->controller->getParams($required)['interlocutor_id'];
     $thread = new \MessagingThread();
     $threadUser1 = new \MessagingThreadUser();
     $threadUser1->user_id = \Yii::app()->user->id;
     $threadUser2 = new \MessagingThreadUser();
     $threadUser2->user_id = $interlocutor_id;
     $thread->threadUsers = array($threadUser1, $threadUser2);
     if (!$thread->withRelated->save(true, array('threadUsers'))) {
         throw new \Exception(print_r($thread->errors, true));
     }
     $thread->refresh();
     $this->controller->data = $thread;
 }
示例#2
0
 public function postMessage()
 {
     $required = array('interlocutor_id' => true, 'text' => true);
     $params = $this->controller->getParams($required);
     $thread = \MessagingThread::model()->findOrCreate($this->controller->identity->getId(), $params['interlocutor_id']);
     $message = \MessagingMessage::model()->create($params['text'], $thread->id, $this->controller->identity->getId(), array());
     if (!$message) {
         throw new \Exception(print_r($message->errors, true));
     }
     $message->refresh();
     $this->controller->data = $message;
     $comet = new \CometModel();
     $messageModel = \MessagingMessage::model()->withMyStatsOnTop($this->controller->identity->getId())->findByPk($message->id);
     //self
     $data = array('dialog' => array('id' => $params['interlocutor_id']), 'message' => \DialogForm::messageToJson($messageModel, $this->controller->identity->getId(), $messageModel->messageUsers[1]->user_id, $messageModel->messageUsers[1]));
     $comet->send($this->controller->identity->getId(), $data, \CometModel::MESSAGING_MESSAGE_ADDED);
     //interlocutor
     $data = array('dialog' => array('id' => $this->controller->identity->getId()), 'message' => \DialogForm::messageToJson($messageModel, $messageModel->messageUsers[1]->user_id, $this->controller->identity->getId(), $messageModel->messageUsers[1]));
     $comet->send($params['interlocutor_id'], $data, \CometModel::MESSAGING_MESSAGE_ADDED);
 }