. /** * Report plugins helper class * * @package core * @subpackage report * @copyright 2021 Sujith Haridasan * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ namespace core; use moodle_url; use url_select; /** * A helper class with static methods to help report plugins * * @package core * @copyright 2021 Sujith Haridasan * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ class report_helper { /** * Print the selector dropdown * * @param string $pluginname The report plugin where the header is modified * @return void */ public static function print_report_selector(string $pluginname):void { global $OUTPUT, $PAGE; if ($reportnode = $PAGE->settingsnav->find('coursereports', \navigation_node::TYPE_CONTAINER)) { if ($children = $reportnode->children) { // Menu to select report pages to navigate. $activeurl = ''; foreach ($children as $key => $node) { $name = $node->text; $url = $node->action()->out(false); $menu[$url] = $name; if ($name === $pluginname) { $activeurl = $url; } } } if (!empty($menu)) { $select = new url_select($menu, $activeurl, null, 'choosecoursereport'); $select->set_label(get_string('reporttype'), ['class' => 'accesshide']); $select->class .= " mb-3"; echo $OUTPUT->render($select); } } } /** * Save the last selected report in the session * * @deprecated since Moodle 4.0 * @param int $id The course id * @param moodle_url $url The moodle url * @return void */ public static function save_selected_report(int $id, moodle_url $url):void { global $USER; debugging('save_selected_report() has been deprecated because it is no longer used and will be '. 'removed in future versions of Moodle', DEBUG_DEVELOPER); // Last selected report. if (!isset($USER->course_last_report)) { $USER->course_last_report = []; } $USER->course_last_report[$id] = $url; } }