File:  [LON-CAPA] / loncom / metadata_database / Attic / searchcat.pm
Revision 1.1: download - view: text, annotated - select for diffs
Thu Mar 8 13:13:42 2001 UTC (23 years, 3 months ago) by harris41
Branches: MAIN
CVS tags: HEAD
the handler for the metadata database/catalog -Scott

    1: # The LearningOnline Network with CAPA
    2: # Metadata Database Handler
    3: #
    4: # 02/20/2001 Scott Harrison
    5: 
    6: package Apache::lonsql;
    7: 
    8: use strict;
    9: use Opcode;
   10: use Apache::lonnet;
   11: use Apache::Constants qw(:common :http);
   12: 
   13: use CGI;
   14: 
   15: # ================================================================ Main handler
   16: #
   17: # Interactive call to screen
   18: #
   19: #
   20: 
   21: sub handler {
   22:     my $r=shift;
   23: 
   24:     if ($r->header_only) {
   25:       $r->content_type('text/html');
   26:       $r->send_http_header;
   27:       return OK;
   28:     }
   29: 
   30: # ------------------------------------------------------------------- Open page
   31: 
   32:     my $query=new CGI;
   33: 
   34:     my $searchquery;
   35:     my $searchresults;
   36:     my @regexps;
   37:     my $logic;
   38:     my $logic_operator;
   39: 
   40:     if ($query->{'SUBMIT'}) {
   41: 	$logic_operator=$query->{'logic'}->[0];
   42: 	$searchquery="<BR>Your search was:\n";
   43: 	$searchquery.="<BR><STRONG>$_</STRONG>: " . $query->{$_}->[0] . "\n" for ('title','author','subject','notes','abstract','mime','language','creationdate','lastrevisiondate','owner','copyright');
   44: 	for ('title','author','subject','notes','abstract','mime','language','creationdate','lastrevisiondate','owner','copyright') {
   45: 	    push @regexps, ($_ . " regexp '" . $query->{$_}->[0] . "'") if $query->{$_}->[0];
   46: 	}
   47:         $logic="where " . join(" $logic_operator ",@regexps) if @regexps;
   48:     }
   49:     my $sqlcommand="SELECT * FROM metadata $logic";
   50:     $searchquery.="<P><STRONG>SQL command:</STRONG> $sqlcommand</P>\n";
   51: 
   52:     $r->content_type('text/html');
   53:     $r->header_out('Cache-control','no-cache');
   54:     $r->header_out('Pragma','no-cache');
   55:     $r->send_http_header;
   56:     my $output=<<END;
   57: 
   58: <P>
   59: <H1>MySQL search engine</H1>
   60: <FORM METHOD="GET" ACTION="/adm/sqltest">
   61: <TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0>
   62: <TR><TD><STRONG>title</STRONG></TD>
   63: <TD><INPUT TYPE="TEXT" NAME="title"></TD>
   64: <TR><TD><STRONG>author</STRONG></TD>
   65: <TD><INPUT TYPE="TEXT" NAME="author"></TD>
   66: <TR><TD><STRONG>subject</STRONG></TD>
   67: <TD><INPUT TYPE="TEXT" NAME="subject"></TD>
   68: <TR><TD><STRONG>notes</STRONG></TD>
   69: <TD><INPUT TYPE="TEXT" NAME="notes"></TD>
   70: <TR><TD><STRONG>abstract</STRONG></TD>
   71: <TD><INPUT TYPE="TEXT" NAME="abstract"></TD>
   72: <TR><TD><STRONG>mime</STRONG></TD>
   73: <TD><INPUT TYPE="TEXT" NAME="mime"></TD>
   74: <TR><TD><STRONG>language</STRONG></TD>
   75: <TD><INPUT TYPE="TEXT" NAME="language"></TD>
   76: <TR><TD><STRONG>creationdate</STRONG></TD>
   77: <TD><INPUT TYPE="TEXT" NAME="creationdate"></TD>
   78: <TR><TD><STRONG>lastrevisiondate</STRONG></TD>
   79: <TD><INPUT TYPE="TEXT" NAME="lastrevisiondate"></TD>
   80: <TR><TD><STRONG>owner</STRONG></TD>
   81: <TD><INPUT TYPE="TEXT" NAME="owner"></TD>
   82: <TR><TD><STRONG>copyright</STRONG></TD>
   83: <TD><INPUT TYPE="TEXT" NAME="copyright"></TD>
   84: </TR>
   85: </TABLE>
   86: <SELECT NAME="logic">
   87: <OPTION SELECTED>and</OPTION>
   88: <OPTION>or</OPTION>
   89: </SELECT>
   90: <INPUT TYPE="SUBMIT" NAME="SUBMIT" VALUE="SEARCH MySQL DATABASE">
   91: </P>
   92: <P>
   93: $searchquery
   94: </P>
   95: <P>
   96: $searchresults
   97: </P>
   98: END
   99:     $r->print($output);
  100:     return OK;
  101: }
  102: 
  103: 
  104: 
  105: 1;

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