version 1.8.4.8, 2010/10/04 18:54:46
|
version 1.10.2.2.4.1, 2020/09/08 04:28:39
|
Line 31
|
Line 31
|
# browser.interface - if this is 'textual', it overrides the second parameter |
# browser.interface - if this is 'textual', it overrides the second parameter |
# and goes to screen reader PDA mode |
# and goes to screen reader PDA mode |
# |
# |
# environment.remote - if this is 'on', the routines controll the remote |
|
# control, otherwise they render the main window controls; ignored it |
|
# browser.interface is 'textual' |
|
# |
|
|
|
package Apache::lonmainmenu; |
package Apache::lonmainmenu; |
|
|
use strict; |
use strict; |
use Apache::Constants qw(:common); |
use Apache::Constants qw(:common REDIRECT); |
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; |
|
|
|
# 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'); |
|
$r->header_out(Location => $url); |
|
return REDIRECT; |
|
} |
|
|
&Apache::loncommon::no_cache($r); |
&Apache::loncommon::no_cache($r); |
&Apache::loncommon::content_type($r,'text/html'); |
&Apache::loncommon::content_type($r,'text/html'); |
$r->send_http_header; |
$r->send_http_header; |
return OK if $r->header_only; |
return OK if $r->header_only; |
|
|
my $custommenu = &Apache::loncommon::needs_gci_custom(); |
|
my $cid = $env{'request.course.id'}; |
|
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(); |
|
} |
|
|
|
my $script_tag; |
|
if ($env{'environment.remote'} ne 'off') { |
|
my $utility=&Apache::lonmenu::utilityfunctions('/adm/menu'); |
|
$script_tag=(<<ENDSCRIPT); |
|
<script type="text/javascript"> |
|
$utility |
|
</script> |
|
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 |
# 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'; |
$env{'environment.remote'}='off'; |
|
$r->print(&Apache::loncommon::start_page( 'Main Menu', |
# Breadcrumbs |
undef, |
my $args; |
{'bread_crumbs' => 1})); |
unless ($custommenu && !$env{'request.course.id'}) { |
$r->print(&Apache::lonmenu::inlinemenu()); |
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::end_page()); |
$r->print(&Apache::loncommon::end_page()); |
return OK; |
return OK; |
} |
} |
|
|
|
|
1; |
1; |
__END__ |
__END__ |
|
|