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) |