From 1b490c2908a0741183dd2b6d59f3574870875ac7 Mon Sep 17 00:00:00 2001 From: Aleisha Amohia Date: Thu, 16 Dec 2021 17:16:46 +1300 Subject: [PATCH] Bug 15326: WIP: Using AdditionalContents for custom pages on OPAC --- Koha/AdditionalContents.pm | 1 + .../prog/en/modules/tools/additional-contents.tt | 2 +- .../opac-tmpl/bootstrap/en/includes/masthead.inc | 10 +++ .../bootstrap/en/modules/opac-custompage.tt | 45 ++++++++++++ opac/opac-custompage.pl | 81 ++++++++++++++++++++++ 5 files changed, 138 insertions(+), 1 deletion(-) create mode 100644 koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-custompage.tt create mode 100755 opac/opac-custompage.pl diff --git a/Koha/AdditionalContents.pm b/Koha/AdditionalContents.pm index 711b187ad3..7b072c9ebc 100644 --- a/Koha/AdditionalContents.pm +++ b/Koha/AdditionalContents.pm @@ -63,6 +63,7 @@ location is one of this: - OpacLoginInstructions - OpacSuggestionInstructions - ArticleRequestsDisclaimerText +- CustomPage =cut diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/additional-contents.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/tools/additional-contents.tt index c1a5a01a1c..8027d82317 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/additional-contents.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/tools/additional-contents.tt @@ -424,7 +424,7 @@ [% END %] [% ELSE %] - [% FOREACH l IN [ 'OpacNavRight', 'opacheader', 'OpacCustomSearch', 'OpacMainUserBlock', 'opaccredits', 'OpacLoginInstructions', 'OpacNav', 'OpacNavBottom', 'OpacSuggestionInstructions', 'ArticleRequestsDisclaimerText' ] %] + [% FOREACH l IN [ 'OpacNavRight', 'opacheader', 'OpacCustomSearch', 'OpacMainUserBlock', 'opaccredits', 'OpacLoginInstructions', 'OpacNav', 'OpacNavBottom', 'OpacSuggestionInstructions', 'ArticleRequestsDisclaimerText', 'CustomPage' ] %] [% IF l == location %] [% ELSE %] diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/includes/masthead.inc b/koha-tmpl/opac-tmpl/bootstrap/en/includes/masthead.inc index c2cf93a090..8281dcb1aa 100644 --- a/koha-tmpl/opac-tmpl/bootstrap/en/includes/masthead.inc +++ b/koha-tmpl/opac-tmpl/bootstrap/en/includes/masthead.inc @@ -352,6 +352,16 @@ [% END %] + [% SET pages = AdditionalContents.get( category => 'html_customizations', location => 'CustomPage', lang => lang, library => branchcode ) %] + [% FOREACH page IN pages %] + [% USE Dumper %] + [% Dumper.dump_html(page) %] + + [% END %] [% Koha.Preference('OpacMoreSearches') | $raw %] diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-custompage.tt b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-custompage.tt new file mode 100644 index 0000000000..f486e9fcbc --- /dev/null +++ b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-custompage.tt @@ -0,0 +1,45 @@ +[% USE Koha %] +[% USE AdditionalContents %] +[% SET OpacNav = AdditionalContents.get( location => "OpacNav", lang => lang, library => logged_in_user.branchcode, blocktitle => 0 ) %] +[% SET OpacNavBottom = AdditionalContents.get( location => "OpacNavBottom", lang => lang, library => logged_in_user.branchcode, blocktitle => 0 ) %] +[% INCLUDE 'doc-head-open.inc' %] +Authority search › [% IF ( LibraryNameTitle ) %][% LibraryNameTitle | html %][% ELSE %]Koha online[% END %] catalog +[% INCLUDE 'doc-head-close.inc' %] +[% BLOCK cssinclude %][% END %] + +[% INCLUDE 'bodytag.inc' bodyid='opac-custompage' bodyclass='scrollto' %] +[% INCLUDE 'masthead.inc' %] + +
+ + +
+
+ [% IF ( OpacNav || OpacNavBottom ) %] +
+ +
+
+ [% ELSE %] +
+ [% END %] +
+
+
+
+
+
+ +[% INCLUDE 'opac-bottom.inc' %] +[% BLOCK jsinclude %][% END %] diff --git a/opac/opac-custompage.pl b/opac/opac-custompage.pl new file mode 100755 index 0000000000..f74f3b63a2 --- /dev/null +++ b/opac/opac-custompage.pl @@ -0,0 +1,81 @@ +#!/usr/bin/perl + +# This file is part of Koha. +# +# Copyright 2021 Aleisha Amohia +# +# 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 qw( get_template_and_user ); +use C4::Output qw( output_html_with_http_headers ); +use Koha::AdditionalContents; + +my $input = CGI->new; +my $dbh = C4::Context->dbh; + +my ( $template, $borrowernumber, $cookie ) = get_template_and_user( + { + template_name => "opac-custompages.tt", + type => "opac", + query => $input, + authnotrequired => ( C4::Context->preference("OpacPublic") ? 1 : 0 ), + } +); + +my $casAuthentication = C4::Context->preference('casAuthentication'); +$template->param( + casAuthentication => $casAuthentication, +); + +my $homebranch; +if (C4::Context->userenv) { + $homebranch = C4::Context->userenv->{'branch'}; +} +if (defined $input->param('branch') and length $input->param('branch')) { + $homebranch = $input->param('branch'); +} +elsif (C4::Context->userenv and defined $input->param('branch') and length $input->param('branch') == 0 ){ + $homebranch = ""; +} + +my $news_id = $input->param('news_id'); +my $koha_news; + +if (defined $news_id){ + $koha_news = Koha::AdditionalContents->search({ idnew => $news_id, location => ['opac_only', 'staff_and_opac'] }); # get news that is not staff-only news + if ( $koha_news->count > 0){ + $template->param( news_item => $koha_news->next ); + } else { + $template->param( single_news_error => 1 ); + } +} else { + $koha_news = Koha::AdditionalContents->search_for_display( + { + category => 'news', + location => ['opac_only', 'staff_and_opac'], + lang => $template->lang, + library_id => $homebranch, + } + ); +} + +$template->param( + koha_news => $koha_news, + branchcode => $homebranch, + daily_quote => Koha::Quotes->get_daily_quote(), +); + +output_html_with_http_headers $input, $cookie, $template->output; -- 2.11.0