Diff for /loncom/interface/lonsearchcat.pm between versions 1.18 and 1.40

version 1.18, 2001/03/15 18:43:30 version 1.40, 2001/03/15 21:51:21
Line 77  END Line 77  END
     }      }
   
     if ($ENV{'form.basicsubmit'} eq 'SEARCH') {      if ($ENV{'form.basicsubmit'} eq 'SEARCH') {
  return &basicsearch($r,$ENV{'form.basicexp'});   return &basicsearch($r,\%ENV);
     }      }
     elsif ($ENV{'form.advancedsubmit'} eq 'SEARCH') {      elsif ($ENV{'form.advancedsubmit'} eq 'SEARCH') {
  return &advancedsearch($r,\%ENV);   return &advancedsearch($r,\%ENV);
Line 424  sub advancedsearch { Line 424  sub advancedsearch {
     my ($r,$envhash)=@_;      my ($r,$envhash)=@_;
     my %ENV=%{$envhash};      my %ENV=%{$envhash};
   
       my $fillflag=0;
       for my $field ('title','author','subject','keywords','url','version',
      'notes','abstract','mime','language','owner',
      'custommetadata') {
    if (&filled($ENV{"form.$field"})) {
       $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  # --------------------------------------------------- Performing a basic search
 sub basicsearch {  sub basicsearch {
     my ($r,$expression)=@_;      my ($r,$envhash)=@_;
       my %ENV=%{$envhash};
   
       unless (&filled($ENV{'form.basicexp'})) {
    &output_blank_field_error($r);
    return OK;
       }
   
       my $query='';
       my $concatarg=join(',"    ",',
          ('title', 'author', 'subject', 'notes', 'abstract'));
   
     my $query=$expression;      $query="select * from metadata where concat($concatarg) like '\%$ENV{'form.basicexp'}\%'";
     $query="select * from metadata where concat(title,\"    \",author) like '\%$expression\%'";  
     my $reply=&Apache::lonnet::metadata_query($query);      my $reply=&Apache::lonnet::metadata_query($query);
     &output_results($reply);      &output_results($r,$envhash,$reply);
     return OK;      return OK;
 }  }
   
   sub output_blank_field_error {
       my ($r)=@_;
       # make query information persistent to allow for subsequent revision
       my $persistent='';
       map {
    if (/^form\./ && !/submit/) {
       my $name=$_;
       my $key=$name;
       $name=~s/^form\.//;
       $persistent.=<<END;
   <INPUT TYPE='hidden' NAME='$name' VALUE='$ENV{$key}'>
   END
           }
       } (keys %ENV);
   
       $r->print(<<BEGINNING);
   <html>
   <head>
   <title>The LearningOnline Network with CAPA</title>
   BEGINNING
       $r->print(<<RESULTS);
   </head>
   <body bgcolor="#ffffff">
   <img align=right src=/adm/lonIcons/lonlogos.gif>
   <h1>Search Catalog</h1>
   <form method="post" action="/adm/searchcat">
   $persistent
   <input type='button' value='Revise search request'
   onClick='this.form.submit();'>
   <input type='button' value='CLOSE'
   onClick='self.close();'>
   <hr>
   <h3>Helpful Message</h3>
   <p>
   Incorrect search query due to blank entry fields.
   You need to fill in the relevant
   fields on the search page in order for a query to be
   processed.
   </p>
   </body>
   </html>
   RESULTS
   }
   
 # ----------------------------- format and output results based on a reply list  # ----------------------------- format and output results based on a reply list
 sub output_results {  sub output_results {
     my (@replylist)=@_;      my ($r,$envhash,@replylist)=@_;
       my %ENV=%{$envhash};
     foreach my $reply (@replylist) {      foreach my $reply (@replylist) {
   
  my @results;   my @results;
Line 481  onClick="javascript:select_data('$title' Line 569  onClick="javascript:select_data('$title'
 <br>  <br>
 END  END
             $compiledresult.=<<END;              $compiledresult.=<<END;
 <b>URL: </b> <A HREF="$ENV{'HTTP_HOST'}/$url" TARGET='search_preview'>$url</A>  <b>URL: </b> <A HREF="http://$ENV{'HTTP_HOST'}$url" TARGET='search_preview'>$url</A>
 <br>  <br>
 <b>Title:</b> $title<br>  <b>Title:</b> $title<br>
 <b>Author(s):</b> $author<br>  <b>Author(s):</b> $author<br>
Line 554  $persistent Line 642  $persistent
 <hr>  <hr>
 <h3>Search Query</h3>  <h3>Search Query</h3>
 <p>  <p>
 <b>Basic search:</b> $expression  <b>Basic search:</b> $ENV{'form.basicexp'}
 </p>  </p>
 <h3>Search Results</h3>  <h3>Search Results</h3>
 $compiledresult  $compiledresult

Removed from v.1.18  
changed lines
  Added in v.1.40


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>