version 1.1, 2006/04/07 22:28:40
|
version 1.8.4.12, 2010/12/05 19:43:10
|
Line 41 package Apache::lonmainmenu;
|
Line 41 package Apache::lonmainmenu;
|
use strict; |
use strict; |
use Apache::Constants qw(:common); |
use Apache::Constants qw(:common); |
use Apache::loncommon(); |
use Apache::loncommon(); |
|
use Apache::lonnet; |
|
use Apache::lonmenu(); |
|
use Apache::lonlocal; |
|
use LONCAPA qw(:DEFAULT :match); |
|
|
sub handler { |
sub handler { |
my $r = shift; |
my $r = shift; |
Line 49 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 %cicourses; |
|
my $udom = $env{'user.domain'}; |
|
my %allnums = &Apache::loncommon::get_faculty_cnums(); |
|
if (($udom ne '') && (ref($allnums{$udom}) eq 'HASH')) { |
|
foreach my $key (%{$allnums{$udom}}) { |
|
$cicourses{$udom.'_'.$key} = $allnums{$udom}->{$key}; |
|
} |
|
} |
|
|
|
if (($custommenu && $cid ne '' && ($cicourses{$cid} || $env{'request.role'} !~ m{^cc\./\Q$udom\Etest/})) || |
|
($cid ne '' && $env{'user.domain'} =~ /^\w+citest$/)) { |
|
$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(); |
|
$pgbg=&Apache::loncommon::designparm($function.'.pgbg',$domain); |
|
$tabbg=&Apache::loncommon::designparm($function.'.tabbg',$domain); |
|
$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 79 $utility
|
Line 86 $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 ($nocrumbs,$args); |
|
if ($custommenu) { |
|
if ($env{'request.course.id'}) { |
|
unless ($cicourses{$env{'request.course.id'}}) { |
|
$nocrumbs = 1; |
|
} |
|
} else { |
|
$nocrumbs = 1; |
|
} |
|
} |
|
unless ($nocrumbs) { |
|
my $brcrum = []; |
|
$args = {bread_crumbs => $brcrum}; |
|
} |
|
$r->print(&Apache::loncommon::start_page('Main Menu',$script_tag,$args)); |
|
|
|
my ($rolecount,$numcourses) = (0,0); |
|
my $now = time; |
|
unless (($custommenu) || ($env{'user.domain'} =~ /^\w+citest$/)) { |
|
foreach my $envkey (keys(%env)) { |
|
next unless ($envkey =~ /^user\.role\./); |
|
my ($start,$end) = split(/\./,$env{$envkey}); |
|
if (($start eq '' || $start <= $now) && ($end eq '' || $end > $now)) { |
|
$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__ |
|
|