Backport r12717 from trunk: prevent apostrophes in search terms from breaking SlimPAC
authordbs <dbs@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Tue, 31 Mar 2009 17:29:05 +0000 (17:29 +0000)
committerdbs <dbs@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Tue, 31 Mar 2009 17:29:05 +0000 (17:29 +0000)
git-svn-id: svn://svn.open-ils.org/ILS/branches/rel_1_4_0@12737 dcc99617-32d9-48b4-a31d-7c20da2025e4

Open-ILS/src/perlmods/OpenILS/WWW/SuperCat.pm

index d98500f..5819c17 100644 (file)
@@ -1023,8 +1023,12 @@ sub opensearch_feed {
                )->gather(1);
        }
 
-    my $recs = $search->request(
-        'open-ils.search.biblio.multiclass.query' => {
+       # Apostrophes break search and get indexed as spaces anyway
+       my $safe_terms = $terms;
+       $safe_terms =~ s{'}{ }go;
+
+       my $recs = $search->request(
+               'open-ils.search.biblio.multiclass.query' => {
                        org_unit        => $org_unit->[0]->id,
                        offset          => $offset,
                        limit           => $limit,
@@ -1032,7 +1036,7 @@ sub opensearch_feed {
                        sort_dir        => $sortdir,
             default_class => $class,
                        ($lang ?    ( 'language' => $lang    ) : ()),
-               } => $terms => 1
+               } => $safe_terms => 1
        )->gather(1);
 
        $log->debug("Hits for [$terms]: $recs->{count}");
@@ -1050,7 +1054,7 @@ sub opensearch_feed {
 
        $feed->root($root);
        $feed->lib($org);
-       $feed->search($terms);
+       $feed->search($safe_terms);
        $feed->class($class);
 
        $feed->title("Search results for [$terms] at ".$org_unit->[0]->name);