$localrolefield = $this->get_config('localrolefield');
$localuserfield = $this->get_config('localuserfield');
- $localcoursefiled = $this->get_config('localcoursefield');
+ $localcoursefield = $this->get_config('localcoursefield');
$unenrolaction = $this->get_config('unenrolaction');
$defaultrole = $this->get_config('defaultrole');
// missing course info
continue;
}
- if (!$course = $DB->get_record('course', array($localcoursefiled=>$fields[$coursefield]), 'id,visible')) {
+ if (!$course = $DB->get_record('course', array($localcoursefield=>$fields[$coursefield]), 'id,visible')) {
continue;
}
if (!$course->visible and $ignorehidden) {
$localrolefield = $this->get_config('localrolefield');
$localuserfield = $this->get_config('localuserfield');
- $localcoursefiled = $this->get_config('localcoursefield');
+ $localcoursefield = $this->get_config('localcoursefield');
$unenrolaction = $this->get_config('unenrolaction');
$defaultrole = $this->get_config('defaultrole');
// first find all existing courses with enrol instance
$existing = array();
- $sql = "SELECT c.id, c.visible, c.$localcoursefiled AS mapping, e.id AS enrolid
+ $sql = "SELECT c.id, c.visible, c.$localcoursefield AS mapping, e.id AS enrolid
FROM {course} c
JOIN {enrol} e ON (e.courseid = c.id AND e.enrol = 'database')";
$rs = $DB->get_recordset_sql($sql); // watch out for idnumber duplicates
$rs->close();
// add necessary enrol instances that are not present yet
- $sql = "SELECT c.id, c.visible, c.$localcoursefiled AS mapping
+ $params = array();
+ $localnotempty = "";
+ if ($localcoursefield !== 'id') {
+ $localnotempty = "AND c.$localcoursefield <> :lcfe";
+ $params['lcfe'] = $DB->sql_empty();
+ }
+ $sql = "SELECT c.id, c.visible, c.$localcoursefield AS mapping
FROM {course} c
LEFT JOIN {enrol} e ON (e.courseid = c.id AND e.enrol = 'database')
- WHERE e.id IS NULL AND c.$localcoursefiled <> ?";
- $rs = $DB->get_recordset_sql($sql, array($DB->sql_empty()));
+ WHERE e.id IS NULL $localnotempty";
+ $rs = $DB->get_recordset_sql($sql, $params);
foreach ($rs as $course) {
if (empty($course->mapping)) {
continue;