Browse Source

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 <oleonard@myacpl.org>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
19.05.x
Aleisha Amohia 6 years ago
committed by root
parent
commit
acb455f151
  1. 30
      koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-main.tt
  2. 21
      opac/opac-main.pl

30
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 @@
<div class="main">
<ul class="breadcrumb">
<li><a href="#">Home</a></li>
<li><a href="/cgi-bin/koha/opac-main.pl">Home</a>
[% IF news_item %]
<span class="divider">&rsaquo;</span></li>
<li>[% news_item.title %]</li>
[% END %]
</li>
</ul>
[% IF Koha.Preference( 'opacuserlogin' ) == 1 %]
@ -57,18 +63,32 @@
</form>
[% END %]
[% IF ( koha_news_count ) %]
[% IF ( koha_news ) %]
[% IF single_news_error %]
<div class="alert alert-error">
This news item does not exist.
</div>
[% ELSE %]
<div id="news" class="newscontainer">
[% SET newsdisp = ( Koha.Preference('NewsAuthorDisplay') ) %]
[% FOREACH koha_new IN koha_news %]
<div class="newsitem">
<a name="newsitem[% koha_new.idnew | html %]"></a><h4 class="newsheader">[% koha_new.title | html %]</h4>
<a name="newsitem[% koha_new.idnew | html %]" href="/cgi-bin/koha/opac-main.pl?news_id=[% koha_new.idnew %]"><h4 class="newsheader">[% koha_new.title | html %]</h4></a>
<div class="newsbody">[% koha_new.content | $raw %]</div>
<div class="newsfooter">(published on [% koha_new.newdate | html %][% IF ( (newsdisp == 'opac' || newsdisp == 'both') && koha_new.borrowernumber ) %] by <span class="newsauthor_title">[% koha_new.author_title | html %] </span>[% koha_new.author_firstname | html %] [% koha_new.author_surname | html %][% END %])</div>
<div class="newsfooter">(published on [% koha_new.timestamp | $KohaDates with_hours = 1 | html %][% IF ( (newsdisp == 'opac' || newsdisp == 'both') && koha_new.borrowernumber ) %] by <span class="newsauthor_title">[% koha_new.author_title | html %] </span>[% koha_new.author_firstname | html %] [% koha_new.author_surname | html %][% END %])</div>
</div>
[% END %]
</div>
[% END %]
[% UNLESS news_item %] <!-- If single news item -->
<div id="rssnews-container">
<!-- Logged in users have a branch code or it could be explicitly set -->
<a href="[% OPACBaseURL | url %]/cgi-bin/koha/opac-news-rss.pl?branchcode=[% branchcode | uri %]"><img src="[% interface | html %]/[% theme | html %]/images/feed-icon-16x16.png"></a>
@ -109,6 +129,8 @@
[% IF ( OpacMainUserBlock ) %]<div id="opacmainuserblock">[% OpacMainUserBlock | $raw %]</div>[% END %]
</div> <!-- / .span 7/9 -->
[% END %] <!-- If single news item -->
[% IF ( ( Koha.Preference( 'opacuserlogin' ) == 1 ) || OpacNavRight ) %]
<div class="span3">
[% IF Koha.Preference( 'opacuserlogin' ) == 1 %]

21
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,

Loading…
Cancel
Save