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'); }