version 1.10.2.2.4.1, 2020/09/08 04:28:39
|
version 1.14, 2025/03/25 01:02:59
|
Line 39 use Apache::Constants qw(:common REDIREC
|
Line 39 use Apache::Constants qw(:common REDIREC
|
use Apache::loncommon(); |
use Apache::loncommon(); |
use Apache::lonnet; |
use Apache::lonnet; |
use Apache::lonmenu(); |
use Apache::lonmenu(); |
|
use Apache::lonlocal; |
|
|
sub handler { |
sub handler { |
my $r = shift; |
my $r = shift; |
Line 60 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, |
# If menu collection is in effect in course context, determine if Main Menu |
{'bread_crumbs' => 1})); |
# will be shown. |
$r->print(&Apache::lonmenu::inlinemenu()); |
# |
$r->print(&Apache::loncommon::end_page()); |
my $showmenu = 1; |
|
my $deeplinkmenu; |
|
if ($env{'request.course.id'}) { |
|
(my $menucoll,$deeplinkmenu,my $menuref) = |
|
&Apache::loncommon::menucoll_in_effect(); |
|
if (($menucoll) && (ref($menuref) eq 'HASH')) { |
|
if ($menuref->{'main'} eq 'n') { |
|
$showmenu = 0; |
|
} |
|
} |
|
} |
|
my $js; |
|
my $args = { 'bread_crumbs' => 1 }; |
|
if ($showmenu) { |
|
$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"; |
|
} |
|
} |
|
} |
|
} |
|
// ]]> |
|
</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"> </span>'. |
|
&Apache::lonmenu::inlinemenu(). |
|
'</div>'.&Apache::loncommon::end_page()); |
return OK; |
return OK; |
} |
} |
|
|