]> git.mjollnir.org Git - moodle.git/commitdiff
MDL-10056 Fixed deleting of assignments when original plugin not present
authorskodak <skodak>
Tue, 21 Aug 2007 09:20:42 +0000 (09:20 +0000)
committerskodak <skodak>
Tue, 21 Aug 2007 09:20:42 +0000 (09:20 +0000)
mod/assignment/lib.php

index fd24b3db3749709ff9707e5a28e5c2c545dc53a1..efea612c8832b4683e266111b7e024bb6e1bd401 100644 (file)
@@ -1799,8 +1799,17 @@ function assignment_delete_instance($id){
         return false;
     }
 
-    require_once("$CFG->dirroot/mod/assignment/type/$assignment->assignmenttype/assignment.class.php");
-    $assignmentclass = "assignment_$assignment->assignmenttype";
+    // fall back to base class if plugin missing
+    $classfile = "$CFG->dirroot/mod/assignment/type/$assignment->assignmenttype/assignment.class.php";
+    if (file_exists($classfile)) {
+        require_once($classfile);
+        $assignmentclass = "assignment_$assignment->assignmenttype";
+
+    } else {
+        debugging("Missing assignment plug-in: {$assignment->assignmenttype}. Using base class for deleting instead.");
+        $assignmentclass = "assignment_base";
+    }
+
     $ass = new $assignmentclass();
     return $ass->delete_instance($assignment);
 }