. /** * EVL enrolment plugin - support for user self unenrolment. * * @package enrol_evl * @author Interlegis * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ require('../../config.php'); $enrolid = required_param('enrolid', PARAM_INT); $confirm = optional_param('confirm', 0, PARAM_BOOL); $instance = $DB->get_record('enrol', array('id' => $enrolid, 'enrol' => 'evl'), '*', MUST_EXIST); $course = $DB->get_record('course', array('id' => $instance->courseid), '*', MUST_EXIST); $context = context_course::instance($course->id); require_login(); if (!is_enrolled($context)) { redirect(new moodle_url('/')); } require_login($course); $plugin = enrol_get_plugin('evl'); // security defined inside following function if (!$plugin->get_unenrolself_link($instance)) { redirect(new moodle_url('/course/view.php', array('id' => $course->id))); } $PAGE->set_url('/enrol/evl/unenrolself.php', array('enrolid' => $instance->id)); $PAGE->set_title($plugin->get_instance_name($instance)); if ($confirm and confirm_sesskey()) { $plugin->unenrol_user($instance, $USER->id); // TODO: trigger event. redirect(new moodle_url('/index.php')); } echo $OUTPUT->header(); $yesurl = new moodle_url($PAGE->url, array('confirm' => 1, 'sesskey' => sesskey())); $nourl = new moodle_url('/course/view.php', array('id' => $course->id)); $message = get_string('unenrolselfconfirm', 'enrol_evl', format_string($course->fullname)); echo $OUTPUT->confirm($message, $yesurl, $nourl); echo $OUTPUT->footer();