--- loncom/interface/lonsearchcat.pm 2001/04/02 21:18:35 1.93
+++ loncom/interface/lonsearchcat.pm 2001/08/16 02:20:01 1.97
@@ -1,10 +1,11 @@
# The LearningOnline Network
# Search Catalog
#
+# YEAR=2001
# 03/08/2001 Scott Harrison
# Scott Harrison: 03/12/2001, 03/13/2001, 03/14/2001, 03/15/2001, 03/19/2001
# Scott Harrison: 03/20/2001, 03/21/2001, 03/22/2001, 03/26/2001, 03/27/2001
-# Scott Harrison: 04/02/2001
+# Scott Harrison: 04/02/2001, 08/15/2001
#
# Functions
#
@@ -182,8 +183,8 @@ END
$scrout.=&searchphrasefield('Limit by URL','url',
$ENV{'form.url'});
- $scrout.=&searchphrasefield('Limit by version','version',
- $ENV{'form.version'});
+# $scrout.=&searchphrasefield('Limit by version','version',
+# $ENV{'form.version'});
$scrout.=&searchphrasefield('Limit by notes','notes',
$ENV{'form.notes'});
@@ -301,9 +302,9 @@ ENDDOCUMENT
$r->print(' ');
$r->print(&simplecheckbox('titleonly',$ENV{'form.titleonly'}));
$r->print('Title only ');
- $r->print(&simplecheckbox('allversions',$ENV{'form.allversions'}));
+# $r->print(&simplecheckbox('allversions',$ENV{'form.allversions'}));
+# Search historic archives
$r->print(<Search historic archives
@@ -658,11 +659,13 @@ sub basicsearch {
my $query='';
my $concatarg=join('," ",',
('title', 'author', 'subject', 'notes', 'abstract'));
- $query='select * from metadata where concat(' . $concatarg . ') like %' .
- $ENV{'form.basicexp'} . '%';
+ $concatarg='title' if $ENV{'form.titleonly'};
+
+ $query=&build_SQL_query('concat('.$concatarg.')',$ENV{'form.'.'basicexp'});
+
# Get reply (either a hash reference to filehandles or bad connection)
- my $reply=&Apache::lonnet::metadata_query($query);
+ my $reply=&Apache::lonnet::metadata_query('select * from metadata where '.$query);
# Output search results
&output_results('Basic',$r,$envhash,$query,$reply);
@@ -728,6 +731,7 @@ BEGINNING
function select_data(title,url) {
changeTitle(title);
changeURL(url);
+ self.close();
}
function changeTitle(val) {
if (opener.inf.document.forms.resinfo.elements.t) {
@@ -991,6 +995,11 @@ sub recursive_SQL_query_build {
if ($key eq 'literal') {
$replacement="($dkey like \"\%$value\%\")";
}
+ elsif ($key eq 'not') {
+ $value=~s/like/not like/;
+# $replacement="($dkey not like $value)";
+ $replacement="$value";
+ }
elsif ($key eq 'and') {
$value=~/(.*[\"|\)]) ([|\(|\^].*)/;
$replacement="($1 AND $2)";