From 3a48019ea3ba039bd234247e522280d549cb5065 Mon Sep 17 00:00:00 2001 From: Petr Skoda Date: Sun, 6 May 2012 15:51:25 +0200 Subject: [PATCH] MDL-32178 ignore duplicates in enroL_database external course table --- enrol/database/lib.php | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/enrol/database/lib.php b/enrol/database/lib.php index 08b86f9beae..a6b46834c0d 100644 --- a/enrol/database/lib.php +++ b/enrol/database/lib.php @@ -689,6 +689,19 @@ class enrol_database_plugin extends enrol_plugin { $newcourse->idnumber = $fields->idnumber; $newcourse->category = $fields->category ? $fields->category : $defaultcategory; + // Detect duplicate data once again, above we can not find duplicates + // in external data using DB collation rules... + if ($DB->record_exists('course', array('shortname' => $newcourse->shortname))) { + if ($verbose) { + mtrace(" can not insert new course, duplicate shortname detected: ".$newcourse->shortname); + } + continue; + } else if (!empty($newcourse->idnumber) and $DB->record_exists('course', array('idnumber' => $newcourse->idnumber))) { + if ($verbose) { + mtrace(" can not insert new course, duplicate idnumber detected: ".$newcourse->idnumber); + } + continue; + } $c = create_course($newcourse); if ($verbose) { mtrace(" creating course: $c->id, $c->fullname, $c->shortname, $c->idnumber, $c->category");