Differences Between: [Versions 311 and 400] [Versions 311 and 401] [Versions 311 and 402] [Versions 311 and 403]
1 <?php 2 // This file is part of Moodle - http://moodle.org/ 3 // 4 // Moodle is free software: you can redistribute it and/or modify 5 // it under the terms of the GNU General Public License as published by 6 // the Free Software Foundation, either version 3 of the License, or 7 // (at your option) any later version. 8 // 9 // Moodle is distributed in the hope that it will be useful, 10 // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 // GNU General Public License for more details. 13 // 14 // You should have received a copy of the GNU General Public License 15 // along with Moodle. If not, see <http://www.gnu.org/licenses/>. 16 17 /** 18 * Page to view the course reports 19 * 20 * @package core 21 * @subpackage report 22 * @copyright 2021 Sujith Haridasan 23 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 24 */ 25 26 require_once(__DIR__ . '/../config.php'); 27 28 // Course id. 29 $courseid = required_param('courseid', PARAM_INT); 30 31 $PAGE->set_url(new moodle_url('/report/view.php', array('courseid' => $courseid))); 32 33 // Basic access checks. 34 if (!$course = $DB->get_record('course', array('id' => $courseid))) { 35 print_error('invalidcourseid'); 36 } 37 require_login($course); 38 39 // Get the last viewed Page. 40 $lasturl = null; 41 $reportsnode = $PAGE->settingsnav->find('coursereports', \navigation_node::TYPE_CONTAINER); 42 $reportchildrennode = $reportsnode->children; 43 // If there are available course reports to the user. 44 if ($reportsnode && $reportchildrennode->count() > 0) { 45 // By default, set the first valid report URL for the redirect URL. 46 $lasturl = $reportchildrennode->getIterator()[0]->action()->out(false); 47 // If exist the last viewed report page. 48 if (isset($USER->course_last_report[$courseid])) { 49 // Check if the most recently report link is existed on report navigation node. 50 foreach ($reportchildrennode as $node) { 51 if ($node->action()->get_path() === $USER->course_last_report[$courseid]->get_path()) { 52 $lasturl = $USER->course_last_report[$courseid]; 53 break; 54 } 55 } 56 } 57 } 58 if ($lasturl) { 59 redirect($lasturl); 60 } 61 // Otherwise, output the page with a notification stating that there are no available course reports. 62 $PAGE->set_title(get_string('reports')); 63 $PAGE->set_pagelayout('incourse'); 64 $PAGE->set_heading($course->fullname); 65 $PAGE->set_pagetype('course-view-' . $course->format); 66 67 echo $OUTPUT->header(); 68 echo $OUTPUT->heading(get_string('reports')); 69 echo html_writer::div($OUTPUT->notification(get_string('noreports', 'debug'), 'error'), 'mt-3'); 70 echo $OUTPUT->footer();
title
Description
Body
title
Description
Body
title
Description
Body
title
Body