I have a custom reports module that is located in report/mycustomreports
To add a custom report specific to a course and under the report menu item you add this bit of code to lib.php file.
// File report/mycustomreport/lib.php
function report_mycustomreports_extend_navigation_course($navigation, $course, $context) {
global $CFG, $OUTPUT;
if (has_capability('report/mycustomreports:viewcoursereports', $context)) {
$url = new moodle_url('/report/mycustomreports/course/index.php', array('id'=>$course->id));
$navigation->add(get_string('mycustomreports', 'report_mycustomreports'), $url, navigation_node::TYPE_SETTING, null, null, n
ew pix_icon('i/report', ''));
}
}
Take note of the URL and how it will end up looking:
example.com/report/mycustomreports/course/index.php?id=55
Now to make sure that the link to this report in the courses menu receives a highlight and expands the window, you must add a $PAGE->set_url() in the index.php
// File: report/mycustomreports/course/index.php
$PAGE->set_url('/report/mycustomreports/course/index.php', array('id' => $course->id));
Both URL's now match.
If we click on the [Course Name] -> Reports -> My Custom Reports the page will load AND most importantly the link in the navigation menu will be highlighted.
No comments:
Post a Comment