See Release Notes
Long Term Support Release
Differences Between: [Versions 310 and 401] [Versions 311 and 401] [Versions 39 and 401] [Versions 400 and 401]
1 <?php 2 3 // This file is part of Moodle - http://moodle.org/ 4 // 5 // Moodle is free software: you can redistribute it and/or modify 6 // it under the terms of the GNU General Public License as published by 7 // the Free Software Foundation, either version 3 of the License, or 8 // (at your option) any later version. 9 // 10 // Moodle is distributed in the hope that it will be useful, 11 // but WITHOUT ANY WARRANTY; without even the implied warranty of 12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 // GNU General Public License for more details. 14 // 15 // You should have received a copy of the GNU General Public License 16 // along with Moodle. If not, see <http://www.gnu.org/licenses/>. 17 18 /** 19 * Allows a user to request a course be created for them. 20 * 21 * @copyright 1999 Martin Dougiamas http://dougiamas.com 22 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 23 * @package course 24 */ 25 26 require_once(__DIR__ . '/../config.php'); 27 require_once($CFG->dirroot . '/course/lib.php'); 28 require_once($CFG->dirroot . '/course/request_form.php'); 29 30 // Where we came from. Used in a number of redirects. 31 $url = new moodle_url('/course/request.php'); 32 $return = optional_param('return', null, PARAM_ALPHANUMEXT); 33 $categoryid = optional_param('category', null, PARAM_INT); 34 if ($return === 'management') { 35 $url->param('return', $return); 36 $returnurl = new moodle_url('/course/management.php', array('categoryid' => $CFG->defaultrequestcategory)); 37 } else { 38 $returnurl = new moodle_url('/course/index.php'); 39 } 40 41 $PAGE->set_url($url); 42 43 // Check permissions. 44 require_login(null, false); 45 if (isguestuser()) { 46 throw new \moodle_exception('guestsarenotallowed', '', $returnurl); 47 } 48 if (empty($CFG->enablecourserequests)) { 49 throw new \moodle_exception('courserequestdisabled', '', $returnurl); 50 } 51 52 if ($CFG->lockrequestcategory) { 53 // Course request category is locked, user will always request in the default request category. 54 $categoryid = null; 55 } else if (!$categoryid) { 56 // Category selection is enabled but category is not specified. 57 // Find a category where user has capability to request courses (preferably the default category). 58 $list = core_course_category::make_categories_list('moodle/course:request'); 59 $categoryid = array_key_exists($CFG->defaultrequestcategory, $list) ? $CFG->defaultrequestcategory : key($list); 60 } 61 62 $context = context_coursecat::instance($categoryid ?: $CFG->defaultrequestcategory); 63 $PAGE->set_context($context); 64 require_capability('moodle/course:request', $context); 65 66 // Set up the form. 67 $data = $categoryid ? (object)['category' => $categoryid] : null; 68 $data = course_request::prepare($data); 69 $requestform = new course_request_form($url); 70 $requestform->set_data($data); 71 72 $strtitle = get_string('courserequest'); 73 $PAGE->set_title($strtitle); 74 $coursecategory = core_course_category::get($categoryid, MUST_EXIST, true); 75 $PAGE->set_heading($coursecategory->get_formatted_name()); 76 $PAGE->set_primary_active_tab('home'); 77 78 // Standard form processing if statement. 79 if ($requestform->is_cancelled()){ 80 redirect($returnurl); 81 82 } else if ($data = $requestform->get_data()) { 83 $request = course_request::create($data); 84 85 // And redirect back to the course listing. 86 notice(get_string('courserequestsuccess'), $returnurl); 87 } 88 89 $categoryurl = new moodle_url('/course/index.php'); 90 if ($categoryid) { 91 $categoryurl->param('categoryid', $categoryid); 92 } 93 navigation_node::override_active_url($categoryurl); 94 95 $PAGE->navbar->add($strtitle); 96 echo $OUTPUT->header(); 97 echo $OUTPUT->heading($strtitle); 98 // Show the request form. 99 $requestform->display(); 100 echo $OUTPUT->footer();
title
Description
Body
title
Description
Body
title
Description
Body
title
Body