Diff for /loncom/interface/lonmainmenu.pm between versions 1.2 and 1.8.4.8

version 1.2, 2006/04/10 18:35:04 version 1.8.4.8, 2010/10/04 18:54:46
Line 43  use Apache::Constants qw(:common); Line 43  use Apache::Constants qw(:common);
 use Apache::loncommon();  use Apache::loncommon();
 use Apache::lonnet;  use Apache::lonnet;
 use Apache::lonmenu();  use Apache::lonmenu();
   use Apache::lonlocal;
   use LONCAPA qw(:DEFAULT :match);
   
 sub handler {  sub handler {
     my $r = shift;      my $r = shift;
Line 51  sub handler { Line 53  sub handler {
     $r->send_http_header;      $r->send_http_header;
     return OK if $r->header_only;      return OK if $r->header_only;
   
     my $form;      my $custommenu = &Apache::loncommon::needs_gci_custom();
     if ($env{'environment.remote'} ne 'off' &&      my $cid = $env{'request.course.id'};
  $env{'browser.interface'} ne 'textual') {      my %gcicourses = (
                          gci_9615072b469884921gcil1 => 'review',
                          gci_1H96711d710194bfegcil1 => 'submit',
                          gci_5422913620b814c90gcil1 => 'tutorial',
                        );
       if (($custommenu && $cid ne '' && ($gcicourses{$cid} || $env{'request.role'} !~ m{^cc\./gcitest/})) || 
           ($env{'user.domain'} eq 'gcitest')) {
           $r->internal_redirect('/adm/navmaps');
           return OK;
       }
   
       my $form; 
       if ($env{'environment.remote'} ne 'off') {
  $form=&Apache::lonmenu::serverform();   $form=&Apache::lonmenu::serverform();
     }      }
     my $function='student';  
     if ($env{'request.role'}=~/^(cc|in|ta|ep)/) {  
  $function='coordinator';  
     }  
     if ($env{'request.role'}=~/^(su|dc|ad|li)/) {  
  $function='admin';  
     }  
     if (($env{'request.role'}=~/^(au|ca)/) ||  
  ($env{'request.noversionuri'}=~/^(\/priv|\~)/)) {  
  $function='author';  
     }  
     my $domain=&Apache::loncommon::determinedomain();  
     # FIXME these don't have the effect on the vars in lonmenu  
     # that they used to have  
     my $pgbg=&Apache::loncommon::designparm($function.'.pgbg',$domain);  
     my $tabbg=&Apache::loncommon::designparm($function.'.tabbg',$domain);  
     my $font=&Apache::loncommon::designparm($function.'.font',$domain);  
     my $script_tag;      my $script_tag;
     if ($env{'environment.remote'} ne 'off') {      if ($env{'environment.remote'} ne 'off') {
         my $utility=&Apache::lonmenu::utilityfunctions('/adm/menu');          my $utility=&Apache::lonmenu::utilityfunctions('/adm/menu');
Line 83  $utility Line 81  $utility
 ENDSCRIPT  ENDSCRIPT
     }      }
 # ---- Print the screen, pretend to be in text mode to generate text-based menu  # ---- Print the screen, pretend to be in text mode to generate text-based menu
     unless ($env{'browser.interface'} eq 'textual') {  # temporarily set interface to "faketextual" and remote to "off", which renders
  $env{'browser.interface'}='faketextual';  # the main menu
  $env{'environment.remote'}='off';      $env{'browser.interface'}='faketextual';
       $env{'environment.remote'}='off';
   
       # Breadcrumbs
       my $args;
       unless ($custommenu && !$env{'request.course.id'}) {
           my $brcrum = [];
           $args = {bread_crumbs => $brcrum};
       }
       $r->print(&Apache::loncommon::start_page('Main Menu',$script_tag,$args));
   
       my ($rolecount,$numcourses) = (0,0);
       unless (($custommenu) || ($env{'user.domain'} eq 'gcitest')) {
          foreach my $envkey (keys(%env)) {
             next unless ($envkey =~ /^user\.role\./);
             $rolecount ++;
          }
       }
       if ($custommenu) {
           $r->print(&Apache::lonmenu::inlinemenu('gcicustom').$form);
       } elsif (!$rolecount) {
           $r->print(&Apache::lonmenu::inlinemenu('gcinorole').$form);
       } else {
           $r->print(&Apache::lonmenu::inlinemenu().$form);
     }      }
     $r->print(&Apache::loncommon::start_page('Main Menu',$script_tag));  
     $r->print('<table>'.&Apache::lonmenu::inlinemenu().'</table>'.$form);  
     $r->print(&Apache::loncommon::end_page());      $r->print(&Apache::loncommon::end_page());
     return OK;      return OK;
 }  }
   
   
 1;  1;
 __END__  __END__
   

Removed from v.1.2  
changed lines
  Added in v.1.8.4.8


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