From 0d4ebe4170713f8c751b40107da7b45821535aa6 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 Signed-off-by: Caroline Cyr La Rose Signed-off-by: Marcel de Rooy Signed-off-by: Katrin Fischer --- .../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 2d76cd072e..a6067b7607 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..1fe694567c 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",