diff --git a/enrol/database/config.html b/enrol/database/config.html
index 29cc2f603d9..2704c0ec4ac 100644
--- a/enrol/database/config.html
+++ b/enrol/database/config.html
@@ -1,3 +1,7 @@
+get_string('no'), '1'=>get_string('yes'));
+?>
+
@@ -174,7 +178,7 @@
| enrol_db_autocreate: |
'no','1'=>'yes'), "enrol_db_autocreate", $frm->enrol_db_autocreate, "");
+ choose_from_menu($yesno, "enrol_db_autocreate", $frm->enrol_db_autocreate, "");
if (isset($err["enrol_db_autocreate"])) formerr($err["enrol_db_autocreate"]);
?>
|
@@ -182,6 +186,7 @@
+
enrol_db_category: |
@@ -208,4 +213,25 @@
|
+
+
+
+ |
+
+
+
+ enrol_db_ignorehiddencourse: |
+
+ enrol_db_ignorehiddencourse, "");
+ if (isset($err['enrol_db_ignorehiddencourse'])) {
+ formerr($err['enrol_db_ignorehiddencourse']);
+ }
+ ?>
+ |
+
+
+ |
+
+
diff --git a/enrol/database/enrol.php b/enrol/database/enrol.php
index 2b6151e6a93..1b3a22af171 100644
--- a/enrol/database/enrol.php
+++ b/enrol/database/enrol.php
@@ -110,6 +110,12 @@ function setup_enrolments(&$user) {
}
}
+ // if the course is hidden and we don't want to enrol in hidden courses
+ // then just skip it
+ if (!$course->visible and $CFG->enrol_db_ignorehiddencourse) {
+ continue;
+ }
+
/// If there's no role specified, we get the default course role (usually student)
if ($use_default_role) {
$role = get_default_course_role($course);
@@ -412,7 +418,8 @@ function config_form($frm) {
'enrol_remotecoursefield', 'enrol_remoteuserfield',
'enrol_db_autocreate', 'enrol_db_category', 'enrol_db_template',
'enrol_db_localrolefield', 'enrol_db_remoterolefield',
- 'enrol_remotecoursefield', 'enrol_remoteuserfield');
+ 'enrol_remotecoursefield', 'enrol_remoteuserfield',
+ 'enrol_db_ignorehiddencourse');
foreach ($vars as $var) {
if (!isset($frm->$var)) {
@@ -505,6 +512,11 @@ function process_config($config) {
}
set_config('enrol_db_remoterolefield', $config->enrol_db_remoterolefield);
+ if (!isset($config->enrol_db_ignorehiddencourse)) {
+ $config->enrol_db_ignorehiddencourse = '';
+ }
+ set_config('enrol_db_ignorehiddencourse', $config->enrol_db_ignorehiddencourse );
+
return true;
}
diff --git a/lang/en_utf8/enrol_database.php b/lang/en_utf8/enrol_database.php
index f12e986fad8..1d6948af500 100644
--- a/lang/en_utf8/enrol_database.php
+++ b/lang/en_utf8/enrol_database.php
@@ -21,6 +21,7 @@ $string['enrolname'] = 'External Database';
$string['enrol_database_autocreation_settings'] = 'Auto-creation of new courses';
$string['general_options'] = 'General Options';
$string['host'] = 'Database server hostname.';
+$string['ignorehiddencourse'] = 'If set to yes users will not be enroled on courses that are set to be unavailable to students.';
$string['localcoursefield'] = 'The name of the field in the course table that we are using to match entries in the remote database (eg idnumber).';
$string['localrolefield'] = 'The name of the field in the roles table that we are using to match entries in the remote database (eg shortname).';
$string['localuserfield'] = 'The name of the field in the user table that we are using to match entries in the remote database (eg idnumber).';