Move the code for clearing out a course into a new function:
remove_course_contents()
This commit is contained in:
+4
-56
@@ -68,64 +68,12 @@
|
||||
|
||||
print_heading($strdeletingcourse);
|
||||
|
||||
$strdeleted = get_string("deleted");
|
||||
// First delete every instance of every module
|
||||
|
||||
if ($allmods = get_records("modules") ) {
|
||||
foreach ($allmods as $mod) {
|
||||
$modname = $mod->name;
|
||||
$modfile = "../mod/$modname/lib.php";
|
||||
$moddelete = $modname."_delete_instance";
|
||||
$count=0;
|
||||
if (file_exists($modfile)) {
|
||||
include_once($modfile);
|
||||
if (function_exists($moddelete)) {
|
||||
if ($instances = get_records($modname, "course", $course->id)) {
|
||||
foreach ($instances as $instance) {
|
||||
if ($moddelete($instance->id)) {
|
||||
$count++;
|
||||
} else {
|
||||
notify("Could not delete $modname instance $instance->id ($instance->name)");
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
notify("Function $moddelete() doesn't exist!");
|
||||
}
|
||||
|
||||
}
|
||||
notify("$strdeleted $count instances of $modname");
|
||||
}
|
||||
} else {
|
||||
error("No modules are installed!");
|
||||
}
|
||||
|
||||
// Delete any user stuff
|
||||
|
||||
if (delete_records("user_students", "course", $course->id)) {
|
||||
notify("$strdeleted student enrolments");
|
||||
if (!remove_course_contents($course->id)) {
|
||||
notify("An error occurred while deleting some of the course contents.");
|
||||
}
|
||||
|
||||
if (delete_records("user_teachers", "course", $course->id)) {
|
||||
notify("$strdeleted teachers");
|
||||
}
|
||||
|
||||
// Delete logs
|
||||
|
||||
if (delete_records("log", "course", $course->id)) {
|
||||
notify("$strdeleted logs");
|
||||
}
|
||||
|
||||
// Delete any course stuff
|
||||
|
||||
if (delete_records("course_sections", "course", $course->id)) {
|
||||
notify("$strdeleted course sections");
|
||||
}
|
||||
if (delete_records("course_modules", "course", $course->id)) {
|
||||
notify("$strdeleted course modules");
|
||||
}
|
||||
if (delete_records("course", "id", $course->id)) {
|
||||
notify("$strdeleted the main course record");
|
||||
if (!delete_records("course", "id", $course->id)) {
|
||||
notify("An error occurred while deleting the main course record.");
|
||||
}
|
||||
|
||||
print_heading( get_string("deletedcourse", "", $course->shortname) );
|
||||
|
||||
@@ -662,6 +662,105 @@ function remove_admin($user) {
|
||||
}
|
||||
|
||||
|
||||
function remove_course_contents($courseid, $showfeedback=true) {
|
||||
/// Clear a course out completely, deleting all content
|
||||
/// but don't delete the course itself
|
||||
|
||||
global $CFG;
|
||||
|
||||
$result = true;
|
||||
|
||||
if (! $course = get_record("course", "id", $courseid)) {
|
||||
error("Course ID was incorrect (can't find it)");
|
||||
}
|
||||
|
||||
$strdeleted = get_string("deleted");
|
||||
|
||||
// First delete every instance of every module
|
||||
|
||||
if ($allmods = get_records("modules") ) {
|
||||
foreach ($allmods as $mod) {
|
||||
$modname = $mod->name;
|
||||
$modfile = "$CFG->dirroot/mod/$modname/lib.php";
|
||||
$moddelete = $modname."_delete_instance";
|
||||
$count=0;
|
||||
if (file_exists($modfile)) {
|
||||
include_once($modfile);
|
||||
if (function_exists($moddelete)) {
|
||||
if ($instances = get_records($modname, "course", $course->id)) {
|
||||
foreach ($instances as $instance) {
|
||||
if ($moddelete($instance->id)) {
|
||||
$count++;
|
||||
} else {
|
||||
notify("Could not delete $modname instance $instance->id ($instance->name)");
|
||||
$result = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
notify("Function $moddelete() doesn't exist!");
|
||||
$result = false;
|
||||
}
|
||||
|
||||
}
|
||||
if ($showfeedback) {
|
||||
notify("$strdeleted $count x $modname");
|
||||
}
|
||||
}
|
||||
} else {
|
||||
error("No modules are installed!");
|
||||
}
|
||||
|
||||
// Delete any user stuff
|
||||
|
||||
if (delete_records("user_students", "course", $course->id)) {
|
||||
if ($showfeedback) {
|
||||
notify("$strdeleted user_students");
|
||||
}
|
||||
} else {
|
||||
$result = false;
|
||||
}
|
||||
|
||||
if (delete_records("user_teachers", "course", $course->id)) {
|
||||
if ($showfeedback) {
|
||||
notify("$strdeleted user_teachers");
|
||||
}
|
||||
} else {
|
||||
$result = false;
|
||||
}
|
||||
|
||||
// Delete logs
|
||||
|
||||
if (delete_records("log", "course", $course->id)) {
|
||||
if ($showfeedback) {
|
||||
notify("$strdeleted log");
|
||||
}
|
||||
} else {
|
||||
$result = false;
|
||||
}
|
||||
|
||||
// Delete any course stuff
|
||||
|
||||
if (delete_records("course_sections", "course", $course->id)) {
|
||||
if ($showfeedback) {
|
||||
notify("$strdeleted course_sections");
|
||||
}
|
||||
} else {
|
||||
$result = false;
|
||||
}
|
||||
|
||||
if (delete_records("course_modules", "course", $course->id)) {
|
||||
if ($showfeedback) {
|
||||
notify("$strdeleted course_modules");
|
||||
}
|
||||
} else {
|
||||
$result = false;
|
||||
}
|
||||
|
||||
return $result;
|
||||
|
||||
}
|
||||
|
||||
|
||||
/// CORRESPONDENCE ////////////////////////////////////////////////
|
||||
|
||||
|
||||
Reference in New Issue
Block a user