--- loncom/interface/lonmainmenu.pm 2021/06/07 06:05:49 1.13 +++ loncom/interface/lonmainmenu.pm 2025/03/25 01:02:59 1.14 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # displays the main menu # -# $Id: lonmainmenu.pm,v 1.13 2021/06/07 06:05:49 raeburn Exp $ +# $Id: lonmainmenu.pm,v 1.14 2025/03/25 01:02:59 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -44,7 +44,7 @@ use Apache::lonlocal; sub handler { my $r = shift; - # Check for critical messages and redirect if present. + # Check for critical messages and redirect if present. my ($redirect,$url) = &Apache::loncommon::critical_redirect(300,'menu'); if ($redirect) { &Apache::loncommon::content_type($r,'text/html'); @@ -62,32 +62,71 @@ sub handler { # the main menu $env{'browser.interface'}='faketextual'; - $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 menu collection is in effect in course context, determine if Main Menu +# will be shown. # + my $showmenu = 1; + my $deeplinkmenu; if ($env{'request.course.id'}) { - my ($menucoll,$deeplinkmenu,$menuref) = + (my $menucoll,$deeplinkmenu,my $menuref) = &Apache::loncommon::menucoll_in_effect(); - if ($menucoll) { - if (ref($menuref) eq 'HASH') { - if ($menuref->{'main'} eq 'n') { - $r->print('
'.&mt("Main Menu page is unavailable in this $crstype").'
'); - } - $r->print(&Apache::loncommon::end_page()); - return OK; - } + if (($menucoll) && (ref($menuref) eq 'HASH')) { + if ($menuref->{'main'} eq 'n') { + $showmenu = 0; + } + } + } + my $js; + my $args = { 'bread_crumbs' => 1 }; + if ($showmenu) { + $js = <<"END"; + +END + $args->{'add_entries'} = { 'onload' => 'javascript:formatMenuText();' }; + } + + $r->print(&Apache::loncommon::start_page( 'Main Menu',$js,$args). + '