[LON-CAPA-cvs] cvs: loncom /interface lonnavmaps.pm

albertel lon-capa-cvs@mail.lon-capa.org
Sat, 16 Mar 2002 09:11:01 -0000


albertel		Sat Mar 16 04:11:01 2002 EDT

  Modified files:              
    /loncom/interface	lonnavmaps.pm 
  Log:
  - for a .page inside of a .page need to link to the original .page not the nested one.
  
  
  
Index: loncom/interface/lonnavmaps.pm
diff -u loncom/interface/lonnavmaps.pm:1.32 loncom/interface/lonnavmaps.pm:1.33
--- loncom/interface/lonnavmaps.pm:1.32	Sat Mar 16 03:56:53 2002
+++ loncom/interface/lonnavmaps.pm	Sat Mar 16 04:11:01 2002
@@ -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 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 @@
 		 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 @@
 	    (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 @@
 				$hwke='</b> ('.$ctext.')</font>';
 			    }
 			}
-			if ($hash{'src_'.$rid} eq $currenturl) {
+			if ($rid && $hash{'src_'.$rid} eq $currenturl) {
 			    $add=$add.'<a name="curloc"></a>'.
 				'<font color=red size=+2><b>&gt; </b></font>';
 			    $adde=
@@ -703,9 +704,12 @@
 			    for(my $i=-1;$i<$indent;$i++) { $indentstr.=$is; }
 			}
 			if (!$linkid) { $linkid=$rid; }
-			$r->print($add.$indentstr.
-				  '<a href="'.$hash{'src_'.$linkid}.'">'.$hwk.
-				  $hash{'title_'.$rid}.$hwke.'</a>'.$adde);
+			$r->print($add.$indentstr);
+			if ($rid) {
+			    $r->print('<a href="'.$hash{'src_'.$linkid}.'">'.
+				      $hwk.$hash{'title_'.$rid}.$hwke.'</a>');
+			}
+			$r->print($adde);
 		    }
 		    $r->print('</tr>');
 		}