--- loncom/interface/lonsearchcat.pm 2001/03/15 19:16:42 1.22 +++ loncom/interface/lonsearchcat.pm 2001/03/15 21:42:05 1.39 @@ -424,10 +424,40 @@ sub advancedsearch { my ($r,$envhash)=@_; my %ENV=%{$envhash}; - return <<(END); -Advanced searching is not yet implemented. -END + my $fillflag=0; + for my $field ('title','author','subject','keywords','url','version', + 'notes','abstract','mime','language','owner', + 'custommetadata') { + if (&filled($ENV{'form.basicexp'})) { + $fillflag++; + } + } + unless ($fillflag) { + &output_blank_field_error($r); + return OK; + } + + my $query=''; +# my $concatarg=join('," ",', +# ('title', 'author', 'subject', 'notes', 'abstract')); + + $query="select * from metadata where concat(title) like '\%$ENV{'form.title'}\%'"; + my $reply=&Apache::lonnet::metadata_query($query); + + &output_results($r,$envhash,$reply); + return OK; +} + +# ---------------------------------------------------- see if a field is filled +sub filled { + my ($field)=@_; + if ($field=~/\S/) { + return 1; + } + else { + return 0; + } } # --------------------------------------------------- Performing a basic search @@ -435,10 +465,16 @@ sub basicsearch { my ($r,$envhash)=@_; my %ENV=%{$envhash}; - &output_blank_field_error($r) unless length($ENV{'form.basicexp'}); + unless (&filled($ENV{'form.basicexp'})) { + &output_blank_field_error($r); + return OK; + } + + my $query=''; + my $concatarg=join('," ",', + ('title', 'author', 'subject', 'notes', 'abstract')); - my $query=$ENV{'form.basicexp'}; - $query="select * from metadata where concat(title,\" \",author) like '\%$ENV{'form.basicexp'}\%'"; + $query="select * from metadata where concat($concatarg) like '\%$ENV{'form.basicexp'}\%'"; my $reply=&Apache::lonnet::metadata_query($query); &output_results($r,$envhash,$reply); return OK;