--- loncom/interface/lonmainmenu.pm 2014/05/20 20:33:24 1.11 +++ loncom/interface/lonmainmenu.pm 2021/06/07 06:05:49 1.13 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # displays the main menu # -# $Id: lonmainmenu.pm,v 1.11 2014/05/20 20:33:24 musolffc Exp $ +# $Id: lonmainmenu.pm,v 1.13 2021/06/07 06:05:49 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -39,12 +39,13 @@ use Apache::Constants qw(:common REDIREC use Apache::loncommon(); use Apache::lonnet; use Apache::lonmenu(); +use Apache::lonlocal; sub handler { my $r = shift; # Check for critical messages and redirect if present. - my ($redirect,$url) = &Apache::loncommon::critical_redirect(300); + my ($redirect,$url) = &Apache::loncommon::critical_redirect(300,'menu'); if ($redirect) { &Apache::loncommon::content_type($r,'text/html'); $r->header_out(Location => $url); @@ -64,6 +65,27 @@ sub handler { $r->print(&Apache::loncommon::start_page( 'Main Menu', undef, {'bread_crumbs' => 1})); +# +# If menu collection is in effect in course context, and Main Menu is +# not included, display message in place of usual menu items. +# + if ($env{'request.course.id'}) { + my ($menucoll,$deeplinkmenu,$menuref) = + &Apache::loncommon::menucoll_in_effect(); + if ($menucoll) { + if (ref($menuref) eq 'HASH') { + if ($menuref->{'main'} eq 'n') { + $r->print('

'.&mt('Main Menu unavailable').'

'); + unless ($deeplinkmenu) { + my $crstype = &Apache::loncommon::course_type(); + $r->print('

'.&mt("Main Menu page is unavailable in this $crstype").'

'); + } + $r->print(&Apache::loncommon::end_page()); + return OK; + } + } + } + } $r->print(&Apache::lonmenu::inlinemenu()); $r->print(&Apache::loncommon::end_page()); return OK;