示例#1
0
    /**
     * 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);
            }
        }
    }
示例#2
0
         }
         $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'] != '' ? '&nbsp;' . MENU_SEP_CHAR . '&nbsp;' : '') . '<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'));
示例#3
0
     $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 = '&nbsp;<a href="' . append_sid('admin_groups.' . PHP_EXT . '?group_id=' . $row['group_id'] . '&amp;move=0') . '"><img src="' . $images['cms_arrow_up'] . '" alt="' . $lang['MOVE_UP'] . '" title="' . $lang['MOVE_UP'] . '" /></a>';
         $g_move .= '&nbsp;<a href="' . append_sid('admin_groups.' . PHP_EXT . '?group_id=' . $row['group_id'] . '&amp;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&amp;' . POST_GROUPS_URL . '=' . $row['group_id']), 'U_GROUP_PERMISSIONS' => append_sid('admin_ug_auth.' . PHP_EXT . '?mode=group&amp;' . 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++;
示例#4
0
/**
* 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;amp;', '&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&amp;' . 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;
}
示例#5
0
 $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 = '';
示例#6
0
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;
}
示例#7
0
/**
* 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;
}