MDL-10396:

Add an option and a check to (optionally) prevent users being enrolled
in hidden courses.

Merged from STABLE_18
This commit is contained in:
thepurpleblob 2007-07-20 13:03:19 +00:00
parent 90d3960c6d
commit 61fbd0fb52
3 changed files with 41 additions and 2 deletions

View File

@ -1,3 +1,7 @@
<?php
$yesno = array('0'=>get_string('no'), '1'=>get_string('yes'));
?>
<table cellspacing="0" cellpadding="5" border="0" class="boxaligncenter">
<tr>
<th colspan="2" scope="col">
@ -174,7 +178,7 @@
<td align="right">enrol_db_autocreate:</td>
<td>
<?php
choose_from_menu(array('0'=>'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"]);
?>
</td>
@ -182,6 +186,7 @@
<?php print_string("autocreate","enrol_database") ?>
</td>
</tr>
<tr>
<td align="right">enrol_db_category:</td>
<td>
@ -208,4 +213,25 @@
</td>
</tr>
<tr>
<th colspan="2" scope="col">
<?php print_string("general_options", "enrol_database") ?>
</th>
</tr>
<tr>
<td align="right">enrol_db_ignorehiddencourse:</td>
<td>
<?php
choose_from_menu($yesno, "enrol_db_ignorehiddencourse", $frm->enrol_db_ignorehiddencourse, "");
if (isset($err['enrol_db_ignorehiddencourse'])) {
formerr($err['enrol_db_ignorehiddencourse']);
}
?>
</td>
<td>
<?php print_string('ignorehiddencourse', 'enrol_database' ); ?>
</td>
</tr>
</table>

View File

@ -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;
}

View File

@ -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).';