public function getContent() { $text = Neuron_Core_Text::__getInstance(); $player = Neuron_GameServer::getPlayer(); if (!$player) { return $this->throwError($text->get('login', 'login', 'account')); } $input = $this->getInputData(); $request = $this->getRequestData(); $mapper = Neuron_GameServer_Mappers_BlockingChatMapper::getInstance(); $total = $mapper->countPrivateMessages($player); if (isset($input['page'])) { $current = $input['page']; $request['page'] = $current; $this->updateRequestData($request); } else { $current = isset($request['page']) ? $request['page'] : 0; } $perpage = 10; $page = new Neuron_Core_Template(); $pages = Neuron_Core_Tools::splitInPages($page, $total, $current, $perpage); $messages = $mapper->getPrivateChats($player, $pages['start'], $pages['perpage']); $page->set('messages', $messages); return $page->parse('gameserver/chat/privatemessages.phpt'); }
public function getRefresh() { $mapper = Neuron_GameServer_Mappers_BlockingChatMapper::getInstance(); $data = $this->getRequestData(); $player = Neuron_GameServer::getPlayer(); if ($player) { $mapper = Neuron_GameServer_Mappers_ChatMapper::getInstance(); if (isset($data['lastId'])) { $updates = $mapper->getPrivateChatUpdates($player, $data['lastId']); if (count($updates) > 0) { $lastId = $updates[0]['pu_id']; // open windows for all updates foreach ($updates as $v) { $this->getServer()->openWindow('PrivateChat', array('id' => $v['pu_from'])); $lastId = max($lastId, $v['pu_id']); } $data['lastId'] = $lastId; $this->updateRequestData($data); } } else { $updates = $mapper->getPrivateChatUpdates($player); if (count($updates) > 0) { $data['lastId'] = $updates[0]['pu_id']; $this->updateRequestData($data); } else { $data['lastId'] = 0; $this->updateRequestData($data); } } } $this->updateRequestData($data); $this->updateContent(); }
/** * Get the mapper. Depends on what system we use. */ private function getMapper() { if (self::USE_BLOCKING) { return Neuron_GameServer_Mappers_BlockingChatMapper::getInstance(); } else { return Neuron_GameServer_Mappers_CachedChatMapper::getInstance(); } }