From cb83128f62f258ad4bf97896b44fbf0ca65f7b35 Mon Sep 17 00:00:00 2001 From: Owen Leonard Date: Thu, 14 Feb 2019 15:46:24 +0000 Subject: [PATCH] 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 Signed-off-by: Michal Denar Signed-off-by: Josef Moravec Signed-off-by: Martin Renvoize Signed-off-by: Nick Clemens --- Koha/Template/Plugin/KohaNews.pm | 73 +++++++++++++++++++ .../bootstrap/en/includes/html_helpers.inc | 13 ++++ 2 files changed, 86 insertions(+) create mode 100644 Koha/Template/Plugin/KohaNews.pm diff --git a/Koha/Template/Plugin/KohaNews.pm b/Koha/Template/Plugin/KohaNews.pm new file mode 100644 index 0000000000..49299f6e3d --- /dev/null +++ b/Koha/Template/Plugin/KohaNews.pm @@ -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 . + +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 + +=cut \ No newline at end of file diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/includes/html_helpers.inc b/koha-tmpl/opac-tmpl/bootstrap/en/includes/html_helpers.inc index 2c7d34934b..8cb9d2f674 100644 --- a/koha-tmpl/opac-tmpl/bootstrap/en/includes/html_helpers.inc +++ b/koha-tmpl/opac-tmpl/bootstrap/en/includes/html_helpers.inc @@ -7,3 +7,16 @@ [% END%] [% END %] [% END %] + +[% BLOCK koha_news_block %] + [% IF ( news.size > 0 ) %] + [% FOREACH n IN news %] +
+ [% IF ( n.title ) %] +

[% n.title | html %]

+ [% END %] +
[% n.content | $raw %]
+
+ [% END %] + [% END %] +[% END %] -- 2.39.5