--- loncom/interface/lonmenu.pm 2013/11/24 15:32:39 1.422 +++ loncom/interface/lonmenu.pm 2014/02/22 18:12:09 1.427 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Routines to control the menu # -# $Id: lonmenu.pm,v 1.422 2013/11/24 15:32:39 raeburn Exp $ +# $Id: lonmenu.pm,v 1.427 2014/02/22 18:12:09 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -283,8 +283,14 @@ sub primary_menu { $menu{$position} .= prep_menuitem($menuitem); } } - return ("
    $menu{'left'}
", - "
    $menu{'right'}
"); + my @output = ('',''); + if ($menu{'left'} ne '') { + $output[0] = "
    $menu{'left'}
"; + } + if ($menu{'right'} ne '') { + $output[1] = "
    $menu{'right'}
"; + } + return @output; } #returns hashref {user=>'',dom=>''} containing: @@ -508,8 +514,11 @@ sub create_submenu { if ($count == $numsub) { $borderbot = 'border-bottom:1px solid black;'; } + unless (($href eq '') || ($href =~ /^\#/)) { + $target = ' target="_top"'; + } $menu .= '
  • '; + $borderbot.'">'; if ($translate) { $menu .= &mt($item->[1]); } else { @@ -1220,7 +1229,10 @@ sub rawconfig { my $pub=($env{'request.state'} eq 'published'); my $con=($env{'request.state'} eq 'construct'); my $rol=$env{'request.role'}; - my $requested_domain = $env{'request.role.domain'}; + my $requested_domain; + if ($rol) { + $requested_domain = $env{'request.role.domain'}; + } foreach my $line (@desklines) { my ($row,$col,$pro,$prt,$img,$top,$bot,$act,$desc,$cat)=split(/\:/,$line); $prt=~s/\$uname/$uname/g; @@ -1234,7 +1246,13 @@ sub rawconfig { next if ($crstype ne 'Community'); $prt=~s/\$cmty/$crs/g; } - $prt=~s/\$requested_domain/$requested_domain/g; + if ($prt =~ m/\$requested_domain/) { + if ((!$requested_domain) && ($pro eq 'pbre') && ($env{'user.adv'})) { + $prt=~s/\$requested_domain/$env{'user.domain'}/g; + } else { + $prt=~s/\$requested_domain/$requested_domain/g; + } + } if ($category_names{$cat}!~/\w/) { $cat='oth'; } if ($pro eq 'clear') { $output.=&clear($row,$col); @@ -1270,8 +1288,9 @@ sub rawconfig { next; } } - if (&Apache::lonnet::allowed($priv,$prt)) { - $output.=&switch($uname,$udom,$row,$col,$img,$top,$bot,$act,$desc,$cat); + if ((($priv eq 'bre') && (&Apache::lonnet::allowed($priv,$prt) eq 'F')) || + (($priv ne 'bre') && (&Apache::lonnet::allowed($priv,$prt)))) { + $output.=&switch($uname,$udom,$row,$col,$img,$top,$bot,$act,$desc,$cat); } } elsif ($pro eq 'course') { if (($env{'request.course.fn'}) && ($crstype ne 'Community')) { @@ -1381,7 +1400,7 @@ sub rawconfig { sub check_for_rcrs { my $showreqcrs = 0; - my @reqtypes = ('official','unofficial','community'); + my @reqtypes = ('official','unofficial','community','textbook'); foreach my $type (@reqtypes) { if (&Apache::lonnet::usertools_access($env{'user.name'}, $env{'user.domain'},