. /** * Page to view the course reuse actions. * * @package core_backup * @copyright 2023 Sara Arjona * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ require_once(__DIR__ . '/../config.php'); // Course id. $courseid = required_param('id', PARAM_INT); $PAGE->set_url(new moodle_url('/backup/view.php', ['id' => $courseid])); // Basic access checks. if (!$course = $DB->get_record('course', ['id' => $courseid])) { throw new \moodle_exception('invalidcourseid'); } require_login($course); $title = get_string('coursereuse'); // Only append the course name if the course ID is not the site ID. if ($courseid != SITEID) { $title .= moodle_page::TITLE_SEPARATOR . $course->fullname; } // Otherwise, output the page with a notification stating that there are no available course reuse actions. $PAGE->set_title($title); $PAGE->set_pagelayout('incourse'); $PAGE->set_heading($course->fullname); $PAGE->set_pagetype('course-view-' . $course->format); $PAGE->add_body_class('limitedwidth'); echo $OUTPUT->header(); echo $OUTPUT->heading(get_string('coursereuse')); // Check if there is at least one displayable course reuse action. $hasactions = false; if ($coursereusenode = $PAGE->settingsnav->find('coursereuse', \navigation_node::TYPE_CONTAINER)) { foreach ($coursereusenode->children as $child) { if ($child->display) { $hasactions = true; break; } } } if ($hasactions) { echo $OUTPUT->render_from_template('core/report_link_page', ['node' => $coursereusenode]); } else { throw new \moodle_exception( 'accessdenied', 'admin', new moodle_url('/course/view.php', ['id' => $courseid]) ); } echo $OUTPUT->footer();