From ec176b35b88a876fb9d34239a149ba12cff8224d Mon Sep 17 00:00:00 2001 From: Aleisha Amohia Date: Wed, 13 Jun 2018 02:27:13 +0000 Subject: [PATCH] Bug 14272: Show single news item [alternative patch] This is a new patch for this bug that shows a single news item on the OPAC using Koha Objects (Koha::News). To test: 1) Go to Tools -> News on staff interface, make a news item to show on the OPAC 2) Go to OPAC 3) Notice news item shows and title cannot be clicked 4) Apply patch, refresh page 5) Notice title is now a link. Click title 6) Confirm breadcrumbs shows title of news item 7) Confirm RSS feed and OpacMainUserBlock are not visible 8) In the URL, change the news_id param to an ID that does not exist 9) Confirm that an appropriate error message shows Sponsored-by: Catalyst IT Signed-off-by: Owen Leonard Signed-off-by: Katrin Fischer Signed-off-by: Katrin Fischer Signed-off-by: Martin Renvoize --- .../bootstrap/en/modules/opac-main.tt | 30 ++++++++++++++++--- opac/opac-main.pl | 21 ++++++++++--- 2 files changed, 43 insertions(+), 8 deletions(-) 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 35812fdc76..f3378eb70a 100644 --- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-main.tt +++ b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-main.tt @@ -1,5 +1,6 @@ [% USE raw %] [% USE Koha %] +[% USE KohaDates %] [% USE Branches %] [% USE Price %] [% INCLUDE 'doc-head-open.inc' %] @@ -12,7 +13,12 @@
[% IF Koha.Preference( 'opacuserlogin' ) == 1 %] @@ -57,18 +63,32 @@ [% END %] - [% IF ( koha_news_count ) %] + [% IF ( koha_news ) %] + + + [% IF single_news_error %] + +
+ This news item does not exist. +
+ + [% ELSE %]
[% SET newsdisp = ( Koha.Preference('NewsAuthorDisplay') ) %] [% FOREACH koha_new IN koha_news %]
-

[% koha_new.title | html %]

+

[% koha_new.title | html %]

[% koha_new.content | $raw %]
-
(published on [% koha_new.newdate | html %][% IF ( (newsdisp == 'opac' || newsdisp == 'both') && koha_new.borrowernumber ) %] by [% koha_new.author_title | html %] [% koha_new.author_firstname | html %] [% koha_new.author_surname | html %][% END %])
+
(published on [% koha_new.timestamp | $KohaDates with_hours = 1 | html %][% IF ( (newsdisp == 'opac' || newsdisp == 'both') && koha_new.borrowernumber ) %] by [% koha_new.author_title | html %] [% koha_new.author_firstname | html %] [% koha_new.author_surname | html %][% END %])
[% END %]
+ + [% END %] + + [% UNLESS news_item %] +
@@ -109,6 +129,8 @@ [% IF ( OpacMainUserBlock ) %]
[% OpacMainUserBlock | $raw %]
[% END %]
+ [% END %] + [% IF ( ( Koha.Preference( 'opacuserlogin' ) == 1 ) || OpacNavRight ) %]
[% IF Koha.Preference( 'opacuserlogin' ) == 1 %] diff --git a/opac/opac-main.pl b/opac/opac-main.pl index 2398b6a4aa..9b620cfa18 100755 --- a/opac/opac-main.pl +++ b/opac/opac-main.pl @@ -29,6 +29,7 @@ use C4::Members; use C4::Overdues; use Koha::Checkouts; use Koha::Holds; +use Koha::News; my $input = new CGI; my $dbh = C4::Context->dbh; @@ -61,8 +62,21 @@ if (defined $input->param('branch') and length $input->param('branch')) { elsif (C4::Context->userenv and defined $input->param('branch') and length $input->param('branch') == 0 ){ $homebranch = ""; } -my $all_koha_news = &GetNewsToDisplay($news_lang,$homebranch); -my $koha_news_count = scalar @$all_koha_news; + +my $news_id = $input->param('news_id'); +my (@all_koha_news, $koha_news_count); + +if (defined $news_id){ + @all_koha_news = Koha::News->search({ idnew => $news_id }); + $koha_news_count = 1; + if (scalar @all_koha_news > 0){ + $template->param( news_item => @all_koha_news ); + } else { + $template->param( single_news_error => 1 ); + } +} else { + @all_koha_news = &GetNewsToDisplay($news_lang,$homebranch); +} my $quote = GetDailyQuote(); # other options are to pass in an exact quote id or select a random quote each pass... see perldoc C4::Koha @@ -90,8 +104,7 @@ if ( $patron ) { } $template->param( - koha_news => $all_koha_news, - koha_news_count => $koha_news_count, + koha_news => @all_koha_news, branchcode => $homebranch, display_daily_quote => C4::Context->preference('QuoteOfTheDay'), daily_quote => $quote, -- 2.20.1