version 1.25, 2001/03/15 19:23:10
|
version 1.41, 2001/03/19 16:45:38
|
Line 3
|
Line 3
|
# |
# |
# 03/08/2001 Scott Harrison |
# 03/08/2001 Scott Harrison |
# |
# |
|
# Functions |
|
# |
|
# handler(server reference) : interacts with the Apache server layer |
|
# (for /adm/searchcat URLs) |
|
# simpletextfield(name,value) : returns HTML formatted string for simple text |
|
# field |
|
# simplecheckbox(name,value) : returns HTML formatted string for simple |
|
# checkbox |
|
# searchphrasefield(title,name,value) : returns HTML formatted string for |
|
# a search expression phrase field |
|
# dateboxes(name, defaultmonth, defaultday, defaultyear) : returns HTML |
|
# formatted string |
|
# for a calendar date |
|
# selectbox(title,name,value,%HASH=options) : returns HTML formatted string for |
|
# a selection box field |
|
# advancedsearch() : |
|
# filled(field) : determines whether a given field has been filled |
|
# basicsearch() : |
|
# output_blank_field_error() : outputs a message saying that more fields need |
|
# to be filled in |
|
# output_results() : outputs results from search |
|
# build_SQL_query() : builds a SQL query string from a logical expression |
|
# with AND/OR keywords |
|
|
package Apache::lonsearchcat; |
package Apache::lonsearchcat; |
|
|
use strict; |
use strict; |
Line 10 use Apache::Constants qw(:common);
|
Line 34 use Apache::Constants qw(:common);
|
use Apache::lonnet(); |
use Apache::lonnet(); |
use Apache::File(); |
use Apache::File(); |
use CGI qw(:standard); |
use CGI qw(:standard); |
|
use Text::Query; |
|
|
my %language; |
my %language; |
my $scrout; |
my $scrout; |
Line 232 ENDDOCUMENT
|
Line 257 ENDDOCUMENT
|
|
|
# --------------------------------------------------------- Various form fields |
# --------------------------------------------------------- Various form fields |
|
|
sub textfield { |
|
my ($title,$name,$value)=@_; |
|
return "\n<p><b>$title:</b><br>". |
|
'<input type=text name="'.$name.'" size=80 value="'.$value.'">'; |
|
} |
|
|
|
sub simpletextfield { |
sub simpletextfield { |
my ($name,$value)=@_; |
my ($name,$value)=@_; |
return '<input type=text name="'.$name.'" size=20 value="'.$value.'">'; |
return '<input type=text name="'.$name.'" size=20 value="'.$value.'">'; |
Line 424 sub advancedsearch {
|
Line 443 sub advancedsearch {
|
my ($r,$envhash)=@_; |
my ($r,$envhash)=@_; |
my %ENV=%{$envhash}; |
my %ENV=%{$envhash}; |
|
|
$r->print(<<END); |
my $fillflag=0; |
Advanced searching is not yet implemented. |
for my $field ('title','author','subject','keywords','url','version', |
END |
'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; |
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,$envhash)=@_; |
my ($r,$envhash)=@_; |
my %ENV=%{$envhash}; |
my %ENV=%{$envhash}; |
|
|
unless (length($ENV{'form.basicexp'})) { |
unless (&filled($ENV{'form.basicexp'})) { |
&output_blank_field_error($r); |
&output_blank_field_error($r); |
return OK; |
return OK; |
} |
} |
|
|
my $query=$ENV{'form.basicexp'}; |
my $query=''; |
$query="select * from metadata where concat(title,\" \",author) like '\%$ENV{'form.basicexp'}\%'"; |
my $concatarg=join('," ",', |
|
('title', 'author', 'subject', 'notes', 'abstract')); |
|
|
|
$query="select * from metadata where concat($concatarg) like '\%$ENV{'form.basicexp'}\%'"; |
my $reply=&Apache::lonnet::metadata_query($query); |
my $reply=&Apache::lonnet::metadata_query($query); |
&output_results($r,$envhash,$reply); |
&output_results($r,$envhash,$reply); |
return OK; |
return OK; |
Line 619 RESULTS
|
Line 671 RESULTS
|
} |
} |
} |
} |
|
|
|
# ------------------------------------------------------------- build_SQL_query |
|
sub build_SQL_query { |
|
|
|
} |
|
|
1; |
1; |
__END__ |
__END__ |