From: moodler Date: Sat, 2 Aug 2003 11:32:59 +0000 (+0000) Subject: Move the code for clearing out a course into a new function: X-Git-Url: http://git.mjollnir.org/gw?a=commitdiff_plain;h=07aeb7b0bfb517293de797321f9c259e2c17f9d6;p=moodle.git Move the code for clearing out a course into a new function: remove_course_contents() --- diff --git a/course/delete.php b/course/delete.php index 17d0092d38..a55a121b26 100644 --- a/course/delete.php +++ b/course/delete.php @@ -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 (delete_records("user_teachers", "course", $course->id)) { - notify("$strdeleted teachers"); + if (!remove_course_contents($course->id)) { + notify("An error occurred while deleting some of the course contents."); } - // 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) ); diff --git a/lib/moodlelib.php b/lib/moodlelib.php index 2ed83d6ba2..a3d3e52940 100644 --- a/lib/moodlelib.php +++ b/lib/moodlelib.php @@ -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 ////////////////////////////////////////////////