ffzg/recall_notices.pl: added --interval and --dedup
[koha.git] / opac / opac-search.pl
index dc1d410..e0d3dd6 100755 (executable)
@@ -51,13 +51,14 @@ use C4::Koha;
 use C4::Tags qw(get_tags);
 use C4::SocialData;
 use C4::External::OverDrive;
-use C4::Borrowers qw(GetMember);
 
+use Koha::Libraries;
 use Koha::ItemTypes;
 use Koha::Ratings;
 use Koha::Virtualshelves;
 use Koha::Library::Groups;
 use Koha::Patrons;
+use Koha::SearchFields;
 
 use POSIX qw(ceil floor strftime);
 use URI::Escape;
@@ -125,6 +126,7 @@ else {
     authnotrequired => ( C4::Context->preference("OpacPublic") ? 1 : 0 ),
     }
 );
+my $patron = Koha::Patrons->find( $borrowernumber );
 
 my $lang = C4::Languages::getlanguage($cgi);
 
@@ -327,7 +329,7 @@ if ( $template_type && $template_type eq 'advsearch' ) {
     # shouldn't appear on the first one, scan indexes should, adding a new
     # box should only appear on the last, etc.
     my @search_boxes_array;
-    my $search_boxes_count = 3; # begin whith 3 boxes
+    my $search_boxes_count = 3; # begin with 3 boxes
     $template->param( search_boxes_count => $search_boxes_count );
 
     if ($cgi->cookie("num_paragraph")){
@@ -547,18 +549,19 @@ if (C4::Context->preference('OpacSuppression')) {
     }
 }
 
+my $build_params = {
+    expanded_facet => $expanded_facet,
+    suppress => $suppress
+};
+
+unless ( $cgi->param('advsearch') ) {
+    $build_params->{weighted_fields} = 1;
+}
+
 ## I. BUILD THE QUERY
 ( $error,$query,$simple_query,$query_cgi,$query_desc,$limit,$limit_cgi,$limit_desc,$query_type)
-  = $builder->build_query_compat(
-    \@operators,
-    \@operands,
-    \@indexes,
-    \@limits,
-    \@sort_by,
-    0,
-    $lang,
-    { expanded_facet => $expanded_facet, suppress => $suppress }
-    );
+  = $builder->build_query_compat( \@operators, \@operands,
+    \@indexes, \@limits, \@sort_by, 0, $lang, $build_params);
 
 sub _input_cgi_parse {
     my @elements;
@@ -596,6 +599,8 @@ if ($tag) {
     $DEBUG and printf STDERR "taglist (%s biblionumber)\nmarclist (%s records)\n", scalar(@$taglist), scalar(@marclist);
     $results_hashref->{biblioserver}->{RECORDS} = \@marclist;
     # FIXME: tag search and standard search should work together, not exclusively
+    # FIXME: Because search and standard search don't work together OpacHiddenItems
+    #        displays search results which should be hidden.
     # FIXME: No facets for tags search.
 } elsif ($build_grouped_results) {
     eval {
@@ -625,9 +630,7 @@ my @sup_results_array;
 my $search_context = {};
 $search_context->{'interface'} = 'opac';
 if (C4::Context->preference('OpacHiddenItemsExceptions')){
-    # we need to fetch the borrower info here, so we can pass the category
-    my $borrower = GetMember( borrowernumber => $borrowernumber );
-    $search_context->{'category'} = $borrower->{'categorycode'};
+    $search_context->{'category'} = $patron ? $patron->categorycode : q{};
 }
 
 for (my $i=0;$i<@servers;$i++) {
@@ -653,7 +656,6 @@ for (my $i=0;$i<@servers;$i++) {
 
         my $art_req_itypes;
         if( C4::Context->preference('ArticleRequests') ) {
-            my $patron = $borrowernumber ? Koha::Patrons->find( $borrowernumber ) : undef;
             $art_req_itypes = Koha::IssuingRules->guess_article_requestable_itemtypes({ $patron ? ( categorycode => $patron->categorycode ) : () });
         }