From 6f63ca893f988d19358d41c1ba973c4c38a9bd36 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 This patch adds a syspref UseICU 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 UseICU, TraceCompleteSubfields, and TraceSubjectSubdivisions and check that you get the expected results for the clickable links in the OPAC detail view: TraceCompleteSubfields = Don't force TraceSubjectSubdivisions = Don't include UseICU = Not using opac-search.pl?q=su:"Internet" UseICU = Using opac-search.pl?q=su:{Internet} TraceCompleteSubfields = Force TraceSubjectSubdivisions = Don't include UseICU = Not using opac-search.pl?q=su,complete-subfield:"Internet" UseICU = Using opac-search.pl?q=su,complete-subfield:{Internet} TraceCompleteSubfields = Don't force TraceSubjectSubdivisions = Include UsingICU = Not using opac-search.pl?q=(su:"Internet") and (su:"Law and legislation.") UsingICU = Using opac-search.pl?q=(su:{Internet}) and (su:{Law and legislation.}) TraceCompleteSubfields = Force TraceSubjectSubdivisions = Include UseICU = Not using opac-search.pl?q=(su,complete-subfield:"Internet") and (su,complete-subfield:"Law and legislation.") UseICU = Using 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, but with normal and ICU indexing. (I have actually not tested this with ICU, so doing that before signing off is crucial.) UPDATE 2012-03-16: Changed the name of the syspref from TracingQuotes to UseICU after a suggestion from Paul P., to make it more generally useful. I have used "Using/Not using" instead of "Use/Don't use" in the description of the syspref, to reflect the fact that this syspref will not change how Zebra does its indexing - it's just a way of telling Koha how the indexing is actually done. I have also set UseICU = 1 in updatedatabase.pl, since that will preserve the current behaviour of Koha, but UseICU = 0 in sysprefs.sql, since most new installations will not have ICU activated. Signed-off-by: Jared Camins-Esakov Signed-off-by: Jared Camins-Esakov --- C4/XSLT.pm | 2 +- installer/data/mysql/sysprefs.sql | 1 + installer/data/mysql/updatedatabase.pl | 7 +++++++ .../modules/admin/preferences/searching.pref | 7 +++++++ .../en/xslt/MARC21slim2intranetDetail.xsl | 19 +++++++++++++++---- .../prog/en/xslt/MARC21slim2OPACDetail.xsl | 18 +++++++++++++++--- 6 files changed, 46 insertions(+), 8 deletions(-) diff --git a/C4/XSLT.pm b/C4/XSLT.pm index 06dfaf4a7b..7557efe5a2 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 UseICU UseAuthoritiesForTracings TraceSubjectSubdivisions Display856uAsImage OPACDisplay856uAsImage UseControlNumber diff --git a/installer/data/mysql/sysprefs.sql b/installer/data/mysql/sysprefs.sql index 72771241e7..b6d537f140 100644 --- a/installer/data/mysql/sysprefs.sql +++ b/installer/data/mysql/sysprefs.sql @@ -314,6 +314,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 ('UseICU', '0', 'Tell Koha if ICU indexing is in use for Zebra or not.','1','YesNo'); 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 8831fa275a..933637baf4 100755 --- a/installer/data/mysql/updatedatabase.pl +++ b/installer/data/mysql/updatedatabase.pl @@ -4641,6 +4641,13 @@ if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) { SetVersion($DBversion); } +$DBversion = "3.06.XX.XXX"; +if (C4::Context->preference("Version") < TransformToNum($DBversion)) { + $dbh->do("INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES ('UseICU', '1', 'Tell Koha if ICU indexing is in use for Zebra or not.','1','YesNo')"); + print "Upgrade to $DBversion done (Add syspref to tell Koha if ICU indexing is in use for Zebra or not.)\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 12075ecaab..70eda0a31b 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,13 @@ Searching: yes: Include no: "Don't include" - subdivisions for searches generated by clicking on subject tracings. + - + - pref: UseICU + default: 0 + choices: + yes: Using + no: "Not using" + - 'ICU Zebra indexing. Please note: This setting will not affect Zebra indexing, it should only be used to tell Koha that you have activated ICU indexing if you have actually done so, since there is no way for Koha to figure this out on its own.' 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 42052b6208..286ff216a0 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/xslt/MARC21slim2intranetDetail.xsl +++ b/koha-tmpl/intranet-tmpl/prog/en/xslt/MARC21slim2intranetDetail.xsl @@ -24,8 +24,19 @@ ,complete-subfield - + + + { + " + + + + + } + " + + @@ -462,13 +473,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 1d8bc6955b..6f6679d964 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 @@ + + + { + " + + + + + } + " + + @@ -522,13 +534,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: -- 2.39.5