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;
            }
        }
    }
}
Display::display_header($tool_name);
//api_display_tool_title($tool_name);
$target_name = api_sort_by_first_name() ? 'firstname' : 'lastname';
$sql = "SELECT u.user_id,lastname,firstname,username FROM {$tbl_user} u LEFT JOIN {$tbl_class_user} cu ON u.user_id=cu.user_id AND class_id='{$class_id}' WHERE " . $target_name . " LIKE '" . $first_letter_left . "%' AND class_id IS NULL ORDER BY " . (count($left_user_list) > 0 ? "(user_id IN(" . implode(',', $left_user_list) . ")) DESC," : "") . " " . $target_name;
$result = Database::query($sql);
$left_users = Database::store_result($result);
$sql = "SELECT u.user_id,lastname,firstname,username FROM {$tbl_user} u,{$tbl_class_user} cu WHERE cu.user_id=u.user_id AND class_id='{$class_id}' AND " . $target_name . " LIKE '" . $first_letter_right . "%' ORDER BY " . (count($right_user_list) > 0 ? "(user_id IN(" . implode(',', $right_user_list) . ")) DESC," : "") . " " . $target_name;
$result = Database::query($sql);
/**
 * 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);
            }
        }
    }
}