/** * Display permission mask for roles */ function display_role_mask(&$hold_ary) { global $db, $template, $user, $lang, $phpbb_admin_path; if (!sizeof($hold_ary)) { return; } // Get forum names $sql = 'SELECT forum_id, forum_name FROM ' . FORUMS_TABLE . ' WHERE ' . $db->sql_in_set('forum_id', array_keys($hold_ary)) . ' ORDER BY left_id'; $result = $db->sql_query($sql); // If the role is used globally, then reflect that $forum_names = isset($hold_ary[0]) ? array(0 => '') : array(); while ($row = $db->sql_fetchrow($result)) { $forum_names[$row['forum_id']] = $row['forum_name']; } $db->sql_freeresult($result); foreach ($forum_names as $forum_id => $forum_name) { $auth_ary = $hold_ary[$forum_id]; $template->assign_block_vars('role_mask', array('NAME' => $forum_id == 0 ? $user->lang['GLOBAL_MASK'] : $forum_name, 'FORUM_ID' => $forum_id)); if (isset($auth_ary['users']) && sizeof($auth_ary['users'])) { $sql = 'SELECT user_id, username, user_color, user_active FROM ' . USERS_TABLE . ' WHERE ' . $db->sql_in_set('user_id', $auth_ary['users']) . ' ORDER BY username_clean ASC'; $result = $db->sql_query($sql); while ($row = $db->sql_fetchrow($result)) { $template->assign_block_vars('role_mask.users', array('USER_ID' => $row['user_id'], 'USERNAME' => $row['username'], 'U_PROFILE' => append_sid(IP_ROOT_PATH . CMS_PAGE_PROFILE . '?mode=viewprofile&' . POST_USERS_URL . '=' . $row['user_id']), 'USERNAME_FULL' => colorize_username($row['user_id'], $row['username'], $row['user_color'], $row['user_active']))); } $db->sql_freeresult($result); } if (isset($auth_ary['groups']) && sizeof($auth_ary['groups'])) { $sql = 'SELECT group_id, group_name, group_color FROM ' . GROUPS_TABLE . ' WHERE ' . $db->sql_in_set('group_id', $auth_ary['groups']) . ' ORDER BY group_type ASC, group_name'; $result = $db->sql_query($sql); while ($row = $db->sql_fetchrow($result)) { $template->assign_block_vars('role_mask.groups', array('GROUP_ID' => $row['group_id'], 'GROUP_NAME' => $row['group_name'], 'GROUP_COLOR' => $row['group_color'], 'GROUP_FULL' => '<a href="' . append_sid('groupcp.' . PHP_EXT . '?' . POST_GROUPS_URL . '=' . $row['group_id']) . '" style="font-weight: bold; text-decoration: none;' . (check_valid_color($row['group_color']) ? 'color: ' . check_valid_color($row['group_color']) . ';' : '') . '">' . $row['group_name'] . '</a>', 'U_PROFILE' => append_sid(IP_ROOT_PATH . CMS_PAGE_GROUP_CP . '?' . POST_GROUPS_URL . '=' . $row['group_id']))); } $db->sql_freeresult($result); } } }
} $s_pending_groups = '<select name="' . POST_GROUPS_URL . '">' . $s_pending_groups_opt . '</select>'; } } // Select all other groups i.e. groups that this user is not a member of $ignore_group_sql = sizeof($in_group) ? "AND group_id NOT IN (" . implode(', ', $in_group) . ")" : ''; $sql = "SELECT g.group_id, g.group_name, g.group_description, g.group_type, g.group_color, g.group_count, g.group_count_max\n\t\tFROM " . GROUPS_TABLE . " g\n\t\tWHERE group_single_user = '******'\n\t\t\t{$ignore_group_sql}\n\t\tORDER BY g.group_name"; $result = $db->sql_query($sql); $s_group_list_opt = ''; if ($row = $db->sql_fetchrow($result)) { $template->assign_block_vars('switch_groups_remaining', array()); do { $is_autogroup_enable = $row['group_count'] <= $user->data['user_posts'] && $row['group_count_max'] > $user->data['user_posts'] ? true : false; if ($row['group_type'] != GROUP_HIDDEN || $user->data['user_level'] == ADMIN) { $s_group_list_opt .= '<option value="' . $row['group_id'] . '">' . $row['group_name'] . '</option>'; $group_color = check_valid_color($row['group_color']) ? check_valid_color($row['group_color']) : false; $template->assign_block_vars('switch_groups_remaining.ag_row', array('GROUP_ID' => $row['group_id'], 'GROUP_NAME' => $row['group_name'], 'GROUP_DES' => $row['group_description'], 'GROUP_URL' => append_sid(CMS_PAGE_GROUP_CP . '?' . POST_GROUPS_URL . '=' . $row['group_id']), 'GROUP_COLOR_STYLE' => $group_color ? ' style="color:' . $group_color . ';font-weight:bold;text-decoration:none;"' : ' style="font-weight:bold;text-decoration:none;"')); } } while ($row = $db->sql_fetchrow($result)); $s_group_list = '<select name="' . POST_GROUPS_URL . '">' . $s_group_list_opt . '</select>'; } if ($s_group_list_opt != '' || $s_pending_groups_opt != '' || $s_member_groups_opt != '') { // Load and process templates $meta_content['page_title'] = $lang['Group_Control_Panel']; $meta_content['description'] = ''; $meta_content['keywords'] = ''; $nav_server_url = create_server_url(); $breadcrumbs['address'] = $lang['Nav_Separator'] . '<a href="' . $nav_server_url . append_sid(CMS_PAGE_GROUP_CP) . '" class="nav-current">' . $lang['Group_Control_Panel'] . '</a>'; $breadcrumbs['bottom_right_links'] .= ($breadcrumbs['bottom_right_links'] != '' ? ' ' . MENU_SEP_CHAR . ' ' : '') . '<a href="' . append_sid(CMS_PAGE_MEMBERLIST) . '">' . $lang['LINK_MEMBERLIST'] . '</a>'; page_header($meta_content['page_title'], true); $template->set_filenames(array('user' => 'groupcp_user_body.tpl'));
$row_counter = 0; do { $row_counter++; $select_list .= '<option value="' . $row['group_id'] . '">' . $row['group_name'] . '</option>'; switch ($row['group_type']) { case GROUP_OPEN: $type_lang = $lang['group_open']; break; case GROUP_CLOSED: $type_lang = $lang['group_closed']; break; case GROUP_HIDDEN: $type_lang = $lang['group_hidden']; break; } $row['group_color'] = check_valid_color($row['group_color']); $counting_list = array(); $counting_list = count_users_in_group($row['group_id']); $g_move = ' <a href="' . append_sid('admin_groups.' . PHP_EXT . '?group_id=' . $row['group_id'] . '&move=0') . '"><img src="' . $images['cms_arrow_up'] . '" alt="' . $lang['MOVE_UP'] . '" title="' . $lang['MOVE_UP'] . '" /></a>'; $g_move .= ' <a href="' . append_sid('admin_groups.' . PHP_EXT . '?group_id=' . $row['group_id'] . '&move=1') . '"><img src="' . $images['cms_arrow_down'] . '" alt="' . $lang['MOVE_DOWN'] . '" title="' . $lang['MOVE_DOWN'] . '" /></a>'; $class = $row_counter % 2 ? $theme['td_class2'] : $theme['td_class1']; $template->assign_block_vars('group_row', array('ROW_CLASS' => $class, 'GROUP_ID' => $row['group_id'], 'GROUP_NAME' => $row['group_name'], 'GROUP_MEMBERS' => $counting_list['members'] . '/' . $counting_list['pending'], 'GROUP_STATUS' => $type_lang, 'GROUP_COLOR' => str_replace('#', '', $row['group_color']), 'GROUP_COLOR_STYLE' => ' style="' . ($row['group_color'] ? 'color: ' . $row['group_color'] . '; ' : '') . 'font-weight:bold;"', 'GROUP_LEGEND' => $row['group_legend'], 'GROUP_LEGEND_CHECKED' => $row['group_legend'] == '1' ? ' checked="checked"' : '', 'GROUP_LEGEND_MOVE' => $g_move, 'U_GROUP_EDIT' => append_sid('admin_groups.' . PHP_EXT . '?edit=true&' . POST_GROUPS_URL . '=' . $row['group_id']), 'U_GROUP_PERMISSIONS' => append_sid('admin_ug_auth.' . PHP_EXT . '?mode=group&' . POST_GROUPS_URL . '=' . $row['group_id']))); } while ($row = $db->sql_fetchrow($result)); $select_list .= '</select>'; } $counting_list = array(); $counting_list = count_active_users(); $template->set_filenames(array('body' => ADM_TPL . 'group_select_body.tpl')); $row_counter++; $class_active_users = $row_counter % 2 ? $theme['td_class2'] : $theme['td_class1']; $row_counter++;
/** * Create a profile link for the user with his own color */ function colorize_username($user_id, $username = '', $user_color = '', $user_active = true, $no_profile = false, $get_only_color_style = false, $from_db = false, $force_cache = false, $alt_link_url = '') { global $db, $config, $lang; $user_id = empty($user_id) ? ANONYMOUS : $user_id; $is_guest = $user_id == ANONYMOUS ? true : false; if (!$is_guest && $from_db || !$is_guest && empty($username) && empty($user_color)) { // Get the user info and see if they are assigned a color_group $sql = user_color_sql($user_id); $cache_cleared = CACHE_COLORIZE && defined('IN_ADMIN') ? clear_user_color_cache($user_id) : false; $result = (CACHE_COLORIZE || $force_cache) && !defined('IN_ADMIN') ? $db->sql_query($sql, 0, POST_USERS_URL . '_', USERS_CACHE_FOLDER) : $db->sql_query($sql); $sql_row = array(); $row = array(); while ($sql_row = $db->sql_fetchrow($result)) { $row = $sql_row; } $db->sql_freeresult($result); $username = $row['username']; $user_color = $row['user_color']; $user_active = $row['user_active']; } $username = $user_id == ANONYMOUS || empty($username) ? $lang['Guest'] : str_replace('&amp;', '&', htmlspecialchars($username)); $user_link_url = !empty($alt_link_url) ? str_replace('$USER_ID', $user_id, $alt_link_url) : (defined('USER_LINK_URL_OVERRIDE') ? str_replace('$USER_ID', $user_id, USER_LINK_URL_OVERRIDE) : CMS_PAGE_PROFILE . '?mode=viewprofile&' . POST_USERS_URL . '=' . $user_id); $user_link_style = ''; $user_link_begin = '<a href="' . append_sid(IP_ROOT_PATH . $user_link_url) . '"'; $user_link_end = '>' . $username . '</a>'; if (!$user_active || $is_guest) { $user_link = $user_link_begin . $user_link_style . $user_link_end; $user_link = $no_profile || $is_guest ? $username : $user_link; $user_link = $get_only_color_style ? '' : $user_link; } else { $user_color = check_valid_color($user_color); $user_color = $user_color != false ? $user_color : $config['active_users_color']; $user_link_style = ' style="font-weight: bold; text-decoration: none; color: ' . $user_color . ';"'; if ($no_profile) { $user_link = '<span' . $user_link_style . '>' . $username . '</span>'; } else { $user_link = $user_link_begin . $user_link_style . $user_link_end; } $user_link = $get_only_color_style ? $user_link_style : $user_link; } return $user_link; }
$user_status = request_post_var('user_status', 0); $user_mask = request_post_var('user_mask', 0); $user_mask = !empty($user_status) ? 0 : $user_mask; $user_ycard = request_post_var('user_ycard', 0); $user_allowpm = request_post_var('user_allowpm', 0); $user_rank = request_post_var('user_rank', 0); // Mighty Gorgon - Multiple Ranks - BEGIN $user_rank2 = request_post_var('user_rank2', 0); $user_rank3 = request_post_var('user_rank3', 0); $user_rank4 = request_post_var('user_rank4', 0); $user_rank5 = request_post_var('user_rank5', 0); // Mighty Gorgon - Multiple Ranks - END $user_allowavatar = request_post_var('user_allowavatar', 0); $user_posts = request_post_var('user_posts', 0); $user_group_id = request_post_var('group_id', '0'); $user_color = check_valid_color(request_post_var('user_color', '')); $user_color = !empty($user_color) ? $user_color : ''; if ($user_group_id > 0) { $sql = "SELECT g.group_color, g.group_rank\n\t\t\t\t\t\t\tFROM " . GROUPS_TABLE . " as g\n\t\t\t\t\t\t\tWHERE g.group_id = '" . $user_group_id . "'\n\t\t\t\t\t\t\tLIMIT 1"; $result = $db->sql_query($sql); $row = $db->sql_fetchrow($result); $user_color = $row['group_color'] != '' ? $row['group_color'] : $user_color; $user_rank = $row['user_rank'] != 0 ? $row['user_rank'] : $user_rank; $db->sql_freeresult($result); } // UPI2DB - BEGIN $user_upi2db_disable = request_post_var('user_upi2db_disable', 0); // UPI2DB - END if (isset($_POST['avatargallery']) || isset($_POST['submitavatar']) || isset($_POST['cancelavatar'])) { $password = ''; $password_confirm = '';
function groups_select($select_name, $default, $allow_empty = true) { global $db, $cache, $lang; $groups_data = get_groups_data(true, false, array()); $groups_select = '<select name="' . $select_name . '">'; $groups_select .= !empty($allow_empty) ? '<option value="0">' . $lang['None'] . '</option>' : ''; foreach ($groups_data as $group_data) { $group_color = check_valid_color($group_data['group_color']); $group_color = !empty($group_color) ? ' style="color: ' . $group_color . '; font-weight: bold;"' : ''; $selected = $group_data['group_id'] == $default ? ' selected="selected"' : ''; $groups_select .= '<option value="' . $group_data['group_id'] . '"' . $selected . $group_color . '>' . htmlspecialchars($group_data['group_name']) . '</option>'; } $groups_select .= '</select>'; return $groups_select; }
/** * Creates a list with all the groups a member subscribed. * * @param => user_id * @return => array */ function build_groups_user($user_id, $show_hidden = true) { global $db, $cache, $config, $lang; $groups_data_user = get_groups_data_user($user_id, true, true, array()); $groups_list = array(); foreach ($groups_data_user as $group_data) { if (empty($group_data['user_pending'])) { $show_this = true; if (empty($show_hidden) && $group_data['group_type'] == GROUP_HIDDEN) { $show_this = false; } if (!empty($show_this)) { $tmp_group_color = check_valid_color($group_data['group_color']); $groups_list[] = array('group_id' => $group_data['group_id'], 'group_name' => $group_data['group_name'], 'group_url' => append_sid(CMS_PAGE_GROUP_CP . '?' . POST_GROUPS_URL . '=' . $group_data['group_id']), 'group_color' => $tmp_group_color, 'group_color_style' => $tmp_group_color ? ' style="color: ' . $group_data['group_color'] . '; font-weight: bold;"' : ' style="font-weight: bold;"'); } } } return $groups_list; }