--- loncom/interface/lonnavmaps.pm 2002/03/16 08:56:53 1.32
+++ loncom/interface/lonnavmaps.pm 2002/09/03 01:23:35 1.41.2.1
@@ -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.2.1 2002/09/03 01:23:35 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;
}
}
@@ -488,13 +489,7 @@ sub handler {
@rows=();
- &tracetable(0,$firstres,'&'.$lastres.'&','',0);
- if ($hash{'src_'.$lastres}) {
- my $brepriv=&Apache::lonnet::allowed('bre',$hash{'src_'.$lastres});
- if (($brepriv eq '2') || ($brepriv eq 'F')) {
- $rows[$#rows+1]=''.$lastres;
- }
- }
+ &tracetable(0,$firstres,'&','',0);
# ------------------------------------------------------------------ Page parms
@@ -574,8 +569,10 @@ sub handler {
}
$r->print('>'.
''.
- '