]> git.mjollnir.org Git - moodle.git/commitdiff
MDL-10396:
authorthepurpleblob <thepurpleblob>
Fri, 20 Jul 2007 13:03:19 +0000 (13:03 +0000)
committerthepurpleblob <thepurpleblob>
Fri, 20 Jul 2007 13:03:19 +0000 (13:03 +0000)
Add an option and a check to (optionally) prevent users being enrolled
in hidden courses.

Merged from STABLE_18

enrol/database/config.html
enrol/database/enrol.php
lang/en_utf8/enrol_database.php

index 29cc2f603d9eb4faa2f0836003c249d29cde3c64..2704c0ec4ac0954e796c3479c0265a371d0e8a6c 100644 (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">
     <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>
     <?php  print_string("autocreate","enrol_database") ?>
     </td>
 </tr>
+
 <tr>
         <td align="right">enrol_db_category:</td>
         <td>
     </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>
index 2b6151e6a93b18eaae0279835e663d53ab806ab2..1b3a22af171d026a1298a542cb139473a40abc51 100644 (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;
 }
 
index f12e986fad863178cd8fc0102dd8f615a1eebc96..1d6948af50030dfce7364c9cf71f648024c0e7fd 100644 (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).';