From a15278543a795eaa97781762745b22f6729ba62b Mon Sep 17 00:00:00 2001 From: martin Date: Sat, 3 Aug 2002 04:44:35 +0000 Subject: [PATCH] Cleaned up the admin pages (and moved some files) and added ability to completely delete courses --- admin/index.php | 18 +++--- course/delete.php | 117 ++++++++++++++++++++++++++++++++++ {admin => course}/teacher.php | 18 ++++-- lang/en/moodle.php | 2 + 4 files changed, 140 insertions(+), 15 deletions(-) create mode 100644 course/delete.php rename {admin => course}/teacher.php (91%) diff --git a/admin/index.php b/admin/index.php index ea63d3e963..548574a5f9 100644 --- a/admin/index.php +++ b/admin/index.php @@ -164,14 +164,16 @@ print_header("$site->fullname: Administration Page","$site->fullname: Administration Page", "Admin"); - echo ""; + $table->head = array ("Site Management", "Course Setup", "Other"); + $table->align = array ("CENTER", "CENTER", "CENTER"); + $table->data[0][0] = "

Site settings

". + "

id\">Site Logs

"; + $table->data[0][1] = "

Create a new course

". + "

Assign teachers to a course

". + "

Delete a course

"; + $table->data[0][2] = "

Edit a user's account

"; + + print_table($table); print_footer(); ?> diff --git a/course/delete.php b/course/delete.php new file mode 100644 index 0000000000..6089d217ed --- /dev/null +++ b/course/delete.php @@ -0,0 +1,117 @@ +wwwroot/admin\">Admin -> Delete a course"); + if ($courses = get_records_sql("SELECT * from course WHERE category > 0 ORDER BY fullname")) { + print_heading("Choose a course to delete"); + print_simple_box_start("CENTER"); + foreach ($courses as $course) { + echo "id\">$course->fullname
"; + } + print_simple_box_end(); + } else { + print_heading(get_string("nocoursesyet")); + print_continue("$CFG->wwwroot/admin/"); + } + print_footer(); + exit; + } + + if (! $course = get_record("course", "id", $id)) { + error("Course ID was incorrect (can't find it)"); + } + + if (! $delete) { + print_header("Delete $course->shortname ?", "Delete $course->shortname ?", + "wwwroot/admin\">Admin -> Delete $course->shortname ?"); + notice_yesno("Are you absolutely sure you want to completely delete this course and all the data it contains?

$course->fullname", "delete.php?id=$course->id&delete=".md5($course->timemodified), "delete.php"); + exit; + } + + if ($delete != md5($course->timemodified)) { + error("The check variable was wrong - try again"); + } + + // OK checks done, delete the course now. + print_header("Deleting $course->shortname", "Deleting $course->shortname", + "wwwroot/admin\">Admin -> Deleting $course->shortname"); + print_heading("Deleting $course->fullname"); + + // First delete every instance of every module + + if ($allmods = get_records_sql("SELECT * FROM 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("Deleted $count instances of $modname"); + } + } else { + error("No modules are installed!"); + } + + // Delete any user stuff + + if (delete_records("user_students", "course", $course->id)) { + notify("Deleted student enrolments"); + } + + if (delete_records("user_teachers", "course", $course->id)) { + notify("Deleted teachers"); + } + + // Delete logs + + if (delete_records("log", "course", $course->id)) { + notify("Deleted logs"); + } + + // Delete any course stuff + + if (delete_records("course_sections", "course", $course->id)) { + notify("Deleted course sections"); + } + if (delete_records("course_modules", "course", $course->id)) { + notify("Deleted course modules"); + } + if (delete_records("course", "id", $course->id)) { + notify("Deleted the main course record"); + } + + print_heading("$course->shortname has been completely deleted"); + + print_continue("delete.php"); + + print_footer(); + +?> diff --git a/admin/teacher.php b/course/teacher.php similarity index 91% rename from admin/teacher.php rename to course/teacher.php index 8355f4271a..a74af31ac6 100644 --- a/admin/teacher.php +++ b/course/teacher.php @@ -16,15 +16,19 @@ } if (!$id) { - $courses = get_records_sql("SELECT * from course WHERE category > 0 ORDER BY fullname"); - print_header("Add teachers to a course", "Add teachers to a course", "wwwroot/admin\">Admin -> Add teachers", ""); - print_heading("Choose a course to add teachers to"); - print_simple_box_start("CENTER"); - foreach ($courses as $course) { - echo "id\">$course->fullname
"; + if ($courses = get_records_sql("SELECT * from course WHERE category > 0 ORDER BY fullname")) { + + print_heading("Choose a course to add teachers to"); + print_simple_box_start("CENTER"); + foreach ($courses as $course) { + echo "id\">$course->fullname
"; + } + print_simple_box_end(); + } else { + print_heading(get_string("nocoursesyet")); + print_continue("$CFG->wwwroot/admin/"); } - print_simple_box_end(); print_footer(); exit; } diff --git a/lang/en/moodle.php b/lang/en/moodle.php index 7277249323..fa7102efe9 100644 --- a/lang/en/moodle.php +++ b/lang/en/moodle.php @@ -23,6 +23,7 @@ $string[changedpassword] = "Changed password"; $string[changessaved] = "Changes saved"; $string[city] = "City/town"; $string[confirmed] = "Your registration has been confirmed"; +$string["continue"] = "Continue"; $string[country] = "Country"; $string[course] = "Course"; $string[courses] = "Courses"; @@ -121,6 +122,7 @@ $string[missingusername] = "Missing username"; $string[movedown] = "Move down"; $string[moveup] = "Move up"; $string[mustconfirm] = "You need to confirm your login"; +$string[nocoursesyet] = "There are no courses yet"; $string[newaccount] = "New account"; $string[newpassword] = "New password"; $string[newpasswordtext] = "Hi \$a->firstname, -- 2.39.5