* @package message * @version $Id$ * @link http://www.zentao.net */ class message extends control { /** * Index * * @access public * @return void */ public function index() { foreach($this->lang->message->typeList as $type => $typeName) { if(isset($config->message->typeLink[$type])) { list($moduleName, $methodName) = explode('|', $this->config->message->typeLink[$type]); $this->locate($this->createLink($moduleName, $methodName)); } } $this->locate($this->createLink('message', 'setting')); } /** * Setting * * @access public * @return void */ public function setting() { if($_POST) { $data = fixer::input('post')->get(); $data->messageSetting = json_encode($data->messageSetting); $this->loadModel('setting')->setItem('system.message.setting', $data->messageSetting); die(js::reload('parent')); } $this->loadModel('webhook'); $this->loadModel('action'); $this->view->title = $this->lang->message->setting; $this->view->position[] = $this->lang->message->common; $this->view->position[] = $this->lang->message->setting; $users = $this->loadModel('user')->getPairs('noletter'); unset($users['']); $this->view->users = $users; $this->view->objectTypes = $this->message->getObjectTypes(); $this->view->objectActions = $this->message->getObjectActions(); $this->display(); } /** * Ajax get message. * * @access public * @return void */ public function ajaxGetMessage($windowBlur = false) { $waitMessages = $this->message->getMessages('wait'); $todos = $this->message->getNoticeTodos(); if(empty($waitMessages) and empty($todos)) die(); $messages = ''; $newline = $windowBlur ? "\n" : '
'; $idList = array(); foreach($waitMessages as $message) { $messages .= $message->data . $newline; $idList[] = $message->id; } $this->dao->update(TABLE_NOTIFY)->set('status')->eq('sended')->andWhere('sendTime')->eq(helper::now())->where('id')->in($idList)->exec(); foreach($todos as $todo) $messages .= $todo->data . $newline; if($windowBlur) $messages = strip_tags($messages); if($windowBlur) { echo json_encode(array('message' => $messages)); } else { echo <<
{$messages}
EOT; } $this->dao->delete('*')->from(TABLE_NOTIFY)->where('objectType')->eq('message')->andWhere('status')->eq('sended')->exec(); } }