$interbreadcrumb[] = array("url" => "class_list.php?filtreCours=" . urlencode($course), "name" => get_lang('AdminClasses')); if ($_POST['formSent']) { $form_sent = $_POST['formSent']; $first_letter_left = $_POST['firstLetterLeft']; $first_letter_right = $_POST['firstLetterRight']; $left_user_list = is_array($_POST['LeftUserList']) ? $_POST['LeftUserList'] : array(); $right_user_list = is_array($_POST['RightUserList']) ? $_POST['RightUserList'] : array(); $add_to_class = empty($_POST['addToClass']) ? 0 : 1; $remove_from_class = empty($_POST['removeFromClass']) ? 0 : 1; if ($form_sent == 1) { if ($add_to_class) { if (count($left_user_list) == 0) { $error_message = get_lang('AtLeastOneUser'); } else { foreach ($left_user_list as $user_id) { ClassManager::add_user($user_id, $class_id); } header('Location: class_list.php?filtreCours=' . urlencode($course)); exit; } } elseif ($remove_from_class) { if (count($right_user_list) == 0) { $error_message = get_lang('AtLeastOneUser'); } else { foreach ($right_user_list as $index => $user_id) { ClassManager::unsubscribe_user($user_id, $class_id); } header('Location: class_list.php?filtreCours=' . urlencode($course)); exit; } }
/** * Saves imported data. */ function save_data($users_classes) { global $purification_option_for_usernames; // Table definitions. $user_table = Database::get_main_table(TABLE_MAIN_USER); $class_user_table = Database::get_main_table(TABLE_MAIN_CLASS_USER); $class_table = Database::get_main_table(TABLE_MAIN_CLASS); // Data parsing: purification + conversion (UserName, ClassName) --> (user_is, class_id) $csv_data = array(); foreach ($users_classes as $index => $user_class) { $sql1 = "SELECT user_id FROM {$user_table} WHERE username = '******'UserName'], $purification_option_for_usernames)) . "'"; $res1 = Database::query($sql1); $obj1 = Database::fetch_object($res1); $sql2 = "SELECT id FROM {$class_table} WHERE name = '" . Database::escape_string(trim($user_class['ClassName'])) . "'"; $res2 = Database::query($sql2); $obj2 = Database::fetch_object($res2); if ($obj1 && $obj2) { $csv_data[$obj1->user_id][$obj2->id] = 1; } } // Logic for processing the request (data + UI options). $db_subscriptions = array(); foreach ($csv_data as $user_id => $csv_subscriptions) { $sql = "SELECT class_id FROM {$class_user_table} cu WHERE cu.user_id = {$user_id}"; $res = Database::query($sql); while ($obj = Database::fetch_object($res)) { $db_subscriptions[$obj->class_id] = 1; } $to_subscribe = array_diff(array_keys($csv_subscriptions), array_keys($db_subscriptions)); $to_unsubscribe = array_diff(array_keys($db_subscriptions), array_keys($csv_subscriptions)); // Subscriptions for new classes. if ($_POST['subscribe']) { foreach ($to_subscribe as $class_id) { ClassManager::add_user($user_id, $class_id); } } // Unsubscription from previous classes. if ($_POST['unsubscribe']) { foreach ($to_unsubscribe as $class_id) { ClassManager::unsubscribe_user($user_id, $class_id); } } } }
/** * Save the imported data */ function save_data($users) { $user_table = Database::get_main_table(TABLE_MAIN_USER); if (is_array($users)) { foreach ($users as $index => $user) { $user = complete_missing_data($user); $user['Status'] = api_status_key($user['Status']); $user_id = UserManager::create_user($user['FirstName'], $user['LastName'], $user['Status'], $user['Email'], $user['UserName'], $user['Password'], $user['OfficialCode'], api_get_setting('PlatformLanguage'), $user['PhoneNumber'], '', $user['AuthSource']); foreach ($user['Courses'] as $index => $course) { if (CourseManager::course_exists($course)) { CourseManager::subscribe_user($user_id, $course, $user['Status']); } } if (strlen($user['ClassName']) > 0) { $class_id = ClassManager::get_class_id($user['ClassName']); ClassManager::add_user($user_id, $class_id); } // TODO: Hard-coded French texts. // Qualite if (!empty($user['Qualite'])) { UserManager::update_extra_field_value($user_id, 'qualite', $user['Qualite']); } // Categorie if (!empty($user['Categorie'])) { UserManager::update_extra_field_value($user_id, 'categorie', $user['Categorie']); } // Etat if (!empty($user['Etat'])) { UserManager::update_extra_field_value($user_id, 'etat', $user['Etat']); } // Niveau if (!empty($user['Niveau'])) { UserManager::update_extra_field_value($user_id, 'niveau', $user['Niveau']); } } } }
/** * Save the imported data * @param array List of users * @return void * @uses global variable $inserted_in_course, which returns the list of courses the user was inserted in */ function save_data($users) { global $inserted_in_course; // Not all scripts declare the $inserted_in_course array (although they should). if (!isset($inserted_in_course)) { $inserted_in_course = array(); } $send_mail = $_POST['sendMail'] ? 1 : 0; if (is_array($users)) { foreach ($users as $index => $user) { $user = complete_missing_data($user); $user['Status'] = api_status_key($user['Status']); $user_id = UserManager::create_user($user['FirstName'], $user['LastName'], $user['Status'], $user['Email'], $user['UserName'], $user['Password'], $user['OfficialCode'], $user['language'], $user['PhoneNumber'], '', $user['AuthSource'], null, 1, 0, null, null, $send_mail); if (!is_array($user['Courses']) && !empty($user['Courses'])) { $user['Courses'] = array($user['Courses']); } if (is_array($user['Courses'])) { foreach ($user['Courses'] as $index => $course) { if (CourseManager::course_exists($course)) { CourseManager::subscribe_user($user_id, $course, $user['Status']); $course_info = CourseManager::get_course_information($course); $inserted_in_course[$course] = $course_info['title']; } if (CourseManager::course_exists($course, true)) { // Also subscribe to virtual courses through check on visual code. $list = CourseManager::get_courses_info_from_visual_code($course); foreach ($list as $vcourse) { if ($vcourse['code'] == $course) { // Ignore, this has already been inserted. } else { CourseManager::subscribe_user($user_id, $vcourse['code'], $user['Status']); $inserted_in_course[$vcourse['code']] = $vcourse['title']; } } } } } if (!empty($user['ClassName'])) { $class_id = ClassManager::get_class_id($user['ClassName']); ClassManager::add_user($user_id, $class_id); } // Saving extra fields. global $extra_fields; // We are sure that the extra field exists. foreach ($extra_fields as $extras) { if (isset($user[$extras[1]])) { $key = $extras[1]; $value = $user[$extras[1]]; UserManager::update_extra_field_value($user_id, $key, $value); } } } } }