--- loncom/interface/lonnavmaps.pm 2002/03/26 15:16:24 1.34
+++ loncom/interface/lonnavmaps.pm 2002/09/02 18:25:55 1.45
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Navigate Maps Handler
#
-# $Id: lonnavmaps.pm,v 1.34 2002/03/26 15:16:24 www Exp $
+# $Id: lonnavmaps.pm,v 1.45 2002/09/02 18:25:55 bowersj2 Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -339,7 +339,7 @@ sub tracetable {
my ($sofar,$rid,$beenhere,$showtypes,$indent,$linkid)=@_;
my $newshowtypes=$showtypes;
my $further=$sofar;
- #$Apache::lonxml::debug=1;
+# $Apache::lonxml::debug=1;
&Apache::lonxml::debug("$rid ; $linkid ; $sofar ; $beenhere ; ".$hash{'src_'.$rid});
if ($beenhere=~/\&$rid\&/) { return $further; }
$beenhere.=$rid.'&';
@@ -411,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;
}
}
@@ -434,8 +434,10 @@ sub handler {
&Apache::loncommon::no_cache($r);
$r->send_http_header;
- my $firstres=$hash{'map_start_/res/'.$ENV{'request.course.uri'}};
- my $lastres=$hash{'map_finish_/res/'.$ENV{'request.course.uri'}};
+ my $firstres=$hash{'map_start_'.
+ &Apache::lonnet::clutter($ENV{'request.course.uri'})};
+ my $lastres=$hash{'map_finish_'.
+ &Apache::lonnet::clutter($ENV{'request.course.uri'})};
if (!(($firstres) && ($lastres))) {
$r->print('
Coursemap undefined.');
} else {
@@ -489,13 +491,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
@@ -567,16 +563,19 @@ sub handler {
}
}
# ----------------------------------------------------------- Start Page Output
- $r->print('Navigate LON-CAPA Maps');
- $r->print('print(
+ 'Navigate Course Map');
if (($currenturl=~/^\/res/) &&
($currenturl!~/^\/res\/adm/)) {
- $r->print(' onLoad="window.location.hash='."'curloc'".'"');
+ $bodytagadd='onLoad="window.location.hash='."'curloc'".'"';
}
- $r->print('>'.
- '
'.
- 'Navigate Course Map
'.
- "$date
");
+ $r->print(&Apache::loncommon::bodytag('Navigate Course Map','',
+ $bodytagadd));
+ $r->print('');
+ my $desc=$ENV{'course.'.$ENV{'request.course.id'}.'.description'};
+ if (defined($desc)) { $r->print("$desc
\n"); }
+ $r->print("$date
\n");
$r->rflush();
$r->print('
New discussion since '.
localtime($lastcheck).
@@ -608,10 +607,19 @@ sub handler {
$r->print("\n");
my @colcont=split(/\&/,$rows[$i]);
my $avespan=$lcm/($#colcont+1);
+
+ # for each item I wish to print on this row...
for ($j=0;$j<=$#colcont;$j++) {
my $indent;my $indentstr;
my $linkid;
my $rid=$colcont[$j];
+
+ # bug? $rid can't accept a list of two elements
+ $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='';
my $adde=' | ';
my $hwk='';
@@ -622,6 +630,12 @@ sub handler {
$rid=$1;
$add='';
$adde=' | ';
+ if (($ENV{'user.adv'}) &&
+ ($parmhash{$symb.'.0.parameter_randompick'})) {
+ $adde=' (randomly select '.
+ $parmhash{$symb.'.0.parameter_randompick'}.
+ ')';
+ }
}
if ($rid=~/^j(.+)/) { $rid=$1; }
if ($rid=~/^p(\d)(\d)\"([\w\: \(\)\/\,]*)\"(.+)/) {
@@ -638,7 +652,7 @@ sub handler {
} elsif ($code eq '4') {
$add='';
} else {
- $add=' | ';
+ $add=' | ';
if ($tcode eq '2') {
$add=' | ';
}
@@ -667,11 +681,6 @@ sub handler {
$adde=
' <'.$adde;
}
- my $src=
- &Apache::lonnet::declutter($hash{'src_'.$rid});
- $rid=~/^(\d+)\.(\d+)$/;
- my $symb=
- &Apache::lonnet::declutter($hash{'map_id_'.$1}).'___'.$2.'___'.$src;
if ($discussiontimes{$symb}>$lastcheck) {
$adde=
' '.
@@ -704,10 +713,15 @@ sub handler {
for(my $i=-1;$i<$indent;$i++) { $indentstr.=$is; }
}
if (!$linkid) { $linkid=$rid; }
+ if ($hash{'randomout_'.$rid}) {
+ $adde=' (hidden)'.$adde;
+ }
$r->print($add.$indentstr);
if ($rid) {
$r->print(''.
+ (($hash{'src_'.$linkid}=~/\?/)?'&':'?').
+ 'symb='.&Apache::lonnet::escape($symb)
+ .'">'.
$hwk.$hash{'title_'.$rid}.$hwke.'');
}
$r->print($adde);
|