--- 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)";