From b1b12891e2a46ade03dca304076a21cf773bf0c6 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 --- .../opac-tmpl/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 892840e..b1b6ef6 100644 --- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-main.tt +++ b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-main.tt @@ -1,4 +1,5 @@ [% USE Koha %] +[% USE KohaDates %] [% USE Branches %] [% USE Price %] [% INCLUDE 'doc-head-open.inc' %] @@ -11,7 +12,12 @@
[% IF Koha.Preference( 'opacuserlogin' ) == 1 %] @@ -56,18 +62,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 %]

+

[% koha_new.title %]

[% koha_new.content %]
-
(published on [% koha_new.newdate %][% IF ( (newsdisp == 'opac' || newsdisp == 'both') && koha_new.borrowernumber ) %] by [% koha_new.author_title %] [% koha_new.author_firstname %] [% koha_new.author_surname %][% END %])
+
(published on [% koha_new.timestamp | $KohaDates with_hours = 1 %][% IF ( (newsdisp == 'opac' || newsdisp == 'both') && koha_new.borrowernumber ) %] by [% koha_new.author_title %] [% koha_new.author_firstname %] [% koha_new.author_surname %][% END %])
[% END %]
+ + [% END %] + + [% UNLESS news_item %] +
@@ -108,6 +128,8 @@ [% IF ( OpacMainUserBlock ) %]
[% OpacMainUserBlock %]
[% 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 2398b6a..9b620cf 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.1.4