Пример #1
0
 protected function _message()
 {
     $message = Dura::post('message');
     $message = preg_replace('/^[  ]*(.*?)[  ]*$/u', '$1', $message);
     $message = trim($message);
     if (!$message) {
         return;
     }
     if (mb_strlen($message) > DURA_MESSAGE_MAX_LENGTH) {
         $message = mb_substr($message, 0, DURA_MESSAGE_MAX_LENGTH) . '...';
     }
     $talk = $this->roomModel->addChild('talks');
     $talk->addChild('id', md5(microtime() . mt_rand()));
     $talk->addChild('uid', Dura::user()->getId());
     $talk->addChild('name', Dura::user()->getName());
     $talk->addChild('message', $message);
     $talk->addChild('icon', Dura::user()->getIcon());
     $talk->addChild('time', time());
     $id = Dura::user()->getId();
     foreach ($this->roomModel->users as $user) {
         if ($id == (string) $user->id) {
             $user->update = time();
         }
     }
     while (count($this->roomModel->talks) > DURA_LOG_LIMIT) {
         unset($this->roomModel->talks[0]);
     }
     $this->roomHandler->save($this->id, $this->roomModel);
     if (Dura::get('ajax')) {
         die;
     }
     // TODO
     Dura::redirect('room');
 }