--- loncom/interface/lonsearchcat.pm 2002/06/25 15:08:59 1.129 +++ loncom/interface/lonsearchcat.pm 2002/06/26 16:04:13 1.130 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Search Catalog # -# $Id: lonsearchcat.pm,v 1.129 2002/06/25 15:08:59 matthew Exp $ +# $Id: lonsearchcat.pm,v 1.130 2002/06/26 16:04:13 matthew Exp $ # # Copyright Michigan State University Board of Trustees # @@ -223,10 +223,10 @@ END ## if ($ENV{'form.basicsubmit'} eq 'SEARCH') { # Perform basic search and give results - return &basicsearch($r,\%ENV,$hidden); + return &basicsearch($r,$hidden); } elsif ($ENV{'form.advancedsubmit'} eq 'SEARCH') { # Perform advanced search and give results - return &advancedsearch($r,\%ENV,$hidden); + return &advancedsearch($r,$hidden); } elsif ($ENV{'form.reqinterface'} eq 'advanced') { # Output the advanced interface $r->print(&advanced_search_form($closebutton,$hidden)); @@ -290,15 +290,14 @@ ENDDOCUMENT

   $closebutton - - + + + + - +

@@ -328,15 +327,6 @@ sub advanced_search_form{ $closebutton - - -

END @@ -358,9 +348,21 @@ END
Enter terms or quoted phrases separated by search operators such as AND, OR, or NOT.
+
$advanced_buttons $hidden + + ENDHEADER $scrout.=&searchphrasefield('title','title', $ENV{'form.title'}); @@ -693,8 +695,7 @@ Parse advanced search results. ###################################################################### ###################################################################### sub advancedsearch { - my ($r,$envhash,$hidden)=@_; - my %ENV=%{$envhash}; + my ($r,$hidden)=@_; my $fillflag=0; # Clean up fields for safety for my $field ('title','author','subject','keywords','url','version', @@ -796,13 +797,13 @@ sub advancedsearch { $reply=&Apache::lonnet::metadata_query($query, $customquery,$customshow); } - &output_results('Advanced',$r,$envhash,$customquery,$reply,$hidden); + &output_results('Advanced',$r,$customquery,$reply,$hidden); return OK; } elsif ($customquery) { my $reply; # reply hash reference $reply=&Apache::lonnet::metadata_query('', $customquery,$customshow); - &output_results('Advanced',$r,$envhash,$customquery,$reply,$hidden); + &output_results('Advanced',$r,$customquery,$reply,$hidden); return OK; } # should not get to this point @@ -823,8 +824,7 @@ Parse basic search form. ###################################################################### ###################################################################### sub basicsearch { - my ($r,$envhash,$hidden)=@_; - my %ENV=%{$envhash}; + my ($r,$hidden)=@_; # Clean up fields for safety for my $field ('basicexp') { $ENV{"form.$field"}=~s/[^\w\s\(\)\-]//g; @@ -857,7 +857,7 @@ sub basicsearch { # &Apache::lonnet::logthis("metadata query finished:".time); # Output search results - &output_results('Basic',$r,$envhash,$query,$reply,$hidden); + &output_results('Basic',$r,$query,$reply,$hidden); return OK; } @@ -1049,27 +1049,21 @@ contacted, etc.) sub output_results { # &Apache::lonnet::logthis("output_results:".time); my $fnum; # search result counter - my ($mode,$r,$envhash,$query,$replyref,$hidden)=@_; - my %ENV=%{$envhash}; + my ($mode,$r,$query,$replyref,$hidden)=@_; my %rhash=%{$replyref}; my $compiledresult=''; my $timeremain=300; # (seconds) my $elapsetime=0; my $resultflag=0; my $tflag=1; + my $viewselect=$ENV{'form.viewselect'}; # # make query information persistent to allow for subsequent revision my $persistent=&make_persistent(); - # spit out the generic header - $r->print(&search_results_header()); + # spit out the results header + $r->print(&search_results_header($mode)); $r->rflush(); # begin showing the cataloged results - $r->print(< - - -

Search Catalog

-CATALOGBEGIN my $action = "/adm/searchcat"; if ($mode eq 'Basic') { $action .= "?reqinterface=basic"; @@ -1086,19 +1080,8 @@ $importbutton $closebutton $persistent
-

Search Query

CATALOGCONTROLS # - # Remind them what they searched for - # - if ($mode eq 'Basic') { - $r->print('

Basic search: '.$ENV{'form.basicexp'}.'

'); - } elsif ($mode eq 'Advanced') { - $r->print('

Advanced search '.$query.'

'); - } - $r->print('

Search Results

'); - $r->rflush(); - # # make the pop-up window for status # $r->print(&make_popwin(%rhash)); @@ -1202,9 +1185,6 @@ CATALOGCONTROLS $Fields{'extrashow'}=~s/\<\!\-\- $field \-\-\>/ $value/g; } } - if ($compiledresult or $servercount!=$servernum) { - $compiledresult.="
"; - } $compiledresult.="\n

\n"; if ($ENV{'form.catalogmode'} eq 'interactive') { my $titleesc=$Fields{'title'}; @@ -1231,13 +1211,6 @@ END # $fnum++; } - my $viewselect; - if ($mode eq 'Basic') { - $viewselect=$ENV{'form.basicviewselect'}; - } - elsif ($mode eq 'Advanced') { - $viewselect=$ENV{'form.advancedviewselect'}; - } if ($viewselect eq 'Detailed Citation View') { $compiledresult.=&detailed_citation_view (%Fields, hostname => $rkey ); @@ -1254,6 +1227,9 @@ END $compiledresult.=&xml_sgml_view (%Fields, hostname => $rkey ); } + if ($compiledresult or $servercount!=$servernum) { + $compiledresult.="


"; + } } untie %hash; } @@ -1402,10 +1378,18 @@ sub handle_custom_fields { =item &search_results_header -Output the proper javascript code to deal with different calling modes. +Output the proper html headers and javascript code to deal with different +calling modes. + +Takes most inputs directly from %ENV, except $mode. + +=over 4 + +=item $mode is either (at this writing) 'Basic' or 'Advanced' + +=back -Takes inputs directly from from %ENV. The following environment variables -are checked: +The following environment variables are checked: =over 4 @@ -1428,12 +1412,20 @@ Checked for existance & 'edit' mode. ###################################################################### ###################################################################### sub search_results_header { + my ($mode) = @_; + $mode = lc($mode); + my $title; + if ($mode eq 'advanced') { + $title = "Advanced Search Results"; + } elsif ($mode eq 'basic') { + $title = "Basic Search Results"; + } my $result = ''; # output beginning of search page $result.=< -The LearningOnline Network with CAPA +$title BEGINNING # conditional output of script functions dependent on the mode in # which the search was invoked @@ -1516,6 +1508,12 @@ SCRIPT } SCRIPT + $result.=< + + +

$title

+END return $result; } @@ -1639,30 +1637,17 @@ extra custom metadata to show. sub detailed_citation_view { my %values = @_; my $result=<$values{'owner'}, last revised $values{'lastrevisiondate'}

$values{'title'}

-

$values{'author'}

-

-Subject: $values{'subject'}
-Keyword(s): $values{'keywords'}
-Notes: $values{'notes'}
-MIME Type: -END - $result.=&Apache::loncommon::filedescription($values{'mime'}); - $result.=< -Language: -END - $result.=&Apache::loncommon::languagedescription($values{'lang'}); - $result.=< -Copyright/Distribution: -END - $result.=&Apache::loncommon::copyrightdescription($values{'copyright'}); - $result.=< +$values{'author'}, $values{'owner'}
+ +Subject: $values{'subject'}
+Keyword(s): $values{'keywords'}
+Notes: $values{'notes'}
+MIME Type: $values{'mimetag'}
+Language: $values{'language'}
+Copyright/Distribution: $values{'cprtag'}

$values{'extrashow'}

VIEW: + + + +