From 64bb940724c377bb473506dc65e4d53b34d87d18 Mon Sep 17 00:00:00 2001 From: Owen Leonard Date: Fri, 28 Jun 2024 11:46:16 +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 0000000000..4e20eec083 --- /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 0496d3fd48..a8a2f82bc9 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 8c2c30d7fd..00d257eb34 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 560b66dbe3..21780d429b 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 24611a1980..e4200f5741 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 OPACShowLibraries 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