diff --git a/lib/adminlib.php b/lib/adminlib.php index 8c5751eeec1..9d6a4a30733 100644 --- a/lib/adminlib.php +++ b/lib/adminlib.php @@ -4001,12 +4001,13 @@ class admin_setting_sitesettext extends admin_setting_configtext { * @return mixed true or message string */ public function validate($data) { - global $DB; + global $DB, $SITE; $cleaned = clean_param($data, PARAM_TEXT); if ($cleaned === '') { return get_string('required'); } - if ($this->name ==='shortname' && $DB->record_exists('course', array('shortname' => $data))) { + if ($this->name ==='shortname' && + $DB->record_exists_sql('SELECT id from {course} WHERE shortname = ? AND id <> ?', array($data, $SITE->id))) { return get_string('shortnametaken', 'error', $data); } if ("$data" == "$cleaned") { // implicit conversion to string is needed to do exact comparison