--- loncom/interface/lonnavmaps.pm 2002/03/16 08:56:53 1.32 +++ loncom/interface/lonnavmaps.pm 2002/08/12 19:45:12 1.41 @@ -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.41 2002/08/12 19:45:12 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -338,7 +338,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 +354,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 +369,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, @@ -410,10 +411,10 @@ sub handler { if ($ENV{'request.course.fn'}) { $fn=$ENV{'request.course.fn'}; if (-e "$fn.db") { - if ((tie(%hash,'GDBM_File',"$fn.db",&GDBM_READER,0640)) && + if ((tie(%hash,'GDBM_File',"$fn.db",&GDBM_READER(),0640)) && (tie(%parmhash,'GDBM_File', $ENV{'request.course.fn'}.'_parms.db', - &GDBM_READER,0640))) { + &GDBM_READER(),0640))) { $hashtied=1; } } @@ -574,8 +575,10 @@ sub handler { } $r->print('>'. ''. - '