Bug 10542: Fix QueryParser with OpacSupression
authorMartin Renvoize <martin.renvoize@ptfs-europe.com>
Wed, 12 Mar 2014 17:43:20 +0000 (17:43 +0000)
committerTomas Cohen Arazi <tomascohen@gmail.com>
Mon, 11 Aug 2014 14:39:17 +0000 (11:39 -0300)
OpacSupressions manipulates the query string after the buildQuery
call and so breaks with queryParser enabled.  This patch adds
checks for queryParser and manipulates the query before passing it
to buildQuery if it is enabled, but leaves the post buildQuery
manipultation when queryParser is disabled

Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
Signed-off-by: Bernardo Gonzalez Kriegel <bgkriegel@gmail.com>
Adding a sing after test

Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
opac/opac-search.pl

index 3b37b43..7edaf6d 100755 (executable)
@@ -481,11 +481,19 @@ if (C4::Context->preference('OpacSuppression')) {
         my $IPAddress = $ENV{'REMOTE_ADDR'};
         my $IPRange = C4::Context->preference('OpacSuppressionByIPRange');
         if ($IPAddress !~ /^$IPRange/)  {
-            $query = "($query) not Suppress=1";
+            if ( $query_type eq 'pqf' ) {
+                $query = "($query) && -(suppress:1)";
+            } else {
+                $query = "($query) not Suppress=1";
+            }
         }
     }
     else {
-        $query = "($query) not Suppress=1";
+        if ( $query_type eq 'pqf' ) {
+            $query = "($query) && -(suppress:1)";
+        } else {
+            $query = "($query) not Suppress=1";
+        }
     }
 }