}
foreach ($modinfo->sections[$section->section] as $cmid) {
$cm = $modinfo->cms[$cmid];
- if (!$cm->uservisible) {
- continue;
- }
$activity = new stdClass;
$activity->id = $cm->id;
$activity->course = $course->id;
$activity->display = false;
} else {
$activity->url = $cm->get_url()->out();
- $activity->display = true;
+ $activity->display = $cm->uservisible ? true : false;
if (self::module_extends_navigation($cm->modname)) {
$activity->nodetype = navigation_node::NODETYPE_BRANCH;
}
return null;
}
$cm = $modinfo->cms[$this->page->cm->id];
- if (!$cm->uservisible) {
- return null;
- }
if ($cm->icon) {
$icon = new pix_icon($cm->icon, get_string('modulename', $cm->modname), $cm->iconcomponent);
} else {
$activitynode = $coursenode->add(format_string($cm->name), $url, navigation_node::TYPE_ACTIVITY, null, $cm->id, $icon);
$activitynode->title(get_string('modulename', $cm->modname));
$activitynode->hidden = (!$cm->visible);
- if (!$url) {
+ if (!$cm->uservisible) {
+ // Do not show any error here, let the page handle exception that activity is not visible for the current user.
+ // Also there may be no exception at all in case when teacher is logged in as student.
+ $activitynode->display = false;
+ } else if (!$url) {
// Don't show activities that don't have links!
$activitynode->display = false;
} else if (self::module_extends_navigation($cm->modname)) {