/** * Get the list of groups from the course * @param string $course_code * @param int $session_id Session ID (optional) * @param boolean $in_get_empty_group get empty groups (optional) * @return array List of groups info */ public static function get_group_list_of_course($course_code, $session_id = 0, $in_get_empty_group = 0) { $course_info = api_get_course_info($course_code); if (empty($course_info)) { return array(); } $course_id = $course_info['real_id']; if (empty($course_id)) { return array(); } $group_list = array(); $session_id != 0 ? $session_condition = ' WHERE g.session_id IN(1,' . intval($session_id) . ')' : ($session_condition = ' WHERE g.session_id = 0'); if ($in_get_empty_group == 0) { // get only groups that are not empty $sql = "SELECT DISTINCT g.id, g.name\n FROM " . Database::get_course_table(TABLE_GROUP) . " AS g\n INNER JOIN " . Database::get_course_table(TABLE_GROUP_USER) . " gu\n ON (g.id = gu.group_id AND g.c_id = {$course_id} AND gu.c_id = {$course_id})\n {$session_condition}\n ORDER BY g.name"; } else { // get all groups even if they are empty $sql = "SELECT g.id, g.name\n FROM " . Database::get_course_table(TABLE_GROUP) . " AS g\n {$session_condition}\n AND c_id = {$course_id}"; } $result = Database::query($sql); while ($group_data = Database::fetch_array($result)) { $group_data['userNb'] = GroupManager::number_of_students($group_data['id'], $course_id); $group_list[$group_data['id']] = $group_data; } return $group_list; }
$create_groups_form->addGroup($group_el, 'create_groups', get_lang('NumberOfGroupsToCreate'), ' ', false); $defaults = array(); $defaults['number_of_groups'] = 1; $create_groups_form->setDefaults($defaults); $create_groups_form->display(); } else { echo get_lang('NoCategoriesDefined'); } /* * Show form to generate subgroups */ if (api_get_setting('allow_group_categories') == 'true' && count(GroupManager::get_group_list()) > 0) { $base_group_options = array(); $groups = GroupManager::get_group_list(); foreach ($groups as $index => $group) { $number_of_students = GroupManager::number_of_students($group['id']); if ($number_of_students > 0) { $base_group_options[$group['id']] = $group['name'] . ' (' . $number_of_students . ' ' . get_lang('Users') . ')'; } } if (count($base_group_options) > 0) { $create_subgroups_form = new FormValidator('create_subgroups'); $create_subgroups_form->addElement('header', get_lang('CreateSubgroups')); $create_subgroups_form->addElement('html', get_lang('CreateSubgroupsInfo')); $create_subgroups_form->addElement('hidden', 'action'); $group_el = array(); $group_el[] = $create_subgroups_form->createElement('static', null, null, get_lang('CreateNumberOfGroups')); $group_el[] = $create_subgroups_form->createElement('text', 'number_of_groups', null, array('size' => 3)); $group_el[] = $create_subgroups_form->createElement('static', null, null, get_lang('WithUsersFrom')); $group_el[] = $create_subgroups_form->createElement('select', 'base_group', null, $base_group_options); $group_el[] = $create_subgroups_form->createElement('button', 'submit', get_lang('Ok'));