From b20deadd6b673a163ae720255a74d04b927d38a8 Mon Sep 17 00:00:00 2001 From: Viktor Sarge Date: Sun, 8 Feb 2015 19:41:55 +0000 Subject: [PATCH] Bug 7843 Create an RSS feed for news in Opac Test plan: * Install the patch * Make shure there is news in the Opac * Go to the Opac (opac-main.pl) * Make shure you see an RSS icon below the news and a short text. * Click the RSS icon and verify that you get an RSS feed that validates. Signed-off-by: Chris Cormack I took the liberty of fixing the copyright statement when signing it off Signed-off-by: Pierre --- .../opac-tmpl/bootstrap/en/modules/opac-main.tt | 4 ++ .../bootstrap/en/modules/opac-news-rss.tt | 15 +++++ opac/opac-news-rss.pl | 67 ++++++++++++++++++++ 3 files changed, 86 insertions(+) create mode 100644 koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-news-rss.tt create mode 100755 opac/opac-news-rss.pl diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-main.tt b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-main.tt index 2329b74..5dd7955 100644 --- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-main.tt +++ b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-main.tt @@ -47,6 +47,10 @@ [% END %] +
+ + RSS for the librarys general newsfeed. +
[% END %] [% IF ( display_daily_quote && daily_quote ) %] diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-news-rss.tt b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-news-rss.tt new file mode 100644 index 0000000..2602226 --- /dev/null +++ b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-news-rss.tt @@ -0,0 +1,15 @@ + + + + + News from [% IF ( LibraryNameTitle ) %][% LibraryNameTitle %][% ELSE %]the library[% END %] + [% OPACBaseURL %]/cgi-bin/koha/opac-main.pl + + [% FOREACH newsitem IN koha_news %] + + [% newsitem.title |html %] + [% newsitem.new |html %] + + [% END %] + + diff --git a/opac/opac-news-rss.pl b/opac/opac-news-rss.pl new file mode 100755 index 0000000..19c6ebf --- /dev/null +++ b/opac/opac-news-rss.pl @@ -0,0 +1,67 @@ +#!/usr/bin/perl + +# This file is part of Koha. +# +# Copyright (C) 2015 Viktor Sarge +# +# 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; +use C4::Auth; # get_template_and_user +use C4::Output; +use C4::NewsChannels; # GetNewsToDisplay +use C4::Languages qw(getTranslatedLanguages accept_language); + +use strict; +use warnings; + + +my $input = new CGI; +my $dbh = C4::Context->dbh; + +my ( $template, $borrowernumber, $cookie ) = get_template_and_user( + { + template_name => "opac-news-rss.tt", + type => "opac", + query => $input, + authnotrequired => ( C4::Context->preference("OpacPublic") ? 1 : 0 ), + flagsrequired => { borrow => 1 }, + } +); + +my $casAuthentication = C4::Context->preference('casAuthentication'); +$template->param( + casAuthentication => $casAuthentication, +); + +# Get the news to display +# use cookie setting for language, bug default to syspref if it's not set +my ($theme, $news_lang, $availablethemes) = C4::Templates::themelanguage(C4::Context->config('opachtdocs'),'opac-main.tt','opac',$input); + +my $homebranch; + +if (C4::Context->userenv) { + $homebranch = C4::Context->userenv->{'branch'}; +} +my $all_koha_news = &GetNewsToDisplay($news_lang,$homebranch); +my $koha_news_count = scalar @$all_koha_news; + +$template->param( + koha_news => $all_koha_news, + koha_news_count => $koha_news_count, +); + +output_html_with_http_headers $input, $cookie, $template->output; -- 1.7.10.4