diff options
Diffstat (limited to 'phpBB/includes/functions_user.php')
| -rw-r--r-- | phpBB/includes/functions_user.php | 112 | 
1 files changed, 70 insertions, 42 deletions
| diff --git a/phpBB/includes/functions_user.php b/phpBB/includes/functions_user.php index c5593c5ba3..f308f4805f 100644 --- a/phpBB/includes/functions_user.php +++ b/phpBB/includes/functions_user.php @@ -49,7 +49,7 @@ function user_get_id_name(&$user_id_ary, &$username_ary)  		return 'NO_USERS';  	} -	$id_ary = $username_ary = array(); +	$user_id_ary = $username_ary = array();  	do  	{  		$username_ary[$row['user_id']] = $row['username']; @@ -1061,57 +1061,98 @@ function avatar_upload($data, &$error)  /**  * Avatar Gallery  */ -function avatar_gallery($category, &$error) +function avatar_gallery($category, $avatar_select, $items_per_column, $block_var = 'avatar_row')  { -	global $user, $cache; +	global $user, $cache, $template;  	global $config, $phpbb_root_path; +	$avatar_list = array(); +  	$path = $phpbb_root_path . $config['avatar_gallery_path'];  	if (!file_exists($path) || !is_dir($path))  	{ -		return array($user->lang['NONE'] => array()); +		$avatar_list = array($user->lang['NONE'] => array());  	} - -	// To be replaced with SQL ... before M3 completion -	$dp = @opendir($path); - -	$data = array(); -	$avatar_row_count = $avatar_col_count = 0; -	while ($file = readdir($dp)) +	else  	{ -		if ($file{0} != '.' && is_dir("$path/$file")) -		{ -			$dp2 = @opendir("$path/$file"); +		// Collect images +		$dp = @opendir($path); -			while ($sub_file = readdir($dp2)) +		while ($file = readdir($dp)) +		{ +			if ($file{0} != '.' && is_dir("$path/$file"))  			{ -				if (preg_match('#\.(gif$|png$|jpg|jpeg)$#i', $sub_file)) +				$avatar_row_count = $avatar_col_count = 0; +	 +				$dp2 = @opendir("$path/$file"); +				while ($sub_file = readdir($dp2))  				{ -					$data[$file][$avatar_row_count][$avatar_col_count]['file'] = "$file/$sub_file"; -					$data[$file][$avatar_row_count][$avatar_col_count]['name'] = ucfirst(str_replace('_', ' ', preg_replace('#^(.*)\..*$#', '\1', $sub_file))); - -					$avatar_col_count++; -					if ($avatar_col_count == 4) +					if (preg_match('#\.(gif$|png$|jpg|jpeg)$#i', $sub_file))  					{ -						$avatar_row_count++; -						$avatar_col_count = 0; +						$avatar_list[$file][$avatar_row_count][$avatar_col_count] = array( +							'file'		=> "$file/$sub_file", +							'filename'	=> $sub_file, +							'name'		=> ucfirst(str_replace('_', ' ', preg_replace('#^(.*)\..*$#', '\1', $sub_file))), +						); + +						$avatar_col_count++; +						if ($avatar_col_count == $items_per_column) +						{ +							$avatar_row_count++; +							$avatar_col_count = 0; +						}  					}  				} +				closedir($dp2);  			} -			closedir($dp2);  		} +		closedir($dp);  	} -	closedir($dp); -	if (!sizeof($data)) +	if (!sizeof($avatar_list))  	{ -		return array($user->lang['NONE'] => array()); +		$avatar_list = array($user->lang['NONE'] => array());  	} -	@ksort($data); +	@ksort($avatar_list); + +	$category = (!$category) ? key($avatar_list) : $category; +	$avatar_categories = array_keys($avatar_list); + +	$s_category_options = ''; +	foreach ($avatar_categories as $cat) +	{ +		$s_category_options .= '<option value="' . $cat . '"' . (($cat == $category) ? ' selected="selected"' : '') . '>' . $cat . '</option>'; +	} + +	$template->assign_vars(array( +		'S_IN_AVATAR_GALLERY'	=> true, +		'S_CAT_OPTIONS'			=> $s_category_options) +	); + +	$avatar_list = $avatar_list[$category]; + +	foreach ($avatar_list as $avatar_row_ary) +	{ +		$template->assign_block_vars($block_var, array()); + +		foreach ($avatar_row_ary as $avatar_col_ary) +		{ +			$template->assign_block_vars($block_var . '.avatar_column', array( +				'AVATAR_IMAGE'	=> $phpbb_root_path . $config['avatar_gallery_path'] . '/' . $avatar_col_ary['file'], +				'AVATAR_NAME'	=> $avatar_col_ary['name'], +				'AVATAR_FILE'	=> $avatar_col_ary['filename']) +			); + +			$template->assign_block_vars($block_var . '.avatar_option_column', array( +				'AVATAR_IMAGE'	=> $phpbb_root_path . $config['avatar_gallery_path'] . '/' . $avatar_col_ary['file'], +				'S_OPTIONS_AVATAR'	=> $avatar_col_ary['filename']) +			); +		} +	} -	return $data; +	return $avatar_list;  }  // @@ -1350,7 +1391,6 @@ function group_user_add($group_id, $user_id_ary = false, $username_ary = false,  		}  	} -	$usernames = array();  	if (sizeof($update_id_ary))  	{  		$sql = 'UPDATE ' . USER_GROUP_TABLE . ' @@ -1358,18 +1398,6 @@ function group_user_add($group_id, $user_id_ary = false, $username_ary = false,  			WHERE user_id IN (' . implode(', ', $update_id_ary) . ")  				AND group_id = $group_id";  		$db->sql_query($sql); - -		foreach ($update_id_ary as $id) -		{ -			$usernames[] = $username_ary[$id]; -		} -	} -	else -	{ -		foreach ($add_id_ary as $id) -		{ -			$usernames[] = $username_ary[$id]; -		}  	}  	if ($default) | 
