From: moodler Date: Fri, 9 Jan 2004 16:54:10 +0000 (+0000) Subject: Don't move courses from delete categories to the "zero" category X-Git-Url: http://git.mjollnir.org/gw?a=commitdiff_plain;h=17c4a011726e05023ff9a206e42bba469a659047;p=moodle.git Don't move courses from delete categories to the "zero" category (Make sure the grandparents are home before sending the kids there!) --- diff --git a/course/index.php b/course/index.php index 13a2eecd69..c648b6a95f 100644 --- a/course/index.php +++ b/course/index.php @@ -98,28 +98,33 @@ /// Delete a category if necessary if (isset($delete)) { - if ($tempcat = get_record("course_categories", "id", $delete)) { - if (delete_records("course_categories", "id", $tempcat->id)) { - notify(get_string("categorydeleted", "", $tempcat->name)); - } + if ($deletecat = get_record("course_categories", "id", $delete)) { /// Send the children categories to live with their grandparent - if ($childcats = get_records("course_categories", "parent", $tempcat->id)) { + if ($childcats = get_records("course_categories", "parent", $deletecat->id)) { foreach ($childcats as $childcat) { - if (! set_field("course_categories", "parent", $tempcat->parent, "id", $childcat->id)) { - notify("Could not update a child category!"); + if (! set_field("course_categories", "parent", $deletecat->parent, "id", $childcat->id)) { + error("Could not update a child category!", "index.php"); } } } - /// Send the children courses to live with their grandparent as well - if ($childcourses = get_records("course", "category", $tempcat->id)) { - foreach ($childcourses as $childcourse) { - if (! set_field("course", "category", $tempcat->parent, "id", $childcourse->id)) { - notify("Could not update a child course!"); + /// If the grandparent is a valid (non-zero) category, then + /// send the children courses to live with their grandparent as well + if ($deletecat->parent) { + if ($childcourses = get_records("course", "category", $deletecat->id)) { + foreach ($childcourses as $childcourse) { + if (! set_field("course", "category", $deletecat->parent, "id", $childcourse->id)) { + error("Could not update a child course!", "index.php"); + } } } } + + /// Finally delete the category itself + if (delete_records("course_categories", "id", $deletecat->id)) { + notify(get_string("categorydeleted", "", $deletecat->name)); + } } }