--- loncom/interface/lonsearchcat.pm 2001/11/28 19:26:20 1.106 +++ loncom/interface/lonsearchcat.pm 2001/12/11 03:18:39 1.110 @@ -1,13 +1,35 @@ # The LearningOnline Network with CAPA -# # Search Catalog # +# $Id: lonsearchcat.pm,v 1.110 2001/12/11 03:18:39 harris41 Exp $ +# +# Copyright Michigan State University Board of Trustees +# +# This file is part of the LearningOnline Network with CAPA (LON-CAPA). +# +# LON-CAPA is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# LON-CAPA is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with LON-CAPA; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# /home/httpd/html/adm/gpl.txt +# +# http://www.lon-capa.org/ +# # YEAR=2001 # 3/8, 3/12, 3/13, 3/14, 3/15, 3/19 Scott Harrison # 3/20, 3/21, 3/22, 3/26, 3/27, 4/2, 8/15, 8/24, 8/25 Scott Harrison -# 10/12,10/14,10/15,10/16,11/28 Scott Harrison +# 10/12,10/14,10/15,10/16,11/28,11/29,12/10 Scott Harrison # -# $Id: lonsearchcat.pm,v 1.106 2001/11/28 19:26:20 harris41 Exp $ ### ############################################################################### @@ -81,39 +103,41 @@ sub BEGIN { { my $fh=Apache::File->new($Apache::lonnet::perlvar{'lonTabDir'}. '/language.tab'); - map { + while (<$fh>) { $_=~/(\w+)\s+([\w\s\-]+)/; chomp; $language{$1}=$2; - } <$fh>; + } } $cprtag{'any'}='Any copyright/distribution'; { my $fh=Apache::File->new($Apache::lonnet::perlvar{'lonIncludes'}. '/copyright.tab'); - map { + while (<$fh>) { $_=~/(\w+)\s+([\w\s\-]+)/; chomp; $cprtag{$1}=$2; - } <$fh>; + } } $mimetag{'any'}='Any type'; { my $fh=Apache::File->new($Apache::lonnet::perlvar{'lonTabDir'}. '/filetypes.tab'); - map { - $_=~/(\w+)\s+(\w+)\s+([\w\s\-]+)/; chomp; - $mimetag{$1}=".$1 $3"; - } <$fh>; + while (<$fh>) { + if (/^\S/ and !/^\#/) { + $_=~/(\S+)\s+(\S+)\s+([\S\s\-]+)/; chomp; + $mimetag{$1}=".$1 $3"; + } + } } { my $fh=Apache::File->new($Apache::lonnet::perlvar{'lonTabDir'}. '/hosts.tab'); - map { + while (<$fh>) { $_=~/(\w+?)\:(\w+?)\:(\w+?)\:(.*)/; chomp; if ($3 eq 'library') { $hostdomains{$1}=$2; $hostips{$1}=$4; } - } <$fh>; + } } } @@ -209,7 +233,7 @@ END $scrout.=&searchphrasefield('Limit by abstract','abstract', $ENV{'form.abstract'}); - $ENV{'form.mime'}='notxxx' unless length($ENV{'form.mime'}); + $ENV{'form.mime'}='any' unless length($ENV{'form.mime'}); $scrout.=&selectbox('Limit by MIME type','mime', $ENV{'form.mime'},%mimetag); @@ -354,21 +378,21 @@ ENDDOCUMENT # ----------- grab unprocessed CGI variables that may have been appended to URL sub get_unprocessed_cgi { - map { + foreach (split(/&/,$ENV{'QUERY_STRING'})) { my ($name, $value) = split(/=/,$_); $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; if ($name eq 'catalogmode' or $name eq 'launch' or $name eq 'acts') { $ENV{'form.'.$name}=$value; } - } (split(/&/,$ENV{'QUERY_STRING'})); + } } # ------------------------------------------------------------- make persistent sub make_persistent { my $persistent=''; - map { + foreach (keys %ENV) { if (/^form\./ && !/submit/) { my $name=$_; my $key=$name; @@ -378,7 +402,7 @@ sub make_persistent { END } - } (keys %ENV); + } return $persistent; } @@ -558,11 +582,11 @@ sub selectbox { my $uctitle=uc($title); my $selout="\n
$uctitle:".
"
".'';
}
@@ -1033,6 +1057,7 @@ ENDPOP
BLOOP: while(1) {
my $sn=0;
last BLOOP unless $bloop;
+ last BLOOP unless $timeremain;
RLOOP: foreach my $rkey (sort keys %rhash) {
$sn++;
next RLOOP if $orkey{$rkey};
@@ -1074,12 +1099,6 @@ ENDPOP
$r->rflush();
$tflag=0;
}
- if ($temp>1) {
- sleep 1;
- $timeremain--;
- $elapsetime++;
- last WLOOP;
- }
if (-e "$replyfile.end") {
$bloop--;
$orkey{$rkey}=1;
@@ -1123,6 +1142,12 @@ ENDPOP
}
last WLOOP;
}
+ if ($temp>1) {
+ sleep 1;
+ $timeremain--;
+ $elapsetime++;
+ last WLOOP;
+ }
last WLOOP unless $timeremain;
sleep 1;
$timeremain--;
@@ -1483,14 +1508,14 @@ RESULTS
# --------- settings whenever the user causes the search window to be launched
sub start_fresh_session {
delete $hash{'mode_catalog'};
- map {
+ foreach (keys %hash) {
if ($_ =~ /^pre_/) {
delete $hash{$_};
}
if ($_ =~ /^store/) {
delete $hash{$_};
}
- } keys %hash;
+ }
}
1;