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); } } } }