$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);
            }
        }
    }
}
예제 #3
0
/**
 * 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']);
            }
        }
    }
}
예제 #4
0
/**
 * 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);
                }
            }
        }
    }
}