Differences Between: [Versions 310 and 400] [Versions 310 and 401] [Versions 310 and 402] [Versions 310 and 403]
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 * Moodle frontpage. 19 * 20 * @package core 21 * @copyright 1999 onwards Martin Dougiamas (http://dougiamas.com) 22 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 23 */ 24 25 if (!file_exists('./config.php')) { 26 header('Location: install.php'); 27 die; 28 } 29 30 require_once('config.php'); 31 require_once($CFG->dirroot .'/course/lib.php'); 32 require_once($CFG->libdir .'/filelib.php'); 33 34 redirect_if_major_upgrade_required(); 35 36 $urlparams = array(); 37 if (!empty($CFG->defaulthomepage) && ($CFG->defaulthomepage == HOMEPAGE_MY) && optional_param('redirect', 1, PARAM_BOOL) === 0) { 38 $urlparams['redirect'] = 0; 39 } 40 $PAGE->set_url('/', $urlparams); 41 $PAGE->set_pagelayout('frontpage'); 42 $PAGE->set_other_editing_capability('moodle/course:update'); 43 $PAGE->set_other_editing_capability('moodle/course:manageactivities'); 44 $PAGE->set_other_editing_capability('moodle/course:activityvisibility'); 45 46 // Prevent caching of this page to stop confusion when changing page after making AJAX changes. 47 $PAGE->set_cacheable(false); 48 49 require_course_login($SITE); 50 51 $hasmaintenanceaccess = has_capability('moodle/site:maintenanceaccess', context_system::instance()); 52 53 // If the site is currently under maintenance, then print a message. 54 if (!empty($CFG->maintenance_enabled) and !$hasmaintenanceaccess) { 55 print_maintenance_message(); 56 } 57 58 $hassiteconfig = has_capability('moodle/site:config', context_system::instance()); 59 60 if ($hassiteconfig && moodle_needs_upgrading()) { 61 redirect($CFG->wwwroot .'/'. $CFG->admin .'/index.php'); 62 } 63 64 // If site registration needs updating, redirect. 65 \core\hub\registration::registration_reminder('/index.php'); 66 67 if (get_home_page() != HOMEPAGE_SITE) { 68 // Redirect logged-in users to My Moodle overview if required. 69 $redirect = optional_param('redirect', 1, PARAM_BOOL); 70 if (optional_param('setdefaulthome', false, PARAM_BOOL)) { 71 set_user_preference('user_home_page_preference', HOMEPAGE_SITE); 72 } else if (!empty($CFG->defaulthomepage) && ($CFG->defaulthomepage == HOMEPAGE_MY) && $redirect === 1) { 73 redirect($CFG->wwwroot .'/my/'); 74 } else if (!empty($CFG->defaulthomepage) && ($CFG->defaulthomepage == HOMEPAGE_USER)) { 75 $frontpagenode = $PAGE->settingsnav->find('frontpage', null); 76 if ($frontpagenode) { 77 $frontpagenode->add( 78 get_string('makethismyhome'), 79 new moodle_url('/', array('setdefaulthome' => true)), 80 navigation_node::TYPE_SETTING); 81 } else { 82 $frontpagenode = $PAGE->settingsnav->add(get_string('frontpagesettings'), null, navigation_node::TYPE_SETTING, null); 83 $frontpagenode->force_open(); 84 $frontpagenode->add(get_string('makethismyhome'), 85 new moodle_url('/', array('setdefaulthome' => true)), 86 navigation_node::TYPE_SETTING); 87 } 88 } 89 } 90 91 // Trigger event. 92 course_view(context_course::instance(SITEID)); 93 94 $PAGE->set_pagetype('site-index'); 95 $PAGE->set_docs_path(''); 96 $editing = $PAGE->user_is_editing(); 97 $PAGE->set_title($SITE->fullname); 98 $PAGE->set_heading($SITE->fullname); 99 $courserenderer = $PAGE->get_renderer('core', 'course'); 100 echo $OUTPUT->header(); 101 102 $siteformatoptions = course_get_format($SITE)->get_format_options(); 103 $modinfo = get_fast_modinfo($SITE); 104 $modnamesused = $modinfo->get_used_module_names(); 105 106 // Print Section or custom info. 107 if (!empty($CFG->customfrontpageinclude)) { 108 // Pre-fill some variables that custom front page might use. 109 $modnames = get_module_types_names(); 110 $modnamesplural = get_module_types_names(true); 111 $mods = $modinfo->get_cms(); 112 113 include($CFG->customfrontpageinclude); 114 115 } else if ($siteformatoptions['numsections'] > 0) { 116 echo $courserenderer->frontpage_section1(); 117 } 118 // Include course AJAX. 119 include_course_ajax($SITE, $modnamesused); 120 121 echo $courserenderer->frontpage(); 122 123 if ($editing && has_capability('moodle/course:create', context_system::instance())) { 124 echo $courserenderer->add_new_course_button(); 125 } 126 echo $OUTPUT->footer();
title
Description
Body
title
Description
Body
title
Description
Body
title
Body