source: moodle/trunk/fuentes/admin/environment.php

Last change on this file was 136, checked in by mabarracus, 4 years ago

Ported code to xenial

File size: 4.2 KB
Line 
1<?php
2// This file is part of Moodle - http://moodle.org/
3//
4// Moodle is free software: you can redistribute it and/or modify
5// it under the terms of the GNU General Public License as published by
6// the Free Software Foundation, either version 3 of the License, or
7// (at your option) any later version.
8//
9// Moodle is distributed in the hope that it will be useful,
10// but WITHOUT ANY WARRANTY; without even the implied warranty of
11// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12// GNU General Public License for more details.
13//
14// You should have received a copy of the GNU General Public License
15// along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
16
17/**
18 * This file is the admin frontend to execute all the checks available
19 * in the environment.xml file. It includes database, php and
20 * php_extensions. Also, it's possible to update the xml file
21 * from moodle.org be able to check more and more versions.
22 *
23 * @package    core
24 * @subpackage admin
25 * @copyright  2006 onwards Eloy Lafuente (stronk7) {@link http://stronk7.com}
26 * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
27 */
28
29
30require_once('../config.php');
31require_once($CFG->libdir.'/adminlib.php');
32require_once($CFG->libdir.'/environmentlib.php');
33require_once($CFG->libdir.'/componentlib.class.php');
34
35// Parameters
36$action  = optional_param('action', '', PARAM_ALPHANUMEXT);
37$version = optional_param('version', '', PARAM_FILE); //
38
39$extraurlparams = array();
40if ($version) {
41    $extraurlparams['version'] = $version;
42}
43admin_externalpage_setup('environment', '', $extraurlparams);
44
45// Handle the 'updatecomponent' action
46if ($action == 'updatecomponent' && confirm_sesskey()) {
47    // Create component installer and execute it
48    if ($cd = new component_installer('https://download.moodle.org',
49                                      'environment',
50                                      'environment.zip')) {
51        $status = $cd->install(); //returns COMPONENT_(ERROR | UPTODATE | INSTALLED)
52        switch ($status) {
53            case COMPONENT_ERROR:
54                if ($cd->get_error() == 'remotedownloaderror') {
55                    $a = new stdClass();
56                    $a->url  = 'https://download.moodle.org/environment/environment.zip';
57                    $a->dest = $CFG->dataroot . '/';
58                    print_error($cd->get_error(), 'error', $PAGE->url, $a);
59                    die();
60
61                } else {
62                    print_error($cd->get_error(), 'error', $PAGE->url);
63                    die();
64                }
65
66            case COMPONENT_UPTODATE:
67                redirect($PAGE->url, get_string($cd->get_error(), 'error'));
68                die;
69
70            case COMPONENT_INSTALLED:
71                redirect($PAGE->url, get_string('componentinstalled', 'admin'));
72                die;
73        }
74    }
75}
76
77// Get current Moodle version
78$current_version = $CFG->release;
79
80// Calculate list of versions
81$versions = array();
82if ($contents = load_environment_xml()) {
83    if ($env_versions = get_list_of_environment_versions($contents)) {
84        // Set the current version at the beginning
85        $env_version = normalize_version($current_version); //We need this later (for the upwards)
86        $versions[$env_version] = $current_version;
87        // If no version has been previously selected, default to $current_version
88        if (empty($version)) {
89            $version =  $env_version;
90        }
91        //Iterate over each version, adding bigger than current
92        foreach ($env_versions as $env_version) {
93            if (version_compare(normalize_version($current_version), $env_version, '<')) {
94                $versions[$env_version] = $env_version;
95            }
96        }
97        // Add 'upwards' to the last element
98        $versions[$env_version] = $env_version.' '.get_string('upwards', 'admin');
99    } else {
100        $versions = array('error' => get_string('error'));
101    }
102}
103
104// Get the results of the environment check.
105list($envstatus, $environment_results) = check_moodle_environment($version, ENV_SELECT_NEWER);
106
107// Display the page.
108$output = $PAGE->get_renderer('core', 'admin');
109echo $output->environment_check_page($versions, $version, $envstatus, $environment_results);
Note: See TracBrowser for help on using the repository browser.