From 6c8161d0ca87cef928a1a61788137da3eea7e490 Mon Sep 17 00:00:00 2001 From: Owen Leonard Date: Thu, 27 Jun 2024 18:26:34 +0000 Subject: [PATCH] Bug 30873: Add system preference to hide libraries link in the OPAC Some users would prefer that the libraries link not appear in the menu of links under the OPAC's main search bar. This patch adds a preference to do so. The preference defaults to "On" since "On" is the current default behavior. To test, apply the patch and run the database update prcoess. - In the OPAC, confirm that by default the "Libraries" link appears. - In the staff interface, go to Administration -> System preferences -> OPACShowLibraries - Set the preference to "Don't show" - Return to the OPAC and confirm that the "Libraries" link isn't there. - Try to navigate directly to /cgi-bin/koha/opac-library.pl. You should be redirected to a 404 page. Sponsored-by: Athens County Public Libraries --- .../data/mysql/atomicupdate/bug_30873.pl | 18 +++++++++++++++++ installer/data/mysql/mandatory/sysprefs.sql | 1 + .../en/modules/admin/preferences/opac.pref | 6 ++++++ .../bootstrap/en/includes/masthead.inc | 20 ++++++++++--------- opac/opac-library.pl | 6 ++++++ 5 files changed, 42 insertions(+), 9 deletions(-) create mode 100755 installer/data/mysql/atomicupdate/bug_30873.pl diff --git a/installer/data/mysql/atomicupdate/bug_30873.pl b/installer/data/mysql/atomicupdate/bug_30873.pl new file mode 100755 index 00000000000..4e20eec083a --- /dev/null +++ b/installer/data/mysql/atomicupdate/bug_30873.pl @@ -0,0 +1,18 @@ +use Modern::Perl; + +return { + bug_number => "26205", + description => + "Add new system preference OPACShowLibraries to control whether the libraries link appears in the OPAC", + up => sub { + my ($args) = @_; + my $dbh = $args->{dbh}; + + $dbh->do( + q{ + INSERT IGNORE INTO systempreferences (variable, value, explanation, options, type) + VALUES ('OPACShowLibraries', '1', 'If enabled, a "Libraries" link appears in the OPAC pointing to a page with library information', '', 'YesNo') + } + ); + }, + } diff --git a/installer/data/mysql/mandatory/sysprefs.sql b/installer/data/mysql/mandatory/sysprefs.sql index 0496d3fd48b..a8a2f82bc9f 100644 --- a/installer/data/mysql/mandatory/sysprefs.sql +++ b/installer/data/mysql/mandatory/sysprefs.sql @@ -544,6 +544,7 @@ INSERT INTO systempreferences ( `variable`, `value`, `options`, `explanation`, ` ('OPACShibOnly','0','','If ON enables shibboleth only authentication for the opac','YesNo'), ('OPACShowCheckoutName','0','','Displays in the OPAC the name of patron who has checked out the material. WARNING: Most sites should leave this off. It is intended for corporate or special sites which need to track who has the item.','YesNo'), ('OPACShowHoldQueueDetails','none','none|priority|holds|holds_priority','Show holds details in OPAC','Choice'), +('OPACShowLibraries', '1', 'If enabled, a link is shown in the OPAC pointing to a page with library information', '', 'YesNo'), ('OPACShowMusicalInscripts','0','','Display musical inscripts on the OPAC record details page when available.','YesNo'), ('OPACShowOpenURL', '0', NULL, 'Enable display of OpenURL links in OPAC search results and detail page', 'YesNo'), ('OpacShowRecentComments','0',NULL,'If ON a link to recent comments will appear in the OPAC masthead','YesNo'), 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 index 8c2c30d7fda..00d257eb347 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/opac.pref +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/opac.pref @@ -42,6 +42,12 @@ OPAC: 0: Disable - "Koha OPAC as public. Private OPAC requires authentication before accessing the OPAC. " - 'Note: This does not affect the public API, see the RESTPublicAnonymousRequests to control the API.' + - + - pref: OPACShowLibraries + choices: + 1: "Show" + 0: "Don't show" + - "a link to a page in the OPAC showing information about each library. " - - "Show star-ratings on" - pref: OpacStarRatings diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/includes/masthead.inc b/koha-tmpl/opac-tmpl/bootstrap/en/includes/masthead.inc index 560b66dbe30..21780d429b0 100644 --- a/koha-tmpl/opac-tmpl/bootstrap/en/includes/masthead.inc +++ b/koha-tmpl/opac-tmpl/bootstrap/en/includes/masthead.inc @@ -364,15 +364,17 @@ [% END %] [% END %] - + [% IF ( Koha.Preference('OPACShowLibraries') ) %] + + [% END %] [% PROCESS koha_news_block news => OpacMoreSearches %] diff --git a/opac/opac-library.pl b/opac/opac-library.pl index 24611a19809..3d1f55474ae 100755 --- a/opac/opac-library.pl +++ b/opac/opac-library.pl @@ -29,6 +29,12 @@ my $query = CGI->new(); my $branchcode = $query->param('branchcode'); +# if OpacTopissue is disabled, leave immediately +if ( !C4::Context->preference('OPACShowLibraries') ) { + print $query->redirect("/cgi-bin/koha/errors/404.pl"); + exit; +} + my ( $template, $borrowernumber, $cookie ) = get_template_and_user( { template_name => "opac-library.tt", -- 2.39.2