get($id); $usergroup->protectScript($groupInfo); // setting breadcrumbs $interbreadcrumb[] = ['url' => 'index.php', 'name' => get_lang('Administration')]; $interbreadcrumb[] = ['url' => 'usergroups.php', 'name' => get_lang('Classes')]; // setting the name of the tool $tool_name = get_lang('Subscribe users to class'); $htmlHeadXtra[] = ' '; $form_sent = 0; $extra_field_list = UserManager::get_extra_fields(); $new_field_list = []; if (is_array($extra_field_list)) { foreach ($extra_field_list as $extra_field) { //if is enabled to filter and is a "" field type if ($extra_field[8] == 1 && $extra_field[2] == 4) { $new_field_list[] = [ 'name' => $extra_field[3], 'variable' => $extra_field[1], 'data' => $extra_field[9], ]; } } } if (empty($id)) { api_not_allowed(true); } $first_letter_user = ''; if (isset($_POST['form_sent']) && $_POST['form_sent']) { $form_sent = $_POST['form_sent']; $elements_posted = isset($_POST['elements_in_name']) ? $_POST['elements_in_name'] : null; $first_letter_user = $_POST['firstLetterUser']; if (!is_array($elements_posted)) { $elements_posted = []; } // If "social group" you need to select a role if ($groupInfo['group_type'] == 1 && empty($relation)) { Display::addFlash(Display::return_message(get_lang('Select role'), 'warning')); header('Location: '.api_get_self().'?id='.$id); exit; } if ($form_sent == 1) { Display::addFlash(Display::return_message(get_lang('Update successful'))); // Added a parameter to send emails when registering a user $usergroup->subscribe_users_to_usergroup( $id, $elements_posted, true, $relation ); header('Location: usergroups.php'); exit; } } if (isset($_GET['action']) && $_GET['action'] == 'export') { $users = $usergroup->getUserListByUserGroup($id); if (!empty($users)) { $data = [ ['UserName', 'ClassName'], ]; foreach ($users as $user) { $data[] = [$user['username'], $groupInfo['name']]; } $filename = 'export_user_class_'.api_get_local_time(); Export::arrayToCsv($data, $filename); exit; } } // Filter by Extra Fields $use_extra_fields = false; if (is_array($extra_field_list)) { if (is_array($new_field_list) && count($new_field_list) > 0) { foreach ($new_field_list as $new_field) { $varname = 'field_'.$new_field['variable']; if (UserManager::is_extra_field_available($new_field['variable'])) { if (isset($_POST[$varname]) && $_POST[$varname] != '0') { $use_extra_fields = true; $extra_field_result[] = UserManager::get_extra_user_data_by_value( $new_field['variable'], $_POST[$varname] ); } } } } } if ($use_extra_fields) { $final_result = []; if (count($extra_field_result) > 1) { for ($i = 0; $i < count($extra_field_result) - 1; $i++) { if (is_array($extra_field_result[$i + 1])) { $final_result = array_intersect($extra_field_result[$i], $extra_field_result[$i + 1]); } } } else { $final_result = $extra_field_result[0]; } } // Filters $filters = [ ['type' => 'text', 'name' => 'username', 'label' => get_lang('Username')], ['type' => 'text', 'name' => 'firstname', 'label' => get_lang('First name')], ['type' => 'text', 'name' => 'lastname', 'label' => get_lang('Last name')], ['type' => 'text', 'name' => 'official_code', 'label' => get_lang('Code')], ['type' => 'text', 'name' => 'email', 'label' => get_lang('e-mail')], ]; $searchForm = new FormValidator('search', 'get', api_get_self().'?id='.$id); $searchForm->addHeader(get_lang('Advanced search')); $renderer = &$searchForm->defaultRenderer(); $searchForm->addElement('hidden', 'id', $id); foreach ($filters as $param) { $searchForm->addElement($param['type'], $param['name'], $param['label']); } $searchForm->addButtonSearch(); $filterData = []; if ($searchForm->validate()) { $filterData = $searchForm->getSubmitValues(); } $data = $usergroup->get($id); $list_in = $usergroup->getUsersByUsergroupAndRelation($id, $relation); $list_all = $usergroup->get_users_by_usergroup(); $order = ['lastname']; if (api_is_western_name_order()) { $order = ['firstname']; } $orderListByOfficialCode = api_get_setting('order_user_list_by_official_code'); if ($orderListByOfficialCode === 'true') { $order = ['official_code', 'lastname']; } $conditions = []; if (!empty($first_letter_user)) { $conditions['lastname'] = $first_letter_user; } if (!empty($filters) && !empty($filterData)) { foreach ($filters as $filter) { if (isset($filter['name']) && isset($filterData[$filter['name']])) { $value = $filterData[$filter['name']]; if (!empty($value)) { $conditions[$filter['name']] = $value; } } } } $elements_not_in = $elements_in = []; $complete_user_list = UserManager::getUserListLike([], $order, false, 'AND'); if (!empty($complete_user_list)) { foreach ($complete_user_list as $item) { if ($use_extra_fields) { if (!in_array($item['user_id'], $final_result)) { continue; } } // Avoid anonymous users if ($item['status'] == 6) { continue; } if (in_array($item['user_id'], $list_in)) { $officialCode = !empty($item['official_code']) ? ' - '.$item['official_code'] : null; $person_name = api_get_person_name( $item['firstname'], $item['lastname'] ).' ('.$item['username'].') '.$officialCode; $orderListByOfficialCode = api_get_setting('order_user_list_by_official_code'); if ($orderListByOfficialCode === 'true') { $officialCode = !empty($item['official_code']) ? $item['official_code'].' - ' : '? - '; $person_name = $officialCode.api_get_person_name( $item['firstname'], $item['lastname'] ).' ('.$item['username'].') '; } $elements_in[$item['user_id']] = $person_name; } } } $user_with_any_group = isset($_REQUEST['user_with_any_group']) && !empty($_REQUEST['user_with_any_group']) ? true : false; if ($user_with_any_group) { $user_list = UserManager::getUserListLike($conditions, $order, true, 'AND'); $new_user_list = []; foreach ($user_list as $item) { if (!in_array($item['user_id'], $list_all)) { $new_user_list[] = $item; } } $user_list = $new_user_list; } else { $user_list = UserManager::getUserListLike($conditions, $order, true, 'AND'); } if (!empty($user_list)) { foreach ($user_list as $item) { if ($use_extra_fields) { if (!in_array($item['user_id'], $final_result)) { continue; } } // Avoid anonymous users if ($item['status'] == ANONYMOUS) { continue; } $officialCode = !empty($item['official_code']) ? ' - '.$item['official_code'] : null; $person_name = api_get_person_name( $item['firstname'], $item['lastname'] ).' ('.$item['username'].') '.$officialCode; $orderListByOfficialCode = api_get_setting('order_user_list_by_official_code'); if ($orderListByOfficialCode === 'true') { $officialCode = !empty($item['official_code']) ? $item['official_code'].' - ' : '? - '; $person_name = $officialCode.api_get_person_name( $item['firstname'], $item['lastname'] ).' ('.$item['username'].') '; } if (!in_array($item['user_id'], $list_in)) { $elements_not_in[$item['user_id']] = $person_name; } } } Display::display_header($tool_name); echo ''; echo ''. Display::return_icon('back.png', get_lang('Back'), [], ICON_SIZE_MEDIUM).''; echo Display::url(get_lang('Advanced search'), '#', ['class' => 'advanced_options', 'id' => 'advanced_search']); echo ''. Display::return_icon('import_csv.png', get_lang('Import'), [], ICON_SIZE_MEDIUM).''; echo ''. Display::return_icon('export_csv.png', get_lang('Export'), [], ICON_SIZE_MEDIUM).''; echo ''; echo ''; $searchForm->display(); echo ''; ?> '.$tool_name.': '.$data['name'].''; if (is_array($extra_field_list)) { if (is_array($new_field_list) && count($new_field_list) > 0) { echo ''.get_lang('Filter by user').''; foreach ($new_field_list as $new_field) { echo $new_field['name']; $varname = 'field_'.$new_field['variable']; echo ' '; echo '--'.get_lang('Select').'--'; foreach ($new_field['data'] as $option) { $checked = ''; if (isset($_POST[$varname])) { if ($_POST[$varname] == $option[1]) { $checked = 'selected="true"'; } } echo ''.$option[1].''; } echo ''; echo ' '; } echo ''; echo ''; } } echo Display::input('hidden', 'id', $id); echo Display::input('hidden', 'form_sent', '1'); echo Display::input('hidden', 'add_type', null); ?> > > > > > : : -- 'form-control', 'multiple' => 'multiple', 'id' => 'elements_not_in', 'size' => '15px', ], false ); ?> onchange="checked_in_no_group(this.checked);" name="user_with_any_group" id="user_with_any_group_id"> : 'form-control', 'multiple' => 'multiple', 'id' => 'elements_in', 'size' => '15px', ], false ); unset($sessionUsersList); ?> '. get_lang('Subscribe users to class').''; ?>