]> git.mjollnir.org Git - moodle.git/commitdiff
moodle_page: MDL-12212 eliminate the two different interpretations of
authortjhunt <tjhunt>
Wed, 6 May 2009 08:41:02 +0000 (08:41 +0000)
committertjhunt <tjhunt>
Wed, 6 May 2009 08:41:02 +0000 (08:41 +0000)
pagetype

admin/index.php
admin/mnet/enr_course_enrol.php
admin/mnet/enr_courses.php
admin/mnet/enr_hosts.php
lib/blocklib.php
lib/db/upgrade.php
lib/moodlelib.php
lib/pagelib.php
lib/simpletest/testpagelib_moodlepage.php

index fa2e7632f8940e258c61d901f8210150a7994a4a..10f335b02ad8292afe4cc07379b2c56a3f034912 100644 (file)
 /// and upgrade if possible.
 
     $stradministration = get_string('administration');
+    $PAGE->set_context(get_context_instance(CONTEXT_SYSTEM));
 
     if (empty($CFG->version)) {
         print_error('missingconfigversion', 'debug');
index 7cfb03e8123ba20447c37ab4216640cfc9fc5c48..c1e8664c2c7d313dbe383eaaa97ebcd4f7b2b16f 100644 (file)
@@ -11,7 +11,6 @@
     }
 
     admin_externalpage_setup('mnetenrol');
-    $PAGE->set_pagetype('admin-mnet');
 
     require_once("$CFG->dirroot/enrol/enrol.class.php");   /// Open the factory class
     $enrolment = enrolment_factory::factory('mnet');
index 0d9fd8d0b2aab05c5078a77ad5922a33408916ce..9c058385789e16df6063208985877ad9b1cd8c8d 100644 (file)
@@ -11,7 +11,6 @@
 
 
     admin_externalpage_setup('mnetenrol');
-    $PAGE->set_pagetype('admin-mnet');
 
     require_once("$CFG->dirroot/enrol/enrol.class.php");   /// Open the factory class
     $enrolment = enrolment_factory::factory('mnet');
index 3a7cdfb81b068a6c08595d6dfddac6b85dd3f9fb..665628e5a66b54b68b2b85b8391ff9f6eb19d295 100644 (file)
@@ -6,7 +6,6 @@
     require_once($CFG->libdir.'/adminlib.php');
 
     admin_externalpage_setup('mnetenrol');
-    $PAGE->set_pagetype('admin-mnet');
 
     require_once("$CFG->dirroot/enrol/enrol.class.php");   /// Open the factory class
 
index 5323c72e19b87be78dd18bc02964a38d7d71a4aa..913de4b8bef3988f43c5bf9d9ea6a5ab00a6f8b7 100644 (file)
@@ -902,7 +902,7 @@ function blocks_get_by_page_pinned($page) {
 function blocks_get_by_page($page) {
     global $DB;
 
-    $blocks = $DB->get_records_select('block_instance', "pageid = ? AND pagetype = ?",
+    $blocks = $DB->get_records_select('block_instance', "pageid = ? AND ? LIKE (" . $DB->sql_concat('pagetype', "'%'") . ")",
             array($page->get_id(), $page->pagetype), 'position, weight');
 
     $positions = $page->blocks_get_positions();
index 9f945df7a48dfb27256d952b6bb56b480767ffe7..f091be8ef998d6ca34065388916637cc3cc6b15d 100644 (file)
@@ -1702,6 +1702,14 @@ WHERE gradeitemid IS NOT NULL AND grademax IS NOT NULL");
         upgrade_main_savepoint($result, 2009042700);
     }
 
+    if ($result && $oldversion < 2009042800) {
+    /// Site front page blocks need to be moved due to page name change.
+        $DB->set_field('block_instance', 'pagetype', 'site-index', array('pagetype' => 'course-view', 'pageid' => SITEID));
+
+    /// Main savepoint reached
+        upgrade_main_savepoint($result, 2009042800);
+    }
+
     if ($result && $oldversion < 2009043000) {
         unset_config('grade_report_showgroups');
         upgrade_main_savepoint($result, 2009043000);
index 7b79909581584f6d17058f64f28af04d754f1043..5aaeb7041d25b1cd376fdf1c7ea21b632cd5aa69 100644 (file)
@@ -1929,6 +1929,10 @@ function require_login($courseorid=0, $autologinguest=true, $cm=null, $setwantsu
             }
         }
         $PAGE->set_course($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);
     }
 
 /// If the user is not even logged in yet then make sure they are
index 5eb552b0c4198e0ad76342911bdd76a06141105c..05bf0e1e3d50b32ea9cfa828cbc6540c2cdcb9ad 100644 (file)
@@ -317,7 +317,7 @@ function page_create_object($type, $id = NULL) {
 
     $object->init_quick($data);
     $object->set_course($PAGE->course);
-    $object->set_pagetype($type);
+    //$object->set_pagetype($type);
     return $object;
 }
 
index 84c5ddf7a5599e466a59ec3c947e38867b2c6936..17f26367692edb84f60a5cf2e7808c9eb22419c7 100644 (file)
@@ -37,6 +37,12 @@ if (!defined('MOODLE_INTERNAL')) {
 
 require_once($CFG->libdir . '/pagelib.php');
 
+class testable_moodle_page extends moodle_page {
+    public function initialise_default_pagetype($script = '') {
+        parent::initialise_default_pagetype($script);
+    }
+}
+
 /**
  * Test functions that affect filter_active table with contextid = $syscontextid.
  */
@@ -47,7 +53,7 @@ class moodle_page_test extends UnitTestCase {
     public function setUp() {
         global $COURSE;
         $this->originalcourse = $COURSE;
-        $this->testpage = new moodle_page();
+        $this->testpage = new testable_moodle_page();
     }
 
     public function tearDown() {
@@ -167,11 +173,9 @@ class moodle_page_test extends UnitTestCase {
         $this->assert(new CheckSpecifiedFieldsExpectation($context), $this->testpage->context);
     }
 
-    public function test_cant_get_pagetype_before_set() {
-        // Set expectation.
-        $this->expectException();
-        // Exercise SUT
-        $this->testpage->pagetype;
+    public function test_pagetype_defaults_to_script() {
+        // Exercise SUT and validate
+        $this->assertEqual('admin-report-unittest-index', $this->testpage->pagetype);
     }
 
     public function test_set_pagetype() {
@@ -180,6 +184,20 @@ class moodle_page_test extends UnitTestCase {
         // Validate
         $this->assertEqual('a-page-type', $this->testpage->pagetype);
     }
+
+    public function test_initialise_default_pagetype() {
+        // Exercise SUT
+        $this->testpage->initialise_default_pagetype('admin/report/unittest/index.php');
+        // Validate
+        $this->assertEqual('admin-report-unittest-index', $this->testpage->pagetype);
+    }
+
+    public function test_initialise_default_pagetype_fp() {
+        // Exercise SUT
+        $this->testpage->initialise_default_pagetype('index.php');
+        // Validate
+        $this->assertEqual('site-index', $this->testpage->pagetype);
+    }
 }
 
 /**