diff --git a/admin/index.php b/admin/index.php index 6f87285dea7..30ba5cb2c43 100644 --- a/admin/index.php +++ b/admin/index.php @@ -315,6 +315,11 @@ if (!$cache and $version > $CFG->version) { // upgrade $testsite = 'behat'; } + if (isset($CFG->themerev)) { + // Store the themerev to restore after purging caches. + $themerev = $CFG->themerev; + } + // We purge all of MUC's caches here. // Caches are disabled for upgrade by CACHE_DISABLE_ALL so we must set the first arg to true. // This ensures a real config object is loaded and the stores will be purged. @@ -324,6 +329,11 @@ if (!$cache and $version > $CFG->version) { // upgrade // We then purge the regular caches. purge_all_caches(); + if (isset($themerev)) { + // Restore the themerev + set_config('themerev', $themerev); + } + $output = $PAGE->get_renderer('core', 'admin'); if (upgrade_stale_php_files_present()) { diff --git a/lib/moodlelib.php b/lib/moodlelib.php index 75b843fe23c..f1451d598c2 100644 --- a/lib/moodlelib.php +++ b/lib/moodlelib.php @@ -9620,35 +9620,6 @@ function get_course_display_name_for_list($course) { } } -/** - * Convert a Moodle Version formatted number into a guaranteed incrementing timestamp. - * - * @param float $version The version to convert - * @return int The calculated timestamp - */ -function version_to_timestamp($version) { - // Moodle version numbers are in stored in one of the following formats: - // * YYYYMMDDRR.II - // * YYYYMMDDRR - // - // To convert these into a value akin to a Unix Time Stamp, we take the timestamp of the YYYYMMDD component. and add - // a calculation of the RR.II component. - - // The hours/minutes/seconds must be specified otherwise the current time is used. - $date = DateTime::createFromFormat('YmdHis', substr($version, 0, 8) . '000000'); - $revision = $date->format('U'); - - // To ensure a unique incrementing timestamp, we multiple the $rr value by a value larger than the max of $ii, - // and then add $ii. - // As a two-digit number, the max value of $ii is 99, so we multiply by 100. - $revision += (100 * (int) substr($version, 8, 2)); - - // Note: If there is no .II value, or it is 00, then the substr will return false, but be calculated as 0 when cast to int. - $revision += (int) substr($version, 11, 2); - - return $revision; -} - /** * The lang_string class * diff --git a/lib/outputlib.php b/lib/outputlib.php index b68e0707702..dc40d2bdc65 100644 --- a/lib/outputlib.php +++ b/lib/outputlib.php @@ -86,13 +86,8 @@ function theme_get_revision() { if (empty($CFG->themedesignermode)) { if (empty($CFG->themerev)) { - // If theme designer mode is not set, and there is no themerev, this is almost certainly part of the installation. - // We attempt to set a themerev based on the Moodle version number to avoid costly rebuilds of the dynamic - // theme files between each page load. - $version = null; - require("{$CFG->dirroot}/version.php"); - - return version_to_timestamp($version); + // This only happens during install. It doesn't matter what themerev we use as long as it's positive. + return 1; } else { return $CFG->themerev; } diff --git a/lib/tests/moodlelib_test.php b/lib/tests/moodlelib_test.php index bc9bf47ba73..af169a5de5e 100644 --- a/lib/tests/moodlelib_test.php +++ b/lib/tests/moodlelib_test.php @@ -3282,26 +3282,4 @@ class core_moodlelib_testcase extends advanced_testcase { 'samecourse' => false, 'result' => false], ]; } - - /** - * Unit tests for the version_to_timestamp function. - */ - public function test_version_to_timestamp() { - $baseversion = 2016110100.00; - $basestamp = version_to_timestamp($baseversion); - $this->assertEquals(1477929600, $basestamp); - - // Adding 00.99 to the version should increase the timestamp. - $stamp = version_to_timestamp($baseversion + .99); - $this->assertGreaterThan($basestamp, $stamp); - - // Adding 01.00 to the base version should increase the stamp higher than the 00.99 version. - $newstamp = version_to_timestamp($baseversion + 01.00); - $this->assertGreaterThan($basestamp, $newstamp); - $this->assertGreaterThan($stamp, $newstamp); - - // The previous day's timestamp at it's highest increment should be lower than the base version. - $stamp = version_to_timestamp($baseversion - 00.01); - $this->assertLessThan($basestamp, $stamp); - } }