See Release Notes
Long Term Support Release
Differences Between: [Versions 39 and 400] [Versions 39 and 401] [Versions 39 and 402] [Versions 39 and 403]
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 print_error('guestsarenotallowed', '', $returnurl); 47 } 48 if (empty($CFG->enablecourserequests)) { 49 print_error('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 $PAGE->set_heading($strtitle); 75 76 // Standard form processing if statement. 77 if ($requestform->is_cancelled()){ 78 redirect($returnurl); 79 80 } else if ($data = $requestform->get_data()) { 81 $request = course_request::create($data); 82 83 // And redirect back to the course listing. 84 notice(get_string('courserequestsuccess'), $returnurl); 85 } 86 87 $PAGE->navbar->add($strtitle); 88 echo $OUTPUT->header(); 89 echo $OUTPUT->heading($strtitle); 90 // Show the request form. 91 $requestform->display(); 92 echo $OUTPUT->footer();
title
Description
Body
title
Description
Body
title
Description
Body
title
Body