--- loncom/interface/londocs.pm 2002/10/11 18:06:32 1.26 +++ loncom/interface/londocs.pm 2002/10/15 20:50:19 1.27 @@ -1,7 +1,7 @@ # The LearningOnline Network # Documents # -# $Id: londocs.pm,v 1.26 2002/10/11 18:06:32 www Exp $ +# $Id: londocs.pm,v 1.27 2002/10/15 20:50:19 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -35,9 +35,14 @@ use Apache::loncommon; use Apache::lonratedt; use Apache::lonratsrv; use Apache::lonxml; +use GDBM_File; my $iconpath; +my %hash; + +my $hashtied; + # Mapread read maps into lonratedt::global arrays # @order and @resources, determines status # sets @order - pointer to resources in right order @@ -218,6 +223,23 @@ END return $line; } +# ---------------------------------------------------------------- tie the hash + +sub tiehash { + $hashtied=0; + if ($ENV{'request.course.fn'}) { + if (tie(%hash,'GDBM_File',$ENV{'request.course.fn'}.".db", + &GDBM_READER(),0640)) { + $hashtied=1; + } + } +} + +sub untiehash { + if ($hashtied) { untie %hash; } + $hashtied=0; +} + # ================================================================ Main Handler sub handler { my $r = shift; @@ -225,6 +247,7 @@ sub handler { $r->send_http_header; return OK if $r->header_only; + if ($ENV{'form.verify'}) { my $loaderror=&Apache::lonnet::overloaderror($r); @@ -232,11 +255,45 @@ sub handler { $r->print('Verify Content'. &Apache::loncommon::bodytag('Verify Course Documents')); - + $hashtied=0; + &tiehash(); + foreach (keys %hash) { + if ($_=~/^src\_(.+)$/) { + my $resid=$1; + $r->rflush(); + if ($hash{$_}) { + my $fn=$hash{$_}; + $r->print('
'. + ($hash{'title_'.$resid}?$hash{'title_'.$resid}:$fn).' '); + if ($fn=~/^\/res\//) { + my $result=&Apache::lonnet::repcopy($fn); + if ($result eq OK) { + $r->print('ok'); + $r->rflush(); + my $dependencies= + &Apache::lonnet::metadata($_,'dependencies'); + $r->print('Dependencies: '.$dependencies.'
'); + } elsif ($result eq HTTP_SERVICE_UNAVAILABLE) { + $r->print( + 'connection down'); + } elsif ($result eq HTTP_NOT_FOUND) { + $r->print('not found'); + } else { + $r->print( + 'access denied'); + } + } + } + } + } + &untiehash(); } elsif ($ENV{'form.versions'}) { $r->print('Check Versions'. &Apache::loncommon::bodytag('Check Course Document Versions')); + $hashtied=0; + &tiehash(); + &untiehash(); } else { # is this a standard course?