select(USERS_TABLE, 'nick', '`nick`=\''.$nick.'\'', '', 1); if (count($out) > 0) return true; else return false; } public function createNewUser($nick, $passwd, $email) { $passwd = $this->generatePasswordHash($nick, $passwd); $this->db->query('call add_user(\''.$nick.'\', \''.$passwd.'\', \''.$email.'\');'); } public function getUsersNicks() { $out = $this->select (USERS_TABLE, 'user_id, nick', '', 'user_id ASC'); if (count($out) > 0) return $out; else return array(); } public function getUserInformation($user, $passwd = false) { if ($this->user_info == null) { $query = ' SELECT u.nick as nick, u.email as email, u.rank as rank, u.active as active, ui.regdate as regdate, ui.lastvisit as lastvisit, ui.avatar as avatar, ui.location as location, ui.signature as signature, pc.post_count as post_count, lu.IP as user_IP '; if ($passwd) $query .= ',u.password as password '; $query .= ' FROM '.USERS_TABLE.' u LEFT JOIN '.USERS_INFO_TABLE.' ui on ui.user_id = u.user_id LEFT JOIN '.USERS_PC_VIEW.' pc on pc.user_id = u.user_id LEFT JOIN '.LOGGED_USERS_VIEW.' lu on lu.user_id = u.user_id WHERE u.user_id = \''.$user.'\' OR u.nick = \''.$user.'\''; $out = $this->select_query($query); if (count($out) > 0) $this->user_info = $out[0]; } return $this->user_info; } public function changeUserPassword($user_id, $nick, $passwd) { $passwd = $this->generatePasswordHash($nick, $passwd); $query = 'UPDATE .'.USERS_TABLE.' SET `password`=\''.$passwd.'\' WHERE `user_id` = \''.$user_id.'\''; $this->db->query($query); } public function changeUserRank($user_id, $rank) { $query = 'UPDATE .'.USERS_TABLE.' SET `rank`=\''.$rank.'\' WHERE `user_id` = \''.$user_id.'\''; $this->db->query($query); } public function updateUserProfile($user_id, $nick, $email, $location, $signature, $avatar) { $query = 'UPDATE .'.USERS_TABLE.' SET '; if ($nick != null) $query .= '`nick`=\''.$nick.'\','; $query .= '`email`=\''.$email.'\' WHERE `user_id` = \''.$user_id.'\''; $this->db->query($query); //profile informations $query = 'UPDATE .'.USERS_INFO_TABLE.' SET `avatar`=\''.$avatar.'\', `location`=\''.$location.'\', `signature`=\''.$signature.'\' WHERE `user_id` = \''.$user_id.'\''; $this->db->query($query); } public function getUsers($stype, $sorder, $rank) { $query = ' SELECT u.user_id as user_id, u.nick as nick, u.rank as rank, ui.regdate as regdate, ui.lastvisit as lastvisit, pc.post_count as post_count FROM '.USERS_TABLE.' u LEFT JOIN '.USERS_INFO_TABLE.' ui on ui.user_id = u.user_id LEFT JOIN '.USERS_PC_VIEW.' pc on pc.user_id = u.user_id '; if ($rank !== '') $query .= 'WHERE rank=\''.$rank.'\''; $query .= ' ORDER BY '.$stype.' '.$sorder; $out = $this->select_query($query); return $out; } public function deleteUser($user_id) { $query = 'DELETE FROM .'.USERS_TABLE.' WHERE `user_id` = \''.$user_id.'\''; $this->db->query($query); } public function generatePasswordHash($nick, $password) { $modulo = strlen($nick) % 8; $salt_begin = substr(RANDOM_STRING, $modulo*SALT_LENGTH, SALT_LENGTH-$modulo); $salt_end = substr(RANDOM_STRING, $modulo*SALT_LENGTH + SALT_LENGTH-$modulo, $modulo); return hash('haval256,5', $salt_begin.$password.$salt_end); } } ?>