File:  [LON-CAPA] / loncom / metadata_database / Attic / lonsql.pm
Revision 1.4: download - view: text, annotated - select for diffs
Tue Feb 20 16:48:48 2001 UTC (23 years, 10 months ago) by harris41
Branches: MAIN
CVS tags: HEAD
the web interface is done for now, at least to
begin testing information passed through the
lonnet layer -Scott

# The LearningOnline Network with CAPA
# Metadata Database Handler
#
# 02/20/2001 Scott Harrison

package Apache::lonsql;

use strict;
use Opcode;
use Apache::lonnet;
use Apache::Constants qw(:common :http);

use CGI;

# ================================================================ Main handler
#
# Interactive call to screen
#
#

sub handler {
    my $r=shift;

    if ($r->header_only) {
      $r->content_type('text/html');
      $r->send_http_header;
      return OK;
    }

# ------------------------------------------------------------------- Open page

    my $query=new CGI;

    my $searchquery;
    my $searchresults;
    my @regexps;
    my $logic;
    my $logic_operator;

    if ($query->{'SUBMIT'}) {
	$logic_operator=$query->{'logic'}->[0];
	$searchquery="<BR>Your search was:\n";
	$searchquery.="<BR><STRONG>$_</STRONG>: " . $query->{$_}->[0] . "\n" for ('title','author','subject','notes','abstract','mime','language','creationdate','lastrevisiondate','owner','copyright');
	for ('title','author','subject','notes','abstract','mime','language','creationdate','lastrevisiondate','owner','copyright') {
	    push @regexps, ($_ . " regexp '" . $query->{$_}->[0] . "'") if $query->{$_}->[0];
	}
        $logic="where " . join(" $logic_operator ",@regexps) if @regexps;
    }
    my $sqlcommand="SELECT * FROM metadata $logic";
    $searchquery.="<P><STRONG>SQL command:</STRONG> $sqlcommand</P>\n";

    $r->content_type('text/html');
    $r->header_out('Cache-control','no-cache');
    $r->header_out('Pragma','no-cache');
    $r->send_http_header;
    my $output=<<END;

<P>
<H1>MySQL search engine</H1>
<FORM METHOD="GET" ACTION="/adm/sqltest">
<TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0>
<TR><TD><STRONG>title</STRONG></TD>
<TD><INPUT TYPE="TEXT" NAME="title"></TD>
<TR><TD><STRONG>author</STRONG></TD>
<TD><INPUT TYPE="TEXT" NAME="author"></TD>
<TR><TD><STRONG>subject</STRONG></TD>
<TD><INPUT TYPE="TEXT" NAME="subject"></TD>
<TR><TD><STRONG>notes</STRONG></TD>
<TD><INPUT TYPE="TEXT" NAME="notes"></TD>
<TR><TD><STRONG>abstract</STRONG></TD>
<TD><INPUT TYPE="TEXT" NAME="abstract"></TD>
<TR><TD><STRONG>mime</STRONG></TD>
<TD><INPUT TYPE="TEXT" NAME="mime"></TD>
<TR><TD><STRONG>language</STRONG></TD>
<TD><INPUT TYPE="TEXT" NAME="language"></TD>
<TR><TD><STRONG>creationdate</STRONG></TD>
<TD><INPUT TYPE="TEXT" NAME="creationdate"></TD>
<TR><TD><STRONG>lastrevisiondate</STRONG></TD>
<TD><INPUT TYPE="TEXT" NAME="lastrevisiondate"></TD>
<TR><TD><STRONG>owner</STRONG></TD>
<TD><INPUT TYPE="TEXT" NAME="owner"></TD>
<TR><TD><STRONG>copyright</STRONG></TD>
<TD><INPUT TYPE="TEXT" NAME="copyright"></TD>
</TR>
</TABLE>
<SELECT NAME="logic">
<OPTION SELECTED>and</OPTION>
<OPTION>or</OPTION>
</SELECT>
<INPUT TYPE="SUBMIT" NAME="SUBMIT" VALUE="SEARCH MySQL DATABASE">
</P>
<P>
$searchquery
</P>
<P>
$searchresults
</P>
END
    $r->print($output);
    return OK;
}



1;

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