From 4e56e51177b7e01897e72caa5643df4cf0cbc04f Mon Sep 17 00:00:00 2001 From: Owen Leonard Date: Tue, 28 Apr 2020 19:23:55 +0000 Subject: [PATCH] Bug 13388: Add library pages to the OPAC This patch adds a script and a template for showing library information pages in the OPAC. A "libraries" page lists all the libraries in the system, linking to individual pages for each library showing more information.. If there is only one library in the system the page shows all of that library's information. To test, apply the patch and rebuild the OPAC CSS (https://wiki.koha-community.org/wiki/Working_with_SCSS_in_the_OPAC_and_staff_client). - Go to /cgi-bin/koha/opac-library.pl in the OPAC. - Verify that all the correct information is displayed for the libraries in your system. - Verify that page title and breadcrumbs look correct. - Click to view details for a library. - The details page should show the full contents of branches.opac_info - A menu should show links to other libraries' detail pages. EDIT: This revised patch adds a "Libraries" link to the links under the search bar; Corrects encoding in the breadcrumb link; Makes the page title more specific when viewing an individual library. Signed-off-by: Victor Grousset/tuxayo Signed-off-by: Martin Renvoize --- .../opac-tmpl/bootstrap/css/src/opac.scss | 22 +++ .../bootstrap/en/includes/masthead.inc | 1 + .../bootstrap/en/modules/opac-library.tt | 149 ++++++++++++++++++ opac/opac-library.pl | 52 ++++++ 4 files changed, 224 insertions(+) create mode 100644 koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-library.tt create mode 100755 opac/opac-library.pl diff --git a/koha-tmpl/opac-tmpl/bootstrap/css/src/opac.scss b/koha-tmpl/opac-tmpl/bootstrap/css/src/opac.scss index d78fd167a7..8babc17b63 100644 --- a/koha-tmpl/opac-tmpl/bootstrap/css/src/opac.scss +++ b/koha-tmpl/opac-tmpl/bootstrap/css/src/opac.scss @@ -1649,6 +1649,28 @@ div { } /* nav */ + +nav { + &.libraries { + li { + list-style-type: none; + padding: .3em .5em; + + a { + display: block; + } + } + + i.fa { + color: #7cbc0f; + } + + .fa-li { + top: unset; + } + } +} + .nav_pages { border-top: 1px solid #DDD; padding: .6em; diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/includes/masthead.inc b/koha-tmpl/opac-tmpl/bootstrap/en/includes/masthead.inc index 3f5b3a9549..99162b996f 100644 --- a/koha-tmpl/opac-tmpl/bootstrap/en/includes/masthead.inc +++ b/koha-tmpl/opac-tmpl/bootstrap/en/includes/masthead.inc @@ -315,6 +315,7 @@
  • Purchase suggestions
  • [% END %] [% END %] +
  • Libraries
  • [% Koha.Preference('OpacMoreSearches') | $raw %] diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-library.tt b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-library.tt new file mode 100644 index 0000000000..8d9680cade --- /dev/null +++ b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-library.tt @@ -0,0 +1,149 @@ +[% USE raw %] +[% USE Asset %] +[% USE Koha %] +[% INCLUDE 'doc-head-open.inc' %] + + [% IF ( LibraryNameTitle ) %] + [% LibraryNameTitle | html %] + [% ELSE %] + Koha online + [% END %] catalog › Libraries + [% IF ( library ) %] + › [% library.branchname | html %] + [% END %] + +[% INCLUDE 'doc-head-close.inc' %] +[% BLOCK cssinclude %][% END %] + + +[% INCLUDE 'bodytag.inc' bodyid='opac-library' bodyclass='scrollto' %] +[% INCLUDE 'masthead.inc' %] + +[% BLOCK library_description %] +
    + [% library.opac_info | $raw %] +
    +[% END %] + +[% BLOCK library_info %] +
    +

    + + [% IF ( library.branchaddress1 ) %] + [% library.branchaddress1 | html %] + [% END %] + [% IF ( library.branchaddress2 ) %] +
    [% library.branchaddress2 | html %] + [% END %] + [% IF ( library.branchaddress3 ) %] +
    [% library.branchaddress3 | html %] + [% END %] +

    + [% IF ( library.branchcity ) %] + [% library.branchcity | html %] + [% END %] + [% IF ( library.branchstate ) %] + [% library.branchstate | html %] + [% END %] + [% IF ( library.branchzip ) %] + [% library.branchzip | html %] + [% END %] + [% IF ( library.branchcountry ) %] +
    [% library.branchcountry | html %] + [% END %] + [% IF ( library.branchphone ) %] +

    Phone: [% library.branchphone | html %]

    + [% END %] + [% IF ( library.branchfax ) %] +

    Fax: [% library.branchfax | html %]

    + [% END %] + [% IF ( library.branchemail ) %] +

    Email: [% library.branchemail | html %]

    + [% END %] + [% IF ( library.branchurl ) %] +

    [% library.branchurl | html %]

    + [% END %] +

    +
    +[% END %] + +
    + + +
    +
    +
    + + [% IF ( library ) %] + +
    +

    [% library.branchname | html %]

    + +
    +
    + [% PROCESS library_info %] + [% IF ( library.opac_info ) %] +
    + [% PROCESS library_description %] + [% END %] +
    +
    + [% IF ( libraries.count > 1 ) %] + + [% END %] +
    +
    +
    + + [% ELSE %] +

    Libraries

    + + [% FOREACH library IN libraries %] +

    + [% IF ( libraries.count > 1 ) %] + [% library.branchname | html %] + [% ELSE %] + [% library.branchname | html %] + [% END %] +

    + [% PROCESS library_info %] +
    + [% IF ( libraries.count == 1 ) %] + [% PROCESS library_description %] + [% END %] + [% END %] + + [% END %] + +
    +
    +
    +[% INCLUDE 'opac-bottom.inc' %] +[% BLOCK jsinclude %][% END %] diff --git a/opac/opac-library.pl b/opac/opac-library.pl new file mode 100755 index 0000000000..52168615f3 --- /dev/null +++ b/opac/opac-library.pl @@ -0,0 +1,52 @@ +#!/usr/bin/perl + +# Copyright 2020 Athens County Public Libraries +# +# This file is part of Koha. +# +# Koha is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# Koha is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Koha; if not, see . + + +use Modern::Perl; + +use CGI qw ( -utf8 ); +use C4::Auth; +use C4::Output; +use Koha::Libraries; + +my $query = CGI->new(); + +my $branchcode = $query->param('branchcode'); + +my ( $template, $borrowernumber, $cookie ) = get_template_and_user( + { + template_name => "opac-library.tt", + query => $query, + type => "opac", + authnotrequired => ( C4::Context->preference("OpacPublic") ? 1 : 0 ), + } +); + +if( $branchcode ){ + my $library = Koha::Libraries->find( $branchcode ); + $template->param( library => $library ); +} + +my $libraries = Koha::Libraries->search( {}, { order_by => ['branchname'] }, ); +$template->param( + libraries => $libraries, + branchcode => $branchcode, +); + +output_html_with_http_headers $query, $cookie, $template->output; -- 2.20.1