From bc9ac15b74461e274bd63e51d3b1f69f9423c4b4 Mon Sep 17 00:00:00 2001 From: Doug Dearden Date: Mon, 14 Mar 2011 14:21:01 -0600 Subject: [PATCH] Bug 5738 Display 856u As Image Content-Type: text/plain; charset="utf-8" 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 --- C4/XSLT.pm | 3 ++- installer/data/mysql/de-DE/mandatory/sysprefs.sql | 2 ++ installer/data/mysql/en/mandatory/sysprefs.sql | 2 ++ .../1-Obligatoire/unimarc_standard_systemprefs.sql | 2 ++ installer/data/mysql/it-IT/necessari/sysprefs.sql | 2 ++ installer/data/mysql/pl-PL/mandatory/sysprefs.sql | 2 ++ ...m_preferences_full_optimal_for_install_only.sql | 2 ++ ...m_preferences_full_optimal_for_install_only.sql | 2 ++ installer/data/mysql/updatedatabase.pl | 8 ++++++++ .../prog/en/modules/admin/preferences/opac.pref | 9 +++++++++ .../en/modules/admin/preferences/staff_client.pref | 9 +++++++++ .../prog/en/xslt/MARC21slim2intranetDetail.xsl | 5 +++++ .../prog/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 +++++ 17 files changed, 81 insertions(+), 10 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 f349376..4345f27 --- 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 2e1069e..f501d15 --- a/installer/data/mysql/de-DE/mandatory/sysprefs.sql +++ b/installer/data/mysql/de-DE/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/en/mandatory/sysprefs.sql b/installer/data/mysql/en/mandatory/sysprefs.sql old mode 100644 new mode 100755 index 9f47292..900db81 --- a/installer/data/mysql/en/mandatory/sysprefs.sql +++ b/installer/data/mysql/en/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/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 c58f69c..a64d95b --- a/installer/data/mysql/fr-FR/1-Obligatoire/unimarc_standard_systemprefs.sql +++ b/installer/data/mysql/fr-FR/1-Obligatoire/unimarc_standard_systemprefs.sql @@ -300,3 +300,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 3c3d3c8..8b9c0bf --- a/installer/data/mysql/it-IT/necessari/sysprefs.sql +++ b/installer/data/mysql/it-IT/necessari/sysprefs.sql @@ -285,3 +285,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 70ad079..9b66d49 --- a/installer/data/mysql/pl-PL/mandatory/sysprefs.sql +++ b/installer/data/mysql/pl-PL/mandatory/sysprefs.sql @@ -297,3 +297,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 448e617..56e4b8f --- 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 @@ -352,3 +352,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 f8b1ea0..298966b --- 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 @@ -377,3 +377,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 f2d6776..cd8bc4e 100755 --- a/installer/data/mysql/updatedatabase.pl +++ b/installer/data/mysql/updatedatabase.pl @@ -4166,6 +4166,14 @@ if (C4::Context->preference("Version") < TransformToNum($DBversion)) { SetVersion ($DBversion); } +$DBversion = 'XXX'; +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 78573fe..52c262b --- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/opac.pref +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/opac.pref @@ -163,6 +163,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 b658954..abde94a --- 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 9c1862e..49bdfd1 --- 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 bb542bc..fcfe65c --- 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 224999c..464f21c 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 0b53e22..75e60ac --- 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 e4e5f67..2832b6b --- 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 cfb8823..831724c --- 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 -- 1.5.6.5