/** * This function empties all classes, * remove link between classes and users * delete related users from related courses */ function empty_all_class() { $tbl = claro_sql_get_main_tbl(); $sql = "\n SELECT id FROM `" . $tbl['class'] . "`"; $searchResultList = claro_sql_query_fetch_all($sql); foreach ($searchResultList as $thisClass) { $classId = $thisClass['id']; // find all the students enrolled in that class $sql2 = "\n SELECT user_id from `" . $tbl['rel_class_user'] . "`\n WHERE class_id = '" . claro_sql_escape($classId) . "'"; $thisClassUser = claro_sql_query_fetch_all($sql2); // Find all the courses to whom the class is enrolled $sql2 = "\n SELECT courseId\n FROM `" . $tbl['rel_course_class'] . "`\n WHERE classId = '" . claro_sql_escape($classId) . "'"; $searchResultList2 = claro_sql_query_fetch_all($sql2); foreach ($searchResultList2 as $thisCourse) { $courseCode = $thisCourse['courseId']; foreach ($thisClassUser as $thisUser) { $user_id = $thisUser['user_id']; if (!user_remove_from_course($user_id, $courseCode, false, false, $classId)) { return claro_failure::set_failure('PROBLEM_WITH_COURSE_UNSUSCRIBTION ' . $user_id . ' ' . $courseCode); //TODO : ameliorer la detection d'erreur } } } class_remove_all_users($classId); } return true; }
$class_id = isset($_REQUEST['class_id']) ? (int) $_REQUEST['class_id'] : 0; $search = isset($_REQUEST['search']) ? trim($_REQUEST['search']) : null; // find info about the class if (($classinfo = class_get_properties($class_id)) === false) { $class_id = 0; } $dialogBox = new DialogBox(); if (!empty($class_id)) { switch ($cmd) { case 'unsubscribe': if (user_remove_to_class($user_id, $class_id)) { $dialogBox->success(get_lang('User has been sucessfully unregistered from the class')); } break; case 'unsubscribe_all': if (class_remove_all_users($class_id)) { $dialogBox->success(get_lang('All users have been sucessfully unregistered from the class')); } break; case 'export': if ($cmd == 'export' && claro_is_platform_admin()) { require_once dirname(__FILE__) . '/../user/lib/export.lib.php'; $csv = export_user_list_for_class($class_id); if (!empty($csv)) { claro_send_stream($csv, $classinfo['name'] . '.csv'); exit; } } break; default: // No command