X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=C4%2FNewsChannels.pm;h=a01d2798ec3056f8ec3eecd0aa952037dd648045;hb=12a8dfb934bf3819d6581f9df82987475334a302;hp=7c413aa815ddb1305c78e4eaa5e6b379472c26db;hpb=53f15f678f3e64156f9c969b3b019a73e9691cbd;p=koha.git diff --git a/C4/NewsChannels.pm b/C4/NewsChannels.pm index 7c413aa815..a01d2798ec 100644 --- a/C4/NewsChannels.pm +++ b/C4/NewsChannels.pm @@ -20,12 +20,11 @@ package C4::NewsChannels; use Modern::Perl; use C4::Context; -use C4::Dates qw(format_date); +use Koha::DateUtils; -use vars qw($VERSION @ISA @EXPORT); +use vars qw(@ISA @EXPORT); BEGIN { - $VERSION = 3.07.00.049; # set the version for version checking @ISA = qw(Exporter); @EXPORT = qw( &GetNewsToDisplay @@ -61,9 +60,9 @@ sub add_opac_new { if ($href_entry) { my @fields = keys %{$href_entry}; my @values = values %{$href_entry}; - my $field_string = join ',',@fields; + my $field_string = join ',', @fields; $field_string = $field_string // q{}; - my $values_string = '?,' x ($#fields) . '?'; + my $values_string = join(',', map { '?' } @fields); my $dbh = C4::Context->dbh; my $sth = $dbh->prepare("INSERT INTO opac_news ( $field_string ) VALUES ( $values_string )"); $sth->execute(@values); @@ -135,8 +134,8 @@ sub get_opac_new { $sth->execute($idnew); my $data = $sth->fetchrow_hashref; $data->{$data->{'lang'}} = 1 if defined $data->{lang}; - $data->{expirationdate} = format_date($data->{expirationdate}); - $data->{timestamp} = format_date($data->{timestamp}); + $data->{expirationdate} = output_pref({ dt => dt_from_string( $data->{expirationdate} ), dateonly => 1 }) if ( $data->{expirationdate} ); + $data->{timestamp} = output_pref({ dt => dt_from_string( $data->{timestamp} ), dateonly => 1 }) ; return $data; } @@ -146,11 +145,15 @@ sub get_opac_news { my $dbh = C4::Context->dbh; my $query = q{ SELECT opac_news.*, branches.branchname, - timestamp AS newdate + timestamp AS newdate, + borrowers.title AS author_title, + borrowers.firstname AS author_firstname, + borrowers.surname AS author_surname FROM opac_news LEFT JOIN branches ON opac_news.branchcode=branches.branchcode + LEFT JOIN borrowers on borrowers.borrowernumber = opac_news.borrowernumber }; - $query = ' WHERE 1'; + $query .= ' WHERE 1'; if ($lang) { $query .= " AND (opac_news.lang='' OR opac_news.lang=?)"; push @values,$lang; @@ -179,7 +182,7 @@ sub get_opac_news { =head2 GetNewsToDisplay $news = &GetNewsToDisplay($lang,$branch); - C<$news> is a ref to an array which containts + C<$news> is a ref to an array which contains all news with expirationdate > today or expirationdate is null that is applicable for a given branch. @@ -190,16 +193,20 @@ sub GetNewsToDisplay { my $dbh = C4::Context->dbh; # SELECT *,DATE_FORMAT(timestamp, '%d/%m/%Y') AS newdate my $query = q{ - SELECT *,timestamp AS newdate + SELECT opac_news.*,timestamp AS newdate, + borrowers.title AS author_title, + borrowers.firstname AS author_firstname, + borrowers.surname AS author_surname FROM opac_news + LEFT JOIN borrowers on borrowers.borrowernumber = opac_news.borrowernumber WHERE ( expirationdate >= CURRENT_DATE() OR expirationdate IS NULL OR expirationdate = '00-00-0000' ) - AND `timestamp` < CURRENT_DATE()+1 - AND (lang = '' OR lang = ?) - AND (branchcode IS NULL OR branchcode = ?) + AND DATE(timestamp) < DATE_ADD(CURDATE(), INTERVAL 1 DAY) + AND (opac_news.lang = '' OR opac_news.lang = ?) + AND (opac_news.branchcode IS NULL OR opac_news.branchcode = ?) ORDER BY number }; # expirationdate field is NOT in ISO format? # timestamp has HH:mm:ss, CURRENT_DATE generates 00:00:00 @@ -209,7 +216,7 @@ sub GetNewsToDisplay { $sth->execute($lang,$branch); my @results; while ( my $row = $sth->fetchrow_hashref ){ - $row->{newdate} = format_date($row->{newdate}); + $row->{newdate} = output_pref({ dt => dt_from_string( $row->{newdate} ), dateonly => 1 }); push @results, $row; } return \@results;