Diff for /loncom/interface/lonsearchcat.pm between versions 1.56 and 1.62

version 1.56, 2001/03/21 03:06:50 version 1.62, 2001/03/21 12:51:15
Line 107  END Line 107  END
     {      {
  my $fh=Apache::File->new($r->dir_config('lonTabDir').'/language.tab');   my $fh=Apache::File->new($r->dir_config('lonTabDir').'/language.tab');
  map {   map {
     $_=~/(\w+)\s+([\w\s\-]+)/;      $_=~/(\w+)\s+([\w\s\-]+)/; chomp;
     $language{$1}=$2;      $language{$1}=$2;
  } <$fh>;   } <$fh>;
     }      }
Line 117  END Line 117  END
     {      {
  my $fh=Apache::File->new($r->dir_config('lonIncludes').'/copyright.tab');   my $fh=Apache::File->new($r->dir_config('lonIncludes').'/copyright.tab');
  map {   map {
     $_=~/(\w+)\s+([\w\s\-]+)/;      $_=~/(\w+)\s+([\w\s\-]+)/; chomp;
     $cprtag{$1}=$2;      $cprtag{$1}=$2;
  } <$fh>;   } <$fh>;
     }      }
Line 127  END Line 127  END
     {      {
  my $fh=Apache::File->new($r->dir_config('lonTabDir').'/filetypes.tab');   my $fh=Apache::File->new($r->dir_config('lonTabDir').'/filetypes.tab');
  map {   map {
     $_=~/(\w+)\s+(\w+)\s+([\w\s\-]+)/;      $_=~/(\w+)\s+(\w+)\s+([\w\s\-]+)/; chomp;
     $mimetag{$1}=".$1 $3";      $mimetag{$1}=".$1 $3";
  } <$fh>;   } <$fh>;
     }      }
Line 494  sub advancedsearch { Line 494  sub advancedsearch {
   
     my @queries;      my @queries;
     # Go through logical expression AND/OR/NOT phrase fields.      # Go through logical expression AND/OR/NOT phrase fields.
     foreach my $field ('title','author','subject','notes','abstract') {  
       foreach my $field ('title','author','subject','notes','abstract','url',
          'keywords','version','owner') {
  if ($ENV{'form.'.$field}) {   if ($ENV{'form.'.$field}) {
     push @queries,&build_SQL_query($field,$ENV{'form.'.$field});      push @queries,&build_SQL_query($field,$ENV{'form.'.$field});
  }   }
     }      }
       if ($ENV{'form.language'} and $ENV{'form.language'} ne 'any') {
    push @queries,"(language like \"\%$ENV{'form.language'}\%\")";
       }
       if ($ENV{'form.mime'} and $ENV{'form.mime'} ne 'any') {
    push @queries,"(mime like \"\%$ENV{'form.mime'}\%\")";
       }
       if ($ENV{'form.copyright'} and $ENV{'form.copyright'} ne 'any') {
    push @queries,"(copyright like \"\%$ENV{'form.copyright'}\%\")";
       }
       my $datequery=&build_date_queries(
    $ENV{'form.creationdatestart_month'},
    $ENV{'form.creationdatestart_day'},
    $ENV{'form.creationdatestart_year'},
    $ENV{'form.creationdateend_month'},
    $ENV{'form.creationdateend_day'},
    $ENV{'form.creationdateend_year'},
    $ENV{'form.lastrevisiondatestart_month'},
    $ENV{'form.lastrevisiondatestart_day'},
    $ENV{'form.lastrevisiondatestart_year'},
    $ENV{'form.lastrevisiondateend_month'},
    $ENV{'form.lastrevisiondateend_day'},
    $ENV{'form.lastrevisiondateend_year'},
    );
       if ($datequery=~/^Incorrect/) {
    &output_date_error($r,$datequery);
    return OK;
       }
       elsif ($datequery) {
    push @queries,$datequery;
       }
     if (@queries) {      if (@queries) {
  $query=join(" and ",@queries);   $query=join(" AND ",@queries);
  $query="select * from metadata where $query";   $query="select * from metadata where $query";
  my $reply=&Apache::lonnet::metadata_query($query);   my $reply=&Apache::lonnet::metadata_query($query);
  &output_results('Advanced',$r,$envhash,$query,$reply);   &output_results('Advanced',$r,$envhash,$query,$reply);
Line 784  sub detailed_citation_view { Line 816  sub detailed_citation_view {
  $notes,$shortabstract,$mime,$lang,   $notes,$shortabstract,$mime,$lang,
  $creationdate,$lastrevisiondate,$owner,$copyright,   $creationdate,$lastrevisiondate,$owner,$copyright,
  $hostname,$httphost)=@_;   $hostname,$httphost)=@_;
     return 'abc';  
     my $result=<<END;      my $result=<<END;
 <i>$owner</i>, last revised $lastrevisiondate  <i>$owner</i>, last revised $lastrevisiondate
 <h3><A HREF="http://$httphost$url" TARGET='search_preview'>$title</A></h3>  <h3><A HREF="http://$httphost$url" TARGET='search_preview'>$title</A></h3>
Line 855  sub xml_sgml_view { Line 886  sub xml_sgml_view {
     my $result=<<END;      my $result=<<END;
 <pre>  <pre>
 &lt;LonCapaResource&gt;  &lt;LonCapaResource&gt;
 &lt;url&gt;http://$httphost$url&lt;/url&gt;  &lt;url&gt;$url&lt;/url&gt;
 &lt;title&gt;$title&lt;/title&gt;  &lt;title&gt;$title&lt;/title&gt;
 &lt;author&gt;$author&lt;/author&gt;  &lt;author&gt;$author&lt;/author&gt;
 &lt;subject&gt;$subject&lt;/subject&gt;  &lt;subject&gt;$subject&lt;/subject&gt;
Line 878  sub xml_sgml_view { Line 909  sub xml_sgml_view {
 &lt;/copyrightInfo&gt;  &lt;/copyrightInfo&gt;
 &lt;repositoryLocation&gt;$hostname&lt;/repositoryLocation&gt;  &lt;repositoryLocation&gt;$hostname&lt;/repositoryLocation&gt;
 &lt;shortabstract&gt;$shortabstract&lt;/shortabstract&gt;  &lt;shortabstract&gt;$shortabstract&lt;/shortabstract&gt;
   &lt;/LonCapaResource&gt;
 </pre>  </pre>
 END  END
     return $result;      return $result;
 }  }
   
   sub build_date_queries {
       my ($cmonth1,$cday1,$cyear1,$cmonth2,$cday2,$cyear2,
    $lmonth1,$lday1,$lyear1,$lmonth2,$lday2,$lyear2)=@_;
       my @queries;
       if ($cmonth1 or $cday1 or $cyear1 or $cmonth2 or $cday2 or $cyear2) {
    unless ($cmonth1 and $cday1 and $cyear1 and
    $cmonth2 and $cday2 and $cyear2) {
       return "Incorrect entry for the creation date.  You must specify ".
      "a starting month, day, and year and an ending month, ".
      "day, and year.";
    }
    my $cnumeric1="$cyear1$cmonth1$cday1";
    $cnumeric1+=0;
    my $cnumeric2="$cyear2$cmonth2$cday2";
    $cnumeric2+=0;
    if ($cnumeric1>$cnumeric2) {
       return "Incorrect entry for the creation date.  The starting ".
      "date must occur before the ending date.";
    }
    my $cquery="(creationdate BETWEEN '$cyear1-$cmonth1-$cday1' AND '".
              "$cyear2-$cmonth2-$cday2 23:59:59')";
    push @queries,$cquery;
       }
       if ($lmonth1 or $lday1 or $lyear1 or $lmonth2 or $lday2 or $lyear2) {
    unless ($lmonth1 and $lday1 and $lyear1 and
    $lmonth2 and $lday2 and $lyear2) {
       return "Incorrect entry for the last revision date.  You must ".
      "specify a starting month, day, and year and an ending ".
      "month, day, and year.";
    }
    my $lnumeric1="$lyear1$lmonth1$lday1";
    $lnumeric1+=0;
    my $lnumeric2="$lyear2$lmonth2$lday2";
    $lnumeric2+=0;
    if ($lnumeric1>$lnumeric2) {
       return "Incorrect entry for the last revision date.  The ".
      "starting date must occur before the ending date.";
    }
    my $lquery="(lastrevisiondate BETWEEN '$lyear1-$lmonth1-$lday1' AND '".
              "$lyear2-$lmonth2-$lday2 23:59:59')";
    push @queries,$lquery;
       }
       if (@queries) {
    return join(" AND ",@queries);
       }
       return '';
   }
   
   sub output_date_error {
       my ($r,$message)=@_;
       # 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();'>
   $closebutton
   <hr>
   <h3>Helpful Message</h3>
   <p>
   $message
   </p>
   </body>
   </html>
   RESULTS
   }
   
 1;  1;
 __END__  __END__

Removed from v.1.56  
changed lines
  Added in v.1.62


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