Changeset 17984

Show
Ignore:
Timestamp:
10/07/08 12:07:51 (2 months ago)
Author:
netblade
Message:

sorted the group-select

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • branches/MidCOM_2_8/midcom.admin.user/handler/list.php

    r16379 r17984  
    206206        $data['groups'] = array 
    207207        ( 
    208             0 => 'Midgard Administrators', 
     208            0 => array 
     209            ( 
     210                'title' => 'Midgard Administrators', 
     211                'level' => '0', 
     212                'id' => 0, 
     213            ), 
    209214        ); 
    210215        if (count($this->_persons) > 0) 
    211216        { 
    212             $qb = midcom_db_group::new_query_builder(); 
    213             $groups = $qb->execute(); 
    214             foreach ($groups as $group) 
    215             { 
    216                 $data['groups'][$group->id] = $group; 
    217             } 
     217            $data['groups'][] = $this->list_groups_for_select(0, &$data, 0); 
    218218        } 
    219219         
     
    223223 
    224224        return true; 
     225    } 
     226     
     227    /** 
     228     * Internal helper for showing the groups recursively 
     229     *  
     230     * @access private 
     231     * @param int $id 
     232     * @param array &$data 
     233     */ 
     234    function list_groups_for_select($id, &$data, $level) 
     235    { 
     236        $mc = midcom_db_group::new_collector('owner', (int) $id); 
     237        $mc->add_value_property('name'); 
     238        $mc->add_value_property('official'); 
     239        $mc->add_value_property('id'); 
     240         
     241        // Hide SG0 groups if not in SG0 view 
     242        if ($_MIDGARD['sitegroup'] !== 0) 
     243        { 
     244            $mc->add_constraint('sitegroup', '=', $_MIDGARD['sitegroup']); 
     245        } 
     246         
     247        // Set the order 
     248        $mc->add_order('metadata.score'); 
     249        $mc->add_order('official'); 
     250        $mc->add_order('name'); 
     251         
     252        // Get the results 
     253        $mc->execute(); 
     254        $keys = $mc->list_keys(); 
     255         
     256        // Hide empty groups 
     257        if ($mc->count() === 0) 
     258        { 
     259            return; 
     260        } 
     261         
     262        $data['parent_id'] = $id; 
     263         
     264        foreach ($keys as $guid => $array) 
     265        { 
     266            $group['guid'] = $guid; 
     267            $group['id'] = $mc->get_subkey($guid, 'id'); 
     268            $group['name'] = $mc->get_subkey($guid, 'name'); 
     269             
     270            if (($title = $mc->get_subkey($guid, 'official'))) 
     271            { 
     272                $group['title'] = $title; 
     273            } 
     274            else 
     275            { 
     276                $group['title'] = $group['name']; 
     277            } 
     278             
     279            if (!$group['title']) 
     280            { 
     281                $group['title'] = $_MIDCOM->i18n->get_string('unknown', 'midcom.admin.user'); 
     282            } 
     283            $group['level'] = $level; 
     284             
     285            $data['groups'][] = $group; 
     286            $level++; 
     287            $this->list_groups_for_select($group['id'], &$data, $level); 
     288            $level--; 
     289        } 
    225290    } 
    226291     
  • branches/MidCOM_2_8/midcom.admin.user/style/midcom-admin-user-personlist-footer.php

    r14775 r17984  
    4545                        foreach ($data['groups'] as $group) 
    4646                        { 
    47                             if (!is_object($group)) 
     47                            if (!is_array($group)) 
    4848                            { 
    4949                                continue; 
    5050                            } 
    51                             echo "<option value=\"{$group->id}\">{$group->official}</option>\n"; 
     51 
     52                            $level_indent = ''; 
     53                            for($i = 0;$i < $group['level']; $i++) 
     54                            { 
     55                                $level_indent = $level_indent . '-'; 
     56                            } 
     57                             
     58                            if ($level_indent != '') 
     59                            { 
     60                                $title = $level_indent . '> ' . $group['title']; 
     61                            } 
     62                            else 
     63                            { 
     64                                $title = $group['title']; 
     65                            } 
     66 
     67                             
     68                            echo "<option value=\"" . $group['id'] . "\">" . $title . "</option>\n"; 
    5269                        } 
    5370                        ?>