@@ -, +, @@ --- opac/opac-search.pl | 37 ++++++++++++++++++++++++++++--------- 1 file changed, 28 insertions(+), 9 deletions(-) --- a/opac/opac-search.pl +++ a/opac/opac-search.pl @@ -448,6 +448,23 @@ my ($error,$query,$simple_query,$query_cgi,$query_desc,$limit,$limit_cgi,$limit_ my @results; +# Add OPAC suppression - requires at least one item indexed with Suppress +if (C4::Context->preference('UseQueryParser')) { + if (C4::Context->preference('OpacSuppression')) { + # OPAC suppression by IP address + if (C4::Context->preference('OpacSuppressionByIPRange')) { + my $IPAddress = $ENV{'REMOTE_ADDR'}; + my $IPRange = C4::Context->preference('OpacSuppressionByIPRange'); + if ($IPAddress !~ /^$IPRange/) { + $query = "($query) && -(suppress:1)"; + } + } + else { + $query = "($query) && -(suppress:1)"; + } + } +} + ## I. BUILD THE QUERY ( $error,$query,$simple_query,$query_cgi,$query_desc,$limit,$limit_cgi,$limit_desc,$stopwords_removed,$query_type) = buildQuery(\@operators,\@operands,\@indexes,\@limits,\@sort_by, 0, $lang); @@ -475,18 +492,20 @@ my @limit_inputs = $limit_cgi ? _input_cgi_parse($limit_cgi) : (); #} # # add OPAC suppression - requires at least one item indexed with Suppress -if (C4::Context->preference('OpacSuppression')) { - # OPAC suppression by IP address - if (C4::Context->preference('OpacSuppressionByIPRange')) { - my $IPAddress = $ENV{'REMOTE_ADDR'}; - my $IPRange = C4::Context->preference('OpacSuppressionByIPRange'); - if ($IPAddress !~ /^$IPRange/) { +unless ( C4::Context->preference('UseQueryParser') ) { + if (C4::Context->preference('OpacSuppression')) { + # OPAC suppression by IP address + if (C4::Context->preference('OpacSuppressionByIPRange')) { + my $IPAddress = $ENV{'REMOTE_ADDR'}; + my $IPRange = C4::Context->preference('OpacSuppressionByIPRange'); + if ($IPAddress !~ /^$IPRange/) { + $query = "($query) not Suppress=1"; + } + } + else { $query = "($query) not Suppress=1"; } } - else { - $query = "($query) not Suppress=1"; - } } $template->param ( LIMIT_INPUTS => \@limit_inputs ); --