From 2dc6f8665fe66af739824e221da5152c70bbe6a4 Mon Sep 17 00:00:00 2001 From: Viktor Sarge Date: Wed, 18 Jun 2014 13:25:53 +0100 Subject: [PATCH] Bug 7843 Create an RSS feed for news in Opac This patch introduces two new files: opac-news-rss.pl and opac-news-rss.tt. The files create an RSS feed for news in the opac between them, and to access the feed you go to opac-news-rss.pl in the opac. I intentionally waited with creating a RSS icon on opac-main.pl since I think we might want to discuss a few issues before exposing the feeds publicly even if the patch is pushed. Issues I know would be good to discuss is: * The news items have no individual links since there is no graphical view of individual news items in the way that a blog would have. Is this a problem for RSS-readers? * Should we add additional metadata like author, administrator, publishing dates etc? * Currently the feed will display news for all libraries + your home branch if you access it while logged in. Would only "all libraries" be better? Or maybe all libraries + every item for individual branches? Test plan: * Install patch a * Make shure there is news in the Opac. * Go to the page opac-news-rss.pl in your Opac. * Verify that an RSS feed shows up with the same news as in opac-main.pl * Validate the RSS-feed. --- .../bootstrap/en/modules/opac-news-rss.tt | 15 +++++ opac/opac-news-rss.pl | 67 ++++++++++++++++++++ 2 files changed, 82 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-news-rss.tt b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-news-rss.tt new file mode 100644 index 0000000..b5ca50d --- /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..45fce62 --- /dev/null +++ b/opac/opac-news-rss.pl @@ -0,0 +1,67 @@ +#!/usr/bin/perl + +# This file is part of Koha. +# +# Parts Copyright (C) 2013 Mark Tompsett +# +# 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.tmpl", + 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