Skip to content
Snippets Groups Projects
Select Git revision
  • 4cdc21bc92f8265649209ee7d1bd9f5f6295dacc
  • master default
  • v0.52.5
  • v0.52.4
  • v0.52.3
  • v0.52.2
  • v0.52.1
  • v0.52.0
  • v0.51.0
  • v0.50.0
  • v0.49.0
11 results

server.sls

Blame
  • request.php 3.54 KiB
    <?php
    
    // This file is part of Moodle - http://moodle.org/
    //
    // Moodle is free software: you can redistribute it and/or modify
    // it under the terms of the GNU General Public License as published by
    // the Free Software Foundation, either version 3 of the License, or
    // (at your option) any later version.
    //
    // Moodle is distributed in the hope that it will be useful,
    // but WITHOUT ANY WARRANTY; without even the implied warranty of
    // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    // GNU General Public License for more details.
    //
    // You should have received a copy of the GNU General Public License
    // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
    
    /**
     * Allows a user to request a course be created for them.
     *
     * @copyright 1999 Martin Dougiamas  http://dougiamas.com
     * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
     * @package course
     */
    require_once(__DIR__ . '/../../config.php');
    require_once($CFG->dirroot . '/local/hsh/lib.php');
    require_once($CFG->dirroot . '/local/hsh/request_form.php');
    
    // Where we came from. Used in a number of redirects.
    $url = new moodle_url('/local/hsh/request.php');
    $return = optional_param('return', null, PARAM_ALPHANUMEXT);
    $categoryid = optional_param('category', null, PARAM_INT);
    if ($return === 'management') {
        $url->param('return', $return);
        $returnurl = new moodle_url('/course/management.php', array('categoryid' => $CFG->defaultrequestcategory));
    } else {
        $returnurl = new moodle_url('/my/');
    }
    
    $PAGE->set_url($url);
    
    // Check permissions.
    require_login(null, false);
    if (isguestuser()) {
        print_error('guestsarenotallowed', '', $returnurl);
    }
    if (empty($CFG->enablecourserequests)) {
        print_error('courserequestdisabled', '', $returnurl);
    }
    
    if ($CFG->lockrequestcategory) {
        // Course request category is locked, user will always request in the default request category.
        $categoryid = null;
    } else if (!$categoryid) {
        // Category selection is enabled but category is not specified.
        // Find a category where user has capability to request courses (preferably the default category).
        $list = core_course_category::make_categories_list('moodle/course:request');
        $categoryid = array_key_exists($CFG->defaultrequestcategory, $list) ? $CFG->defaultrequestcategory : key($list);
    }
    
    $context = context_coursecat::instance($categoryid ?: $CFG->defaultrequestcategory);
    $PAGE->set_context($context);
    $PAGE->set_pagelayout('standard');
    require_capability('moodle/course:request', $context);
    
    // Set up the form.
    $data = $categoryid ? (object) ['category' => $categoryid] : null;
    $data = course_request_hsh::prepare($data);
    $requestform = new course_request_hsh_form($url);
    $requestform->set_data($data);