--- loncom/interface/lonnavmaps.pm 2002/03/16 08:56:53 1.32
+++ loncom/interface/lonnavmaps.pm 2002/03/16 09:11:01 1.33
@@ -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.33 2002/03/16 09:11:01 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,
@@ -660,7 +661,7 @@ sub handler {
$hwke=' ('.$ctext.')';
}
}
- if ($hash{'src_'.$rid} eq $currenturl) {
+ if ($rid && $hash{'src_'.$rid} eq $currenturl) {
$add=$add.''.
'> ';
$adde=
@@ -703,9 +704,12 @@ sub handler {
for(my $i=-1;$i<$indent;$i++) { $indentstr.=$is; }
}
if (!$linkid) { $linkid=$rid; }
- $r->print($add.$indentstr.
- ''.$hwk.
- $hash{'title_'.$rid}.$hwke.''.$adde);
+ $r->print($add.$indentstr);
+ if ($rid) {
+ $r->print(''.
+ $hwk.$hash{'title_'.$rid}.$hwke.'');
+ }
+ $r->print($adde);
}
$r->print('');
}