MDL-21742 fixed serious regressions - require_login(); could not be called after...
authorPetr Skoda <skodak@moodle.org>
Tue, 2 Mar 2010 11:51:36 +0000 (11:51 +0000)
committerPetr Skoda <skodak@moodle.org>
Tue, 2 Mar 2010 11:51:36 +0000 (11:51 +0000)
lib/moodlelib.php
lib/setup.php

index 17e603c..d4d438c 100644 (file)
@@ -2131,15 +2131,13 @@ function require_login($courseorid=0, $autologinguest=true, $cm=null, $setwantsu
             }
         }
         if ($cm) {
-            $PAGE->set_cm($cm, $course);
+            $PAGE->set_cm($cm, $course); // set's up global $COURSE
             $PAGE->set_pagelayout('incourse');
         } else {
-            $PAGE->set_course($course);
+            $PAGE->set_course($course); // set's up global $COURSE
         }
     } else {
-        // If $PAGE->course, and hence $PAGE->context, have not already been set
-        // up properly, set them up now.
-        $PAGE->set_course($PAGE->course);
+        // do not touch global $COURSE via $PAGE->set_course() !!
     }
 
 /// If the user is not even logged in yet then make sure they are
index 4f911cd..1fc86de 100644 (file)
@@ -586,11 +586,9 @@ if (empty($CFG->lang)) {
     }
 }
 
-// We used to call moodle_setlocale() and theme_setup() here, even though they
-// would be called again from require_login or $PAGE->set_course. As an experiment
-// I am going to try removing those calls. With luck it will help us find and
-// fix a few bugs where scripts do not initialise things properly, without causing
-// too much grief.
+// Set the default site locale, a lot of the stuff may depend on this
+// it is definitely too late to call this first in require_login()!
+moodle_setlocale();
 
 if (!empty($CFG->debugvalidators) and !empty($CFG->guestloginbutton)) {
     if ($CFG->theme == 'standard' or $CFG->theme == 'standardwhite') {    // Temporary measure to help with XHTML validation