Bug 22318: Extend Koha news feature to include other content areas

This patch lays the groundwork for using the Koha news tool to replace
OPAC system preferences which embed HTML content in the Koha interface.
This will allow multiple translations of these content blocks to be
created.

This adds a new template plugin, KohaNews. It has a single subroutine,
get(), which takes three parameters:

 - "location" -- the area of the template where the content will appear.
   This will correspond to the system preference it replaces:
   OpacMainUserBlock, OpacNavRight, etc.
 - "lang" -- the user's currently-selected language.
 - "library" -- the user's home library (if they are logged in)

A new "koha_news_block" block is added to the OPAC templates'
html_helpers include. The content area is activated in the template
using this syntax:

[% PROCESS koha_news_block news => KohaNews.get( location =>
"OpacNavRight", lang => news_lang, library => branchcode ) %]

Signed-off-by: Michal Denar <black23@gmail.com>

Signed-off-by: Michal Denar <black23@gmail.com>

Signed-off-by: Josef Moravec <josef.moravec@gmail.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
This commit is contained in:
Owen Leonard 2019-02-14 15:46:24 +00:00 committed by Nick Clemens
parent 0c95e22afe
commit cb83128f62
2 changed files with 86 additions and 0 deletions

View File

@ -0,0 +1,73 @@
package Koha::Template::Plugin::KohaNews;
# Copyright ByWater Solutions 2012
# Copyright BibLibre 2014
# Parts copyright Athens County Public Libraries 2019
# 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 <http://www.gnu.org/licenses>.
use Modern::Perl;
use Template::Plugin;
use base qw( Template::Plugin );
use C4::Koha;
use C4::Context;
use C4::NewsChannels; # GetNewsToDisplay
sub get {
my ( $self, $params ) = @_;
my $display_location = $params->{location};
my $lang = $params->{lang};
my $library = $params->{library} || "";
my $news_lang;
if( !$display_location ){
$news_lang = $lang;
} else {
$news_lang = $display_location."_".$lang;
}
my $content = &GetNewsToDisplay( $news_lang, $library );
return $content;
}
1;
=head1 NAME
Koha::Template::Plugin::KohaNews - TT Plugin for displaying Koha news
=head1 SYNOPSIS
[% USE KohaNews %]
[% KohaNews.get() %]
=head1 ROUTINES
=head2 get
In a template, you can get the all categories with
the following TT code: [% KohaNews.get() %]
=head1 AUTHOR
Owen Leonard <oleonard@myacpl.org>
=cut

View File

@ -7,3 +7,16 @@
[% END%]
[% END %]
[% END %]
[% BLOCK koha_news_block %]
[% IF ( news.size > 0 ) %]
[% FOREACH n IN news %]
<div class="[% n.lang | html %]_item">
[% IF ( n.title ) %]
<h4 class="[% n.lang | html %]_header">[% n.title | html %]</h4>
[% END %]
<div class="[% n.lang | html %]_body">[% n.content | $raw %]</div>
</div>
[% END %]
[% END %]
[% END %]