Page 1 sur 1

[phpBB3] Fonction group_select_options_selected()

Posté : lun. 22 août 2011 21:24
par Dakin Quelia
» Fonction group_select_options_selected()

Cette fonction vous permet d'avoir un menu avec tous les groupes listés. Très utile si vous devez, par exemple, développer un MOD où vous assignez des permissions pour les groupes.

Code : Tout sélectionner

    /**
    * borrowed from functions_announcement.php of lefty74
    */
    function group_select_options_selected($group_ids, $exclude_ids = false, $manage_founder = false)
    {
        global $db, $auth, $user, $template;
        global $phpbb_root_path, $phpEx, $config;

        $exclude_sql = ($exclude_ids !== false && sizeof($exclude_ids)) ? 'WHERE ' . $db->sql_in_set('group_id', array_map('intval', $exclude_ids), true) : '';
        $sql_and = (!$config['coppa_enable']) ? (($exclude_sql) ? ' AND ' : ' WHERE ') . "group_name <> 'REGISTERED_COPPA'" : '';
        $sql_founder = ($manage_founder !== false) ? (($exclude_sql || $sql_and) ? ' AND ' : ' WHERE ') . 'group_founder_manage = ' . (int) $manage_founder : '';

        $sql = 'SELECT group_id, group_name, group_type
            FROM ' . GROUPS_TABLE . "
            $exclude_sql
            $sql_and
            $sql_founder
            ORDER BY group_type DESC, group_name ASC";
        $result = $db->sql_query($sql);
        
        $s_group_options = '';
        while ($row = $db->sql_fetchrow($result))
        {
                
            $selected = (in_array($row['group_id'], $group_ids)) ? ' selected="selected"' : '';
            $s_group_options .= '<option' . (($row['group_type'] == GROUP_SPECIAL) ? ' class="sep"' : '') . ' value="' . $row['group_id'] . '"' . $selected . '>' . (($row['group_type'] == GROUP_SPECIAL) ? $user->lang['G_' . $row['group_name']] : $row['group_name']) . '</option>';
        }
        $db->sql_freeresult($result);

        return $s_group_options;
    }