Bug 24103: Add option to dump search query to templates
authorNick Clemens <nick@bywatersolutions.com>
Mon, 25 Nov 2019 14:58:00 +0000 (14:58 +0000)
committerMartin Renvoize <martin.renvoize@ptfs-europe.com>
Wed, 19 Feb 2020 15:58:41 +0000 (15:58 +0000)
To test:
1 - Apply patch, update database
2 - Note new syspref 'DumpSearchQueryTemplate'
3 - Leave it off
4 - Enable DumpTemplateVariablesOpac and Staff
5 - Search on staff and opac
6 - View the source
7 - Search for 'search_query' - you shouldn't find it
8 - Enable the new pref
9 - Repeat, but you should find the query
10 - Test staff/opac search and advanced search, cataloguing search, authority search, authfinder search, adding to a basket form a new biblio
11 - All should work and show the query
12 - This will work under both ES and Zebra

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>

authorities/auth_finder.pl
authorities/authorities-home.pl
catalogue/search.pl
cataloguing/addbooks.pl
installer/data/mysql/atomicupdate/Bug_24103_add_DumpSearchQueryTemplate_syspref.perl [new file with mode: 0644]
installer/data/mysql/sysprefs.sql
koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/logs.pref
opac/opac-search.pl

index f017622..208f076 100755 (executable)
@@ -77,6 +77,7 @@ if ( $op eq "do_search" ) {
         \@marclist, \@and_or, \@excluding, \@operator,
         \@value, $authtypecode, $orderby
     );
+    $template->param( search_query => $search_query ) if C4::Context->preference('DumpSearchQueryTemplate');
     my $offset = $startfrom * $resultsperpage;
     my ( $results, $total ) =
         $searcher->search_auth_compat( $search_query, $offset,
index 29ee617..76748aa 100755 (executable)
@@ -111,6 +111,7 @@ if ( $op eq "do_search" ) {
         }
     );
 
+    $template->param( search_query => $search_query ) if C4::Context->preference('DumpSearchQueryTemplate');
     $template->param(
         csrf_token => Koha::Token->new->generate_csrf({
             session_id => scalar $query->cookie('CGISESSID'),
index 819e93f..6e5d929 100755 (executable)
@@ -493,6 +493,8 @@ my $searcher = Koha::SearchEngine::Search->new(
   = $builder->build_query_compat( \@operators, \@operands, \@indexes, \@limits,
     \@sort_by, $scan, $lang, { weighted_fields => !$cgi->param('advsearch'), whole_record => $whole_record });
 
+$template->param( search_query => $query ) if C4::Context->preference('DumpSearchQueryTemplate');
+
 ## parse the query_cgi string and put it into a form suitable for <input>s
 my @query_inputs;
 my $scan_index_to_use;
index b9ed6ff..f3b2e43 100755 (executable)
@@ -83,6 +83,9 @@ if ($query) {
         ( undef, $builtquery, undef, $query_cgi, undef, undef, undef, undef, undef, undef ) =
           $builder->build_query_compat( undef, \@operands, undef, undef, undef, 0, $lang );
     }
+
+    $template->param( search_query => $builtquery ) if C4::Context->preference('DumpSearchQueryTemplate');
+
     # find results
     my ( $error, $marcresults, $total_hits ) = $searcher->simple_search_compat($builtquery, $results_per_page * ($page - 1), $results_per_page);
 
diff --git a/installer/data/mysql/atomicupdate/Bug_24103_add_DumpSearchQueryTemplate_syspref.perl b/installer/data/mysql/atomicupdate/Bug_24103_add_DumpSearchQueryTemplate_syspref.perl
new file mode 100644 (file)
index 0000000..da30686
--- /dev/null
@@ -0,0 +1,9 @@
+$DBversion = 'XXX'; # will be replaced by the RM
+if( CheckVersion( $DBversion ) ) {
+    $dbh->do(q{
+        INSERT IGNORE INTO `systempreferences` (variable,value,options,explanation,type)
+        VALUES ('DumpSearchQueryTemplate',0,'','Add the search query being passed to the search engine into the template for debugging','YesNo')
+    });
+    SetVersion( $DBversion );
+    print "Upgrade to $DBversion done (Bug XXXXX - add DumpSearchQueryTemplate syspref)\n";
+}
index 54d5305..57ab248 100644 (file)
@@ -160,6 +160,7 @@ INSERT INTO systempreferences ( `variable`, `value`, `options`, `explanation`, `
 ('DisplayLibraryFacets',  'holding',  'home|holding|both',  'Defines which library facets to display.',  'Choice'),
 ('DisplayMultiPlaceHold','1','','Display the ability to place multiple holds or not','YesNo'),
 ('DisplayOPACiconsXSLT','1','','If ON, displays the format, audience, and material type icons in XSLT MARC21 results and detail pages in the OPAC.','YesNo'),
+('DumpSearchQueryTemplate',0,'','Add the search query being passed to the search engine into the template for debugging','YesNo'),
 ('DumpTemplateVarsIntranet',  '0', NULL ,  'If enabled, dump all Template Toolkit variable to a comment in the html source for the staff intranet.',  'YesNo'),
 ('DumpTemplateVarsOpac',  '0', NULL ,  'If enabled, dump all Template Toolkit variable to a comment in the html source for the opac.',  'YesNo'),
 ('EasyAnalyticalRecords','0','','If on, display in the catalogue screens tools to easily setup analytical record relationships','YesNo'),
index b3ca3c2..1703230 100644 (file)
@@ -91,3 +91,9 @@ Logging:
                   on: Do
                   off: "Don't"
             - dump all Template Toolkit variable to a comment in the html source for the OPAC.
+        -
+            - pref: DumpSearchQueryTemplate
+              choices:
+                  on: Do
+                  off: "Don't"
+            - dump search query as a template parameter, requires DumpTemplateVars[interface] to be visible.
index e82dbaf..bde0f89 100755 (executable)
@@ -572,6 +572,8 @@ if (C4::Context->preference('OpacSuppression')) {
     }
 );
 
+$template->param( search_query => $query ) if C4::Context->preference('DumpSearchQueryTemplate');
+
 sub _input_cgi_parse {
     my @elements;
     my $query_cgi = shift or return @elements;