From 6207235c786b56148cec2f77ff9073fa25135170 Mon Sep 17 00:00:00 2001 From: Magnus Enger Date: Mon, 5 Mar 2012 13:36:43 +0100 Subject: [PATCH] Bug 7092 - Complete-subfield searches TraceCompleteSubfields syspref not working correctly Content-Type: text/plain; charset="UTF-8" This patch adds a syspref TracingQuotes for toggling between using "" and {} for quoting in subject tracings. With normal Zebra indexing, "" must be used. With ICU Zebra indexing, {} must be used. This syspref interacts with TraceCompleteSubfields and TraceSubjectSubdivisions. To test: - marcflavour = MARC21 - make sure you have a record with a "complex subject", like "Internet -- Law and legislation" Toggle TracingQuotes, TraceCompleteSubfields and TraceSubjectSubdivisions and check that you get the expected results for the clickable links in the OPAC *and* intranet detail views: TraceCompleteSubfields = Don't force TraceSubjectSubdivisions = Don't include TracingQuotes = quotes opac-search.pl?q=su:"Internet" TracingQuotes = curlybrace opac-search.pl?q=su:{Internet} TraceCompleteSubfields = Force TraceSubjectSubdivisions = Don't include TracingQuotes = quotes opac-search.pl?q=su,complete-subfield:"Internet" TracingQuotes = curlybrace opac-search.pl?q=su,complete-subfield:{Internet} TraceCompleteSubfields = Don't force TraceSubjectSubdivisions = Include TracingQuotes = quotes opac-search.pl?q=(su:"Internet") and (su:"Law and legislation.") TracingQuotes = curlybrace opac-search.pl?q=(su:{Internet}) and (su:{Law and legislation.}) TraceCompleteSubfields = Force TraceSubjectSubdivisions = Include TracingQuotes = quotes opac-search.pl?q=(su,complete-subfield:"Internet") and (su,complete-subfield:"Law and legislation.") TracingQuotes = curlybrace opac-search.pl?q=(su,complete-subfield:{Internet}) and (su,complete-subfield:{Law and legislation.}) Check that clicking on the generated links gives the expected search results, bot with normal and ICU indexing. (I have actually not tested this with ICU, so doing that before signing off is crucial.) --- C4/XSLT.pm | 2 +- installer/data/mysql/sysprefs.sql | 1 + installer/data/mysql/updatedatabase.pl | 7 +++++++ .../en/modules/admin/preferences/searching.pref | 8 ++++++++ .../prog/en/xslt/MARC21slim2intranetDetail.xsl | 18 +++++++++++++++--- .../prog/en/xslt/MARC21slim2OPACDetail.xsl | 18 +++++++++++++++--- 6 files changed, 47 insertions(+), 7 deletions(-) diff --git a/C4/XSLT.pm b/C4/XSLT.pm index 06dfaf4..8da82f3 100644 --- a/C4/XSLT.pm +++ b/C4/XSLT.pm @@ -131,7 +131,7 @@ sub XSLTParse4Display { my $sysxml = "\n"; foreach my $syspref ( qw/ hidelostitems OPACURLOpenInNewWindow DisplayOPACiconsXSLT URLLinkText viewISBD - OPACBaseURL TraceCompleteSubfields + OPACBaseURL TraceCompleteSubfields TracingQuotes UseAuthoritiesForTracings TraceSubjectSubdivisions Display856uAsImage OPACDisplay856uAsImage UseControlNumber diff --git a/installer/data/mysql/sysprefs.sql b/installer/data/mysql/sysprefs.sql index d16ff81..1e40dd6 100644 --- a/installer/data/mysql/sysprefs.sql +++ b/installer/data/mysql/sysprefs.sql @@ -315,6 +315,7 @@ INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES ( INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('OpacFavicon','','Enter a complete URL to an image to replace the default Koha favicon on the OPAC','','free'); INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('IntranetFavicon','','Enter a complete URL to an image to replace the default Koha favicon on the Staff client','','free'); INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES ('TraceSubjectSubdivisions', '0', 'Create searches on all subdivisions for subject tracings.','1','YesNo'); +INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES ('TracingQuotes', 'quote', 'Quote character to use when tracing subjects.','quote|curlybrace','Choice'); INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('StaffAuthorisedValueImages','1','',NULL,'YesNo'); INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('OPACDisplay856uAsImage','OFF','Display the URI in the 856u field as an image, the corresponding OPACXSLT option must be on','OFF|Details|Results|Both','Choice'); INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('Display856uAsImage','OFF','Display the URI in the 856u field as an image, the corresponding Staff Client XSLT option must be on','OFF|Details|Results|Both','Choice'); diff --git a/installer/data/mysql/updatedatabase.pl b/installer/data/mysql/updatedatabase.pl index b844560..866dff3 100755 --- a/installer/data/mysql/updatedatabase.pl +++ b/installer/data/mysql/updatedatabase.pl @@ -4892,6 +4892,13 @@ if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) { SetVersion($DBversion); } +$DBversion = "3.07.00.XXX"; +if (C4::Context->preference("Version") < TransformToNum($DBversion)) { + $dbh->do("INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('TracingQuotes ','curlybrace','Quote character to use when tracing subjects.','quote|curlybrace','Choice')"); + print "Upgrade to $DBversion done (Add syspref to control the quoting characters used in subject tracings)\n"; + SetVersion ($DBversion); +} + =head1 FUNCTIONS =head2 DropAllForeignKeys($table) diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/searching.pref b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/searching.pref index 12075ec..aeeec00 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/searching.pref +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/searching.pref @@ -69,6 +69,14 @@ Searching: yes: Include no: "Don't include" - subdivisions for searches generated by clicking on subject tracings. + - + - Use + - pref: TracingQuotes + default: quote + choices: + quote: quotes + curlybrace: curly braces + - 'to group subjects together. Set this to curly braces if you are using Zebra with ICU indexing.' Search Form: - - Show checkboxes to search by diff --git a/koha-tmpl/intranet-tmpl/prog/en/xslt/MARC21slim2intranetDetail.xsl b/koha-tmpl/intranet-tmpl/prog/en/xslt/MARC21slim2intranetDetail.xsl index a00e3c2..1502d29 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/xslt/MARC21slim2intranetDetail.xsl +++ b/koha-tmpl/intranet-tmpl/prog/en/xslt/MARC21slim2intranetDetail.xsl @@ -26,6 +26,18 @@ + + + { + " + + + + + } + " + + @@ -462,13 +474,13 @@ /cgi-bin/koha/catalogue/search.pl?q= abcdfgklmnopqrstvxyz and - (su:{ - }) + (su: + ) - /cgi-bin/koha/catalogue/search.pl?q=su:{} + /cgi-bin/koha/catalogue/search.pl?q=su: diff --git a/koha-tmpl/opac-tmpl/prog/en/xslt/MARC21slim2OPACDetail.xsl b/koha-tmpl/opac-tmpl/prog/en/xslt/MARC21slim2OPACDetail.xsl index 13812f0..f756519 100644 --- a/koha-tmpl/opac-tmpl/prog/en/xslt/MARC21slim2OPACDetail.xsl +++ b/koha-tmpl/opac-tmpl/prog/en/xslt/MARC21slim2OPACDetail.xsl @@ -27,6 +27,18 @@ + + + { + " + + + + + } + " + + @@ -474,13 +486,13 @@ /cgi-bin/koha/opac-search.pl?q= abcdfgklmnopqrstvxyz and - (su:{ - }) + (su: + ) - /cgi-bin/koha/opac-search.pl?q=su:{} + /cgi-bin/koha/opac-search.pl?q=su: -- 1.7.2.5