/** * getter for messages * * @param int $room * @param int $user * @param int $time * @param int $game * @return array */ public static function getMessages($room, $toUser = 0, $time = 0, $game = 0) { $colorRepository = new ColorRepository(TRUE); $colors = $colorRepository->getAll(); $colorList = array(); foreach ($colors as $color) { $colorList[$color['id']] = $color; } $query = 'SELECT user.*, message.* FROM ' . DB_PREFIX . self::$table . ' AS message LEFT JOIN ' . DB_PREFIX . 'user AS user ON message.user = user.id WHERE room=' . intval($room) . ' AND tstamp > ' . intval($time) . ' AND to_user IN (' . intval($toUser) . ', 0)'; if ($game) { $query .= ' AND game=' . intval($game); } if ($toUser) { $query .= ' AND NOT not_to_user IN (' . $toUser . ')'; } $query .= ' ORDER BY message.id DESC LIMIT 100'; $messages = DB::fetchAll($query); $messages = array_reverse($messages); foreach ($messages as &$message) { if ($message['localize_key']) { $message['text'] = Localize::getMessage($message['localize_key'], unserialize($message['localize_params'])); } $message['color'] = $colorList[$message['color']]['code']; } return $messages; }
/** * log the user - if not exists register him/her and then log the user * * @return void */ public static function userLogin() { $errors = array(); $hash = addslashes(Utils::get('hash')); if ($hash) { $userRepository = new UserRepository(); $user = $userRepository->getOneByHash($hash); } else { if (Utils::post('username') != '') { $username = addslashes(Utils::post('username')); if (!ctype_alnum($username)) { $errors['username'] = '******'; // TODO localize } } else { $errors['username'] = '******'; // TODO localize } if (Utils::post('password') != '') { $password = md5(addslashes(Utils::post('password'))); } else { $errors['password'] = '******'; // TODO localize } if (empty($errors)) { $userRepository = new UserRepository(); $userExist = $userRepository->getOneByUsername($username); if ($userExist === NULL) { $colorRepository = new ColorRepository(); $count = $colorRepository->getCountAll(); $rand = rand(1, $count); $params = array('username' => $username, 'password' => $password, 'color' => $rand); $user = new User($params); $user = $user->save(TRUE); } elseif ($userExist['password'] != $password) { $errors['password'] = '******'; } else { $user = $userExist; } } } if ($user && empty($errors)) { // TODO po prihlaseni treba nejako zmazat v memcachi query, ktora vybera usera podla cookie_value // lebo teraz to stale vracia vysledok z memcache -> ked sa prihlasim v dvoch browsroch, v obidvoch to funguje // neodhlasi ma z toho prveho $cookieValue = md5(time() . $user['id'] . $user['username']); DB::update(DB_PREFIX . 'user', array('cookie_value' => $cookieValue), 'id = ' . $user['id']); $expire = Utils::post('remember') == 1 ? strtotime('+1 year') : 0; setcookie(self::$cookieName, $cookieValue, $expire, '/'); return TRUE; } else { return $errors; } }
protected function setup() { $loggedUser = LoggedUser::whoIsLogged(); if (Utils::post('change_settings')) { // TODO check if password and confirm password match $loggedUser['password'] = md5(Utils::post('password')); $loggedUser['name'] = Utils::post('name'); $loggedUser['surname'] = Utils::post('surname'); $loggedUser['color'] = intval(Utils::post('color')); $loggedUser->save(); } MySmarty::assign('loggedUser', $loggedUser); $colorRepository = new ColorRepository(); $colors = $colorRepository->getAll(); MySmarty::assign('colors', $colors); }
protected function run() { if ($this->check == self::OK) { $colorRepository = new ColorRepository(); $count = $colorRepository->getCountAll(); $randomColor = mt_rand(1, $count); $userParams = array('username' => 'AI-' . str_pad(mt_rand(0, 999), 3, 0, STR_PAD_LEFT), 'color' => $randomColor); $userRepository = new UserRepository(); $newUser = $userRepository->getOneByUsername($userParams['username']); if (!$newUser) { $newUser = new User($userParams); $newUser = $newUser->save(TRUE); } $playersCount = GameUtils::getPosition($this->game); $strategyRepository = new AiStrategyRepository(); $strategyRepository->addOrderBy(array('RAND()' => '')); $strategy = $strategyRepository->getOneBy(); $params = array('game' => $this->game['id'], 'user' => $newUser['id'], 'seat' => GameUtils::getSeatOnPosition($playersCount), 'ai_strategy' => $strategy['id']); $player = new Player($params); $player->save(); } }
public function getFontColor() { $colorRepository = new ColorRepository(); return $colorRepository->getOneById($this['color']); }