--- loncom/interface/lonsearchcat.pm 2005/01/19 20:22:36 1.230.2.1 +++ loncom/interface/lonsearchcat.pm 2005/02/02 21:27:28 1.230.2.2 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Search Catalog # -# $Id: lonsearchcat.pm,v 1.230.2.1 2005/01/19 20:22:36 albertel Exp $ +# $Id: lonsearchcat.pm,v 1.230.2.2 2005/02/02 21:27:28 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -444,6 +444,7 @@ sub hidden_field { { # Scope the course search to avoid global variables # # Variables For course search +my %alreadyseen; my %hash; my $totalfound; @@ -462,6 +463,7 @@ sub course_search { my $pretty_search_string = ''.$ENV{'form.courseexp'}.''; my $search_string = $ENV{'form.courseexp'}; my @New_Words; + undef(%alreadyseen); if ($ENV{'form.crsrelated'}) { ($search_string,@New_Words) = &related_version($ENV{'form.courseexp'}); if (@New_Words) { @@ -504,6 +506,8 @@ sub course_search { sub checkonthis { my ($r,$id,$url,$level,$title,$fulltext,$symb,@allwords)=@_; + $alreadyseen{$id}=1; + if (&Apache::loncommon::connection_aborted($r)) { return; } $r->rflush(); my $result=$title.' '; @@ -550,7 +554,7 @@ sub checkonthis { # Check also the dependencies of this one my $dependencies= &Apache::lonnet::metadata($url,'dependencies'); - foreach (split(/\,/,$dependencies)) { + foreach (split(/\,/,$dependencies) && (!$alreadyseen{$id})) { if (($_=~/^\/res\//)) { &checkonthis($r,$id,$_,$level+1,'',$fulltext,undef,@allwords); }