From 6c7f964c27937fd1c352bfd8936c047d995382b8 Mon Sep 17 00:00:00 2001 From: Doug Dearden Date: Thu, 31 Mar 2011 15:22:26 -0600 Subject: [PATCH] Bug 5738 Display 856u As Image Add an option to the OPAC to display the URI that is stored in the 856u field as an image instead of a text link. This would be implemented in the OPAC XSLT style sheets for the Results and Details pages, and would require that the corresponding OPAC XSLT option be set. This enhancement is designed to enable the staff to catalog images, then have them appear on the resulting pages in the OPAC when searching. Clicking on the image would open it full size. If the image option is in use, then the default link text would be disabled. Custom text would still appear if entered in the "URLLinkText" option. Add system preference "Display856uAsImage" with options of Results page, Details page, Both Results and Details pages, Neither Results or Details page. Notes for documentation manager: There are two system preferences added for this enhancement: OPACDisplay856uAsImage and Display856uAsImage. These appear on the OPAC and Staff Client screens under the System Preferences. The preference can be set to one of four options: Both Details and Results pages Details page only Neither Details or Results pages Results page only In addition to this option being set, the corresponding XSLT option must be turned on. Also, the corresponding 856q field must have a valid MIME image extension (e.g., "jpg") or MIME image type (i.e. starting with "image/"), or the generic indicator "img" entered in the field. As of 14 March 2011 the UNIMARC xslt display files also require a "0" in the second indicator location of the 856u field for the links to be activated. This is not true for the MARC21 display files. When all of the requirements are met, an image file will be displayed instead of the standard link text. Clicking on the image will open it in the same way as clicking on the link text. Rebased and three original patches squashed into one on 30 March 2011 by Jared Camins-Esakov. Signed-off-by: Jared Camins-Esakov Signed-off-by: Doug Dearden Signed-off-by: Chris Cormack --- C4/XSLT.pm | 3 ++- .../data/mysql/de-DE/mandatory/sysprefs.sql | 2 ++ .../data/mysql/en/mandatory/sysprefs.sql | 2 ++ .../unimarc_standard_systemprefs.sql | 2 ++ .../data/mysql/it-IT/necessari/sysprefs.sql | 2 ++ .../data/mysql/pl-PL/mandatory/sysprefs.sql | 2 ++ ...ferences_full_optimal_for_install_only.sql | 2 ++ ...ferences_full_optimal_for_install_only.sql | 2 ++ installer/data/mysql/updatedatabase.pl | 8 ++++++++ .../en/modules/admin/preferences/opac.pref | 9 +++++++++ .../admin/preferences/staff_client.pref | 9 +++++++++ .../en/xslt/MARC21slim2intranetDetail.xsl | 5 +++++ .../en/xslt/UNIMARCslim2intranetDetail.xsl | 5 +++++ .../prog/en/xslt/MARC21slim2OPACDetail.xsl | 20 ++++++++++--------- .../prog/en/xslt/MARC21slim2OPACResults.xsl | 8 ++++++++ .../prog/en/xslt/UNIMARCslim2OPACDetail.xsl | 5 +++++ .../prog/en/xslt/UNIMARCslim2OPACResults.xsl | 5 +++++ kohaversion.pl | 2 +- 18 files changed, 82 insertions(+), 11 deletions(-) mode change 100644 => 100755 C4/XSLT.pm mode change 100644 => 100755 installer/data/mysql/de-DE/mandatory/sysprefs.sql mode change 100644 => 100755 installer/data/mysql/en/mandatory/sysprefs.sql mode change 100644 => 100755 installer/data/mysql/fr-FR/1-Obligatoire/unimarc_standard_systemprefs.sql mode change 100644 => 100755 installer/data/mysql/it-IT/necessari/sysprefs.sql mode change 100644 => 100755 installer/data/mysql/pl-PL/mandatory/sysprefs.sql mode change 100644 => 100755 installer/data/mysql/ru-RU/mandatory/system_preferences_full_optimal_for_install_only.sql mode change 100644 => 100755 installer/data/mysql/uk-UA/mandatory/system_preferences_full_optimal_for_install_only.sql mode change 100644 => 100755 koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/opac.pref mode change 100644 => 100755 koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/staff_client.pref mode change 100644 => 100755 koha-tmpl/intranet-tmpl/prog/en/xslt/MARC21slim2intranetDetail.xsl mode change 100644 => 100755 koha-tmpl/intranet-tmpl/prog/en/xslt/UNIMARCslim2intranetDetail.xsl mode change 100644 => 100755 koha-tmpl/opac-tmpl/prog/en/xslt/MARC21slim2OPACResults.xsl mode change 100644 => 100755 koha-tmpl/opac-tmpl/prog/en/xslt/UNIMARCslim2OPACDetail.xsl mode change 100644 => 100755 koha-tmpl/opac-tmpl/prog/en/xslt/UNIMARCslim2OPACResults.xsl diff --git a/C4/XSLT.pm b/C4/XSLT.pm old mode 100644 new mode 100755 index f3493765e8..4345f27aa8 --- a/C4/XSLT.pm +++ b/C4/XSLT.pm @@ -131,7 +131,8 @@ sub XSLTParse4Display { foreach my $syspref ( qw/ hidelostitems OPACURLOpenInNewWindow DisplayOPACiconsXSLT URLLinkText viewISBD OPACBaseURL TraceCompleteSubfields - UseAuthoritiesForTracings TraceSubjectSubdivisions / ) + UseAuthoritiesForTracings TraceSubjectSubdivisions + Display856uAsImage OPACDisplay856uAsImage / ) { my $sp = C4::Context->preference( $syspref ); next unless defined($sp); diff --git a/installer/data/mysql/de-DE/mandatory/sysprefs.sql b/installer/data/mysql/de-DE/mandatory/sysprefs.sql old mode 100644 new mode 100755 index 761ecef6be..394cc0082c --- a/installer/data/mysql/de-DE/mandatory/sysprefs.sql +++ b/installer/data/mysql/de-DE/mandatory/sysprefs.sql @@ -299,3 +299,5 @@ INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES 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('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/en/mandatory/sysprefs.sql b/installer/data/mysql/en/mandatory/sysprefs.sql old mode 100644 new mode 100755 index ad59527af9..e3706931d2 --- a/installer/data/mysql/en/mandatory/sysprefs.sql +++ b/installer/data/mysql/en/mandatory/sysprefs.sql @@ -299,3 +299,5 @@ INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES 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('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/fr-FR/1-Obligatoire/unimarc_standard_systemprefs.sql b/installer/data/mysql/fr-FR/1-Obligatoire/unimarc_standard_systemprefs.sql old mode 100644 new mode 100755 index 2bc0d520ef..c5e0dbdaf1 --- a/installer/data/mysql/fr-FR/1-Obligatoire/unimarc_standard_systemprefs.sql +++ b/installer/data/mysql/fr-FR/1-Obligatoire/unimarc_standard_systemprefs.sql @@ -301,3 +301,5 @@ INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES 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('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/it-IT/necessari/sysprefs.sql b/installer/data/mysql/it-IT/necessari/sysprefs.sql old mode 100644 new mode 100755 index 91a3d3d0b6..12340d93d3 --- a/installer/data/mysql/it-IT/necessari/sysprefs.sql +++ b/installer/data/mysql/it-IT/necessari/sysprefs.sql @@ -286,3 +286,5 @@ INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES 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('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/pl-PL/mandatory/sysprefs.sql b/installer/data/mysql/pl-PL/mandatory/sysprefs.sql old mode 100644 new mode 100755 index 02158eea15..443d93e4f3 --- a/installer/data/mysql/pl-PL/mandatory/sysprefs.sql +++ b/installer/data/mysql/pl-PL/mandatory/sysprefs.sql @@ -298,3 +298,5 @@ INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES 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('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/ru-RU/mandatory/system_preferences_full_optimal_for_install_only.sql b/installer/data/mysql/ru-RU/mandatory/system_preferences_full_optimal_for_install_only.sql old mode 100644 new mode 100755 index ccef0f92b2..4653834de1 --- a/installer/data/mysql/ru-RU/mandatory/system_preferences_full_optimal_for_install_only.sql +++ b/installer/data/mysql/ru-RU/mandatory/system_preferences_full_optimal_for_install_only.sql @@ -353,3 +353,5 @@ INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES 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('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/uk-UA/mandatory/system_preferences_full_optimal_for_install_only.sql b/installer/data/mysql/uk-UA/mandatory/system_preferences_full_optimal_for_install_only.sql old mode 100644 new mode 100755 index 963b2dc736..2c8b7de8a7 --- a/installer/data/mysql/uk-UA/mandatory/system_preferences_full_optimal_for_install_only.sql +++ b/installer/data/mysql/uk-UA/mandatory/system_preferences_full_optimal_for_install_only.sql @@ -378,3 +378,5 @@ INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES 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('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 05c5c22d69..e710b51ae7 100755 --- a/installer/data/mysql/updatedatabase.pl +++ b/installer/data/mysql/updatedatabase.pl @@ -4173,6 +4173,14 @@ if (C4::Context->preference("Version") < TransformToNum($DBversion)) { SetVersion ($DBversion); } +$DBversion = '3.03.00.037'; +if (C4::Context->preference("Version") < TransformToNum($DBversion)) { + $dbh->do("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')"); + $dbh->do("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')"); + print "Upgrade to $DBversion done (Add 'Display856uAsImage' and 'OPACDisplay856uAsImage' syspref)\n"; + SetVersion ($DBversion); +} + =head1 FUNCTIONS =head2 DropAllForeignKeys($table) diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/opac.pref b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/opac.pref old mode 100644 new mode 100755 index 61e2761c38..0265a745c6 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/opac.pref +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/opac.pref @@ -169,6 +169,15 @@ OPAC: - pref: OPACNoResultsFound type: textarea class: code + - + - 'Display the URI in the 856u field as an image on: ' + - pref: OPACDisplay856uAsImage + choices: + OFF: "Neither Details or Results pages" + Details: "Details page only" + Results: "Results page only" + Both: "Both Details and Results pages" + - 'Note: The corresponding OPACXSLT option must be turned on.' Features: - - pref: opacuserlogin diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/staff_client.pref b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/staff_client.pref old mode 100644 new mode 100755 index b65895481d..abde94a9c3 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/staff_client.pref +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/staff_client.pref @@ -74,6 +74,15 @@ Staff Client: yes: Show no: "Don't show" - images for authorized values (such as lost statuses and locations) in search results. + - + - 'Display the URI in the 856u field as an image on: ' + - pref: Display856uAsImage + choices: + OFF: "Neither Details or Results pages" + Details: "Details page only" + Results: "Results page (for future use, Results XSLT not functional at this time)." + Both: "Both Results and Details pages (for future use, Results XSLT not functional at this time)." + - 'Note: The corresponding XSLT option must be turned on.' Options: - - pref: viewMARC diff --git a/koha-tmpl/intranet-tmpl/prog/en/xslt/MARC21slim2intranetDetail.xsl b/koha-tmpl/intranet-tmpl/prog/en/xslt/MARC21slim2intranetDetail.xsl old mode 100644 new mode 100755 index 9c1862ef98..49bdfd1240 --- a/koha-tmpl/intranet-tmpl/prog/en/xslt/MARC21slim2intranetDetail.xsl +++ b/koha-tmpl/intranet-tmpl/prog/en/xslt/MARC21slim2intranetDetail.xsl @@ -23,6 +23,7 @@ + @@ -457,8 +458,12 @@ Online Resources: + + + 100 + y3z diff --git a/koha-tmpl/intranet-tmpl/prog/en/xslt/UNIMARCslim2intranetDetail.xsl b/koha-tmpl/intranet-tmpl/prog/en/xslt/UNIMARCslim2intranetDetail.xsl old mode 100644 new mode 100755 index bb542bcd72..fcfe65c62e --- a/koha-tmpl/intranet-tmpl/prog/en/xslt/UNIMARCslim2intranetDetail.xsl +++ b/koha-tmpl/intranet-tmpl/prog/en/xslt/UNIMARCslim2intranetDetail.xsl @@ -15,6 +15,7 @@ + @@ -356,11 +357,15 @@
  • Online Resources: + + + 100 + y3z diff --git a/koha-tmpl/opac-tmpl/prog/en/xslt/MARC21slim2OPACDetail.xsl b/koha-tmpl/opac-tmpl/prog/en/xslt/MARC21slim2OPACDetail.xsl index 224999c37b..464f21c682 100755 --- a/koha-tmpl/opac-tmpl/prog/en/xslt/MARC21slim2OPACDetail.xsl +++ b/koha-tmpl/opac-tmpl/prog/en/xslt/MARC21slim2OPACDetail.xsl @@ -26,6 +26,7 @@ ,complete-subfield + @@ -511,29 +512,30 @@ + Online Resources: + _blank + + 100 + y3z - - - - - - - Click here to access online - - + + + + Click here to access online + diff --git a/koha-tmpl/opac-tmpl/prog/en/xslt/MARC21slim2OPACResults.xsl b/koha-tmpl/opac-tmpl/prog/en/xslt/MARC21slim2OPACResults.xsl old mode 100644 new mode 100755 index 0b53e222d6..75e60ac6b1 --- a/koha-tmpl/opac-tmpl/prog/en/xslt/MARC21slim2OPACResults.xsl +++ b/koha-tmpl/opac-tmpl/prog/en/xslt/MARC21slim2OPACResults.xsl @@ -23,6 +23,7 @@ + @@ -904,9 +905,13 @@ Online Access: + + + 100 + y3z @@ -928,6 +933,9 @@ + + 100 + y3z diff --git a/koha-tmpl/opac-tmpl/prog/en/xslt/UNIMARCslim2OPACDetail.xsl b/koha-tmpl/opac-tmpl/prog/en/xslt/UNIMARCslim2OPACDetail.xsl old mode 100644 new mode 100755 index e4e5f671c3..2832b6b27b --- a/koha-tmpl/opac-tmpl/prog/en/xslt/UNIMARCslim2OPACDetail.xsl +++ b/koha-tmpl/opac-tmpl/prog/en/xslt/UNIMARCslim2OPACDetail.xsl @@ -15,6 +15,7 @@ + @@ -351,11 +352,15 @@ Online Resources: + + + 100 + y3z diff --git a/koha-tmpl/opac-tmpl/prog/en/xslt/UNIMARCslim2OPACResults.xsl b/koha-tmpl/opac-tmpl/prog/en/xslt/UNIMARCslim2OPACResults.xsl old mode 100644 new mode 100755 index cfb88232cb..831724ce01 --- a/koha-tmpl/opac-tmpl/prog/en/xslt/UNIMARCslim2OPACResults.xsl +++ b/koha-tmpl/opac-tmpl/prog/en/xslt/UNIMARCslim2OPACResults.xsl @@ -18,6 +18,7 @@ + @@ -76,6 +77,7 @@ + @@ -83,6 +85,9 @@ + + 100 + y3z diff --git a/kohaversion.pl b/kohaversion.pl index a0bab4ce5a..e1bea78e04 100644 --- a/kohaversion.pl +++ b/kohaversion.pl @@ -16,7 +16,7 @@ the kohaversion is divided in 4 parts : use strict; sub kohaversion { - our $VERSION = '3.03.00.036'; + our $VERSION = '3.03.00.037'; # version needs to be set this way # so that it can be picked up by Makefile.PL # during install -- 2.39.5