diff options
Diffstat (limited to 'phpBB/includes/user_loader.php')
| -rw-r--r-- | phpBB/includes/user_loader.php | 231 | 
1 files changed, 0 insertions, 231 deletions
diff --git a/phpBB/includes/user_loader.php b/phpBB/includes/user_loader.php deleted file mode 100644 index 37bf9648c1..0000000000 --- a/phpBB/includes/user_loader.php +++ /dev/null @@ -1,231 +0,0 @@ -<?php -/** -* -* @package phpBB3 -* @copyright (c) 2012 phpBB Group -* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2 -* -*/ - -/** -*/ -if (!defined('IN_PHPBB')) -{ -	exit; -} - -/** -* User loader class -* -* This handles loading users from the database and -* storing in them in a temporary cache so we do not -* have to query the same user multiple times in -* different services. -*/ -class phpbb_user_loader -{ -	/** @var phpbb_db_driver */ -	protected $db = null; - -	/** @var string */ -	protected $phpbb_root_path = null; - -	/** @var string */ -	protected $php_ext = null; - -	/** @var string */ -	protected $users_table = null; - -	/** -	* Users loaded from the DB -	* -	* @var array Array of user data that we've loaded from the DB -	*/ -	protected $users = array(); - -	/** -	* User loader constructor -	* -	* @param phpbb_db_driver $db A database connection -	* @param string $phpbb_root_path Path to the phpbb includes directory. -	* @param string $php_ext php file extension -	* @param string $users_table The name of the database table (phpbb_users) -	*/ -	public function __construct(phpbb_db_driver $db, $phpbb_root_path, $php_ext, $users_table) -	{ -		$this->db = $db; - -		$this->phpbb_root_path = $phpbb_root_path; -		$this->php_ext = $php_ext; - -		$this->users_table = $users_table; -	} - -	/** -	* Load user helper -	* -	* @param array $user_ids -	*/ -	public function load_users(array $user_ids) -	{ -		$user_ids[] = ANONYMOUS; - -		// Make user_ids unique and convert to integer. -		$user_ids = array_map('intval', array_unique($user_ids)); - -		// Do not load users we already have in $this->users -		$user_ids = array_diff($user_ids, array_keys($this->users)); - -		if (sizeof($user_ids)) -		{ -			$sql = 'SELECT * -				FROM ' . $this->users_table . ' -				WHERE ' . $this->db->sql_in_set('user_id', $user_ids); -			$result = $this->db->sql_query($sql); - -			while ($row = $this->db->sql_fetchrow($result)) -			{ -				$this->users[$row['user_id']] = $row; -			} -			$this->db->sql_freeresult($result); -		} -	} - -	/** -	* Load a user by username -	* -	* Stores the full data in the user cache so they do not need to be loaded again -	* Returns the user id so you may use get_user() from the returned value -	* -	* @param string $username Raw username to load (will be cleaned) -	* @return int User ID for the username -	*/ -	public function load_user_by_username($username) -	{ -		$sql = 'SELECT * -			FROM ' . $this->users_table . " -			WHERE username_clean = '" . $this->db->sql_escape(utf8_clean_string($username)) . "'"; -		$result = $this->db->sql_query($sql); -		$row = $this->db->sql_fetchrow($result); -		$this->db->sql_freeresult($result); - -		if ($row) -		{ -			$this->users[$row['user_id']] = $row; - -			return $row['user_id']; -		} - -		return ANONYMOUS; -	} - -	/** -	* Get a user row from our users cache -	* -	* @param int $user_id User ID of the user you want to retreive -	* @param bool $query Should we query the database if this user has not yet been loaded? -	* 						Typically this should be left as false and you should make sure -	* 						you load users ahead of time with load_users() -	* @return array|bool Row from the database of the user or Anonymous if the user wasn't loaded/does not exist -	* 						or bool False if the anonymous user was not loaded -	*/ -	public function get_user($user_id, $query = false) -	{ -		if (isset($this->users[$user_id])) -		{ -			return $this->users[$user_id]; -		} -		// Query them if we must (if ANONYMOUS is sent as the user_id and we have not loaded Anonymous yet, we must load Anonymous as a last resort) -		else if ($query || $user_id == ANONYMOUS) -		{ -			$this->load_users(array($user_id)); - -			return $this->get_user($user_id); -		} - -		return $this->get_user(ANONYMOUS); -	} - -	/** -	* Get username -	* -	* @param int $user_id User ID of the user you want to retreive the username for -	* @param string $mode The mode to load (same as get_username_string). One of the following: -	* 			profile (for getting an url to the profile) -	* 			username (for obtaining the username) -	* 			colour (for obtaining the user colour) -	* 			full (for obtaining a html string representing a coloured link to the users profile) -	* 			no_profile (the same as full but forcing no profile link) -	* @param string $guest_username Optional parameter to specify the guest username. It will be used in favor of the GUEST language variable then. -	* @param string $custom_profile_url Optional parameter to specify a profile url. The user id get appended to this url as &u={user_id} -	* @param bool $query Should we query the database if this user has not yet been loaded? -	* 						Typically this should be left as false and you should make sure -	* 						you load users ahead of time with load_users() -	* @return string -	*/ -	public function get_username($user_id, $mode, $guest_username = false, $custom_profile_url = false, $query = false) -	{ -		if (!($user = $this->get_user($user_id, $query))) -		{ -			return ''; -		} - -		return get_username_string($mode, $user['user_id'], $user['username'], $user['user_colour'], $guest_username, $custom_profile_url); -	} - -	/** -	* Get avatar -	* -	* @param int $user_id User ID of the user you want to retreive the avatar for -	* @param bool $query Should we query the database if this user has not yet been loaded? -	* 						Typically this should be left as false and you should make sure -	* 						you load users ahead of time with load_users() -	* @return string -	*/ -	public function get_avatar($user_id, $query = false) -	{ -		if (!($user = $this->get_user($user_id, $query))) -		{ -			return ''; -		} - -		if (!function_exists('get_user_avatar')) -		{ -			include($this->phpbb_root_path . 'includes/functions_display.' . $this->php_ext); -		} - -		return get_user_avatar($user['user_avatar'], $user['user_avatar_type'], $user['user_avatar_width'], $user['user_avatar_height']); -	} - -	/** -	* Get rank -	* -	* @param int $user_id User ID of the user you want to retreive the rank for -	* @param bool $query Should we query the database if this user has not yet been loaded? -	* 						Typically this should be left as false and you should make sure -	* 						you load users ahead of time with load_users() -	* @return array Array with keys 'rank_title', 'rank_img', and 'rank_img_src' -	*/ -	public function get_rank($user_id, $query = false) -	{ -		if (!($user = $this->get_user($user_id, $query))) -		{ -			return ''; -		} - -		if (!function_exists('get_user_rank')) -		{ -			include($this->phpbb_root_path . 'includes/functions_display.' . $this->php_ext); -		} - -		$rank = array( -			'rank_title', -			'rank_img', -			'rank_img_src', -		); - -		get_user_rank($user['user_rank'], (($user['user_id'] == ANONYMOUS) ? false : $user['user_posts']), $rank['rank_title'], $rank['rank_img'], $rank['rank_img_src']); - -		return $rank; -	} -}  | 
