Diff for /loncom/interface/lonmainmenu.pm between versions 1.10.2.2.6.1 and 1.14

version 1.10.2.2.6.1, 2021/12/31 22:11:36 version 1.14, 2025/03/25 01:02:59
Line 61  sub handler { Line 61  sub handler {
 # temporarily set interface to "faketextual" and remote to "off", which renders  # temporarily set interface to "faketextual" and remote to "off", which renders
 # the main menu  # the main menu
     $env{'browser.interface'}='faketextual';      $env{'browser.interface'}='faketextual';
     $env{'environment.remote'}='off';  
     $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  # If menu collection is in effect in course context, determine if Main Menu
 # not included, display message in place of usual menu items.  # will be shown.
 #  #
       my $showmenu = 1;
       my $deeplinkmenu;
     if ($env{'request.course.id'}) {      if ($env{'request.course.id'}) {
         my ($menucoll,$deeplinkmenu,$menuref) =          (my $menucoll,$deeplinkmenu,my $menuref) =
             &Apache::loncommon::menucoll_in_effect();              &Apache::loncommon::menucoll_in_effect();
         if ($menucoll) {          if (($menucoll) && (ref($menuref) eq 'HASH')) {
             if (ref($menuref) eq 'HASH') {              if ($menuref->{'main'} eq 'n') {
                 if ($menuref->{'main'} eq 'n') {                  $showmenu = 0;
                     $r->print('<h3>'.&mt('Main Menu unavailable').'</h3>');              }
                     unless ($deeplinkmenu) {          }
                         my $crstype = &Apache::loncommon::course_type();      }
                         $r->print('<p>'.&mt("Main Menu page is unavailable in this $crstype").'</p>');      my $js;
                     }      my $args = { 'bread_crumbs' => 1 };
                     $r->print(&Apache::loncommon::end_page());      if ($showmenu) {
                     return OK;          $js = <<"END";
                 }  <script type="text/javascript">
   // <![CDATA[
   function formatMenuText() {
       var textArray = document.getElementsByClassName("LC_menu_text");
       if (textArray.length > 0) {
           var singleLineHeight = textArray[0].offsetHeight;
           for (var i=1; i<textArray.length; i++) {
               if (textArray[i].offsetHeight > singleLineHeight) {
                   var el = textArray[i].previousElementSibling;
                   el.style.cssFloat = "left";
                   el.style.marginRight = "5px";
             }              }
         }          }
     }      }
     $r->print(&Apache::lonmenu::inlinemenu());  }
     $r->print(&Apache::loncommon::end_page());  // ]]>
   </script>
   END
           $args->{'add_entries'} = { 'onload' => 'javascript:formatMenuText();' };
       }
   
       $r->print(&Apache::loncommon::start_page( 'Main Menu',$js,$args).
                 '<div class="LC_landmark" role="main">');
   #
   # If menu collection is in effect in course context, and Main Menu is 
   # not included, display message in place of usual menu items.
   #
       unless ($showmenu) {
           my $nomenumsg;
           my $crstype = &Apache::loncommon::course_type();
           if ($deeplinkmenu) {
               $nomenumsg = &mt('Page unavailable');
           } else {
               $nomenumsg = &mt("Main Menu page is unavailable in this $crstype");
           }
           $r->print('<h1 class="LC_heading_3">'.$nomenumsg.'</h1>'.
                     '</div>'.&Apache::loncommon::end_page());
           return OK;
       }
   #
   # A span with class of LC_menu_text needs to be first item with that class.
   # It will be used by formatMenuText() to determine the offsetHeight for a single line.
   #
       $r->print('<span class="LC_menu_text">&nbsp;</span>'.
                 &Apache::lonmenu::inlinemenu().
                 '</div>'.&Apache::loncommon::end_page());
     return OK;      return OK;
 }  }
   

Removed from v.1.10.2.2.6.1  
changed lines
  Added in v.1.14


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>