--- loncom/interface/lonnavmaps.pm 2002/03/16 08:56:53 1.32 +++ loncom/interface/lonnavmaps.pm 2002/06/24 14:28:10 1.36 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Navigate Maps Handler # -# $Id: lonnavmaps.pm,v 1.32 2002/03/16 08:56:53 albertel Exp $ +# $Id: lonnavmaps.pm,v 1.36 2002/06/24 14:28:10 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -278,7 +278,8 @@ sub addresource { } my $brepriv=&Apache::lonnet::allowed('bre',$resource); if ($hash{'src_'.$rid}) { - if (($brepriv eq '2') || ($brepriv eq 'F')) { + if ((($brepriv eq '2') && (!$hash{'randomout_'.$rid})) + || ($brepriv eq 'F')) { my $pprefix=''; if ($resource=~/\.(problem|exam|quiz|assess|survey|form)$/) { $pprefix=&astatus($rid); @@ -338,7 +339,6 @@ sub followlinks () { sub tracetable { my ($sofar,$rid,$beenhere,$showtypes,$indent,$linkid)=@_; my $newshowtypes=$showtypes; - my $newlinkid=$linkid; my $further=$sofar; #$Apache::lonxml::debug=1; &Apache::lonxml::debug("$rid ; $linkid ; $sofar ; $beenhere ; ".$hash{'src_'.$rid}); @@ -355,9 +355,11 @@ sub tracetable { eq 'page') { $tprefix='j'; if ($indent) { $tprefix='i'.$indent.','.$tprefix; } + if ($linkid) { $tprefix='l'.$linkid.','.$tprefix; } $newshowtypes='problems'; $indent++; - $newlinkid=$rid; + #if in a .page continue to link the encompising .page + if (!$linkid) { $linkid=$rid; } } if (defined($rows[$sofar])) { $rows[$sofar].='&'.$tprefix.$rid; @@ -368,10 +370,10 @@ sub tracetable { (defined($hash{'map_finish_'.$hash{'src_'.$rid}}))) { my $frid=$hash{'map_finish_'.$hash{'src_'.$rid}}; $sofar=&tracetable($sofar,$hash{'map_start_'.$hash{'src_'.$rid}}, - '&'.$frid.'&',$newshowtypes,$indent,$newlinkid); + '&'.$frid.'&',$newshowtypes,$indent,$linkid); &addresource($hash{'src_'.$frid},\$sofar,$frid,$newshowtypes, - $indent,$newlinkid); - if ($tprefix =~ /j$/) { $indent--; } + $indent,$linkid); + if ($tprefix =~ /j$/) { $indent--; $linkid=''; } } } else { &addresource($hash{'src_'.$rid},\$sofar,$rid,$showtypes, @@ -611,6 +613,11 @@ sub handler { my $indent;my $indentstr; my $linkid; my $rid=$colcont[$j]; + $rid=~/(\d+)\.(\d+)$/; + my $src= + &Apache::lonnet::declutter($hash{'src_'.$1.'.'.$2}); + my $symb= + &Apache::lonnet::declutter($hash{'map_id_'.$1}).'___'.$2.'___'.$src; my $add='