X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=blobdiff_plain;f=tools%2Fkoha-news.pl;h=aec9486c51f62acf862043f71ea04550b6988741;hb=dd25f1fa10d2f01b559a46687055d74ac6487da0;hp=605a86bca6ee801635af6683b7b798969df48763;hpb=5b41a8e2622f5e921b9061646f3155ce5352bfdc;p=koha_fer diff --git a/tools/koha-news.pl b/tools/koha-news.pl index 605a86bca6..aec9486c51 100755 --- a/tools/koha-news.pl +++ b/tools/koha-news.pl @@ -1,98 +1,152 @@ #!/usr/bin/perl +# This file is part of Koha. +# # Script to manage the opac news. # written 11/04 -# Castañeda, Carlos Sebastian - seba3c@yahoo.com.ar - Physics Library UNLP Argentina +# Casta�eda, Carlos Sebastian - seba3c@yahoo.com.ar - Physics Library UNLP Argentina # Modified to include news to KOHA intranet - tgarip@neu.edu.tr NEU library -Cyprus # Copyright 2000-2002 Katipo Communications +# Copyright (C) 2013 Mark Tompsett # -# This file is part of Koha. +# 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 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 2 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. # -# 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, write to the Free Software Foundation, Inc., 59 Temple Place, -# Suite 330, Boston, MA 02111-1307 USA +# You should have received a copy of the GNU General Public License +# along with Koha; if not, see . use strict; +# use warnings; FIXME - Bug 2505 use CGI; - use C4::Auth; use C4::Koha; use C4::Context; +use C4::Dates qw(format_date_in_iso); use C4::Output; -use C4::Interface::CGI::Output; use C4::NewsChannels; - +use C4::Languages qw(getTranslatedLanguages); +use Date::Calc qw/Date_to_Days Today/; +use C4::Branch qw/GetBranches/; my $cgi = new CGI; -my $id = $cgi->param('id'); -my $title = $cgi->param('title'); -my $new = $cgi->param('new'); -my $lang = $cgi->param('lang'); +my $id = $cgi->param('id'); +my $title = $cgi->param('title'); +my $new = $cgi->param('new'); +my $expirationdate = format_date_in_iso($cgi->param('expirationdate')); +my $timestamp = format_date_in_iso($cgi->param('timestamp')); +my $number = $cgi->param('number'); +my $lang = $cgi->param('lang'); +my $branchcode = $cgi->param('branch'); +# Foreign Key constraints work with NULL, not '' +# NULL = All branches. +$branchcode = undef if (defined($branchcode) && $branchcode eq ''); + my $new_detail = get_opac_new($id); -my ($template, $borrowernumber, $cookie) - = get_template_and_user({template_name => "tools/koha-news.tmpl", - query => $cgi, - type => "intranet", - authnotrequired => 0, - flagsrequired => {management => 1}, - debug => 1, - }); +my ( $template, $borrowernumber, $cookie ) = get_template_and_user( + { + template_name => "tools/koha-news.tmpl", + query => $cgi, + type => "intranet", + authnotrequired => 0, + flagsrequired => { tools => 'edit_news' }, + debug => 1, + } +); # get lang list my @lang_list; - -foreach my $language (getalllanguages()) { - push @lang_list, { language => $language, - selected => ($new_detail->{lang} eq $language?1:0), - }; +my $tlangs = getTranslatedLanguages() ; +foreach my $language ( @$tlangs ) { + push @lang_list, + { + language => $language->{'rfc4646_subtag'}, + selected => ( $new_detail->{lang} eq $language->{'rfc4646_subtag'} ? 1 : 0 ), + }; } -$template->param(lang_list => \@lang_list); - -my $op = $cgi->param('op'); - -if ($op eq 'add_form') { - $template->param(add_form => 1); - if ($id) { - $template->param(op => 'edit'); - $template->param($new_detail); - $template->param(id => $new_detail->{'idnew'}); - } else { - $template->param(op => 'add'); - } - -} elsif ($op eq 'add') { - - add_opac_new($title, $new, $lang); - print $cgi->redirect('/cgi-bin/koha/tools/koha-news.pl'); - -} elsif ($op eq 'edit') { - - upd_opac_new($id, $title, $new, $lang); - print $cgi->redirect('/cgi-bin/koha/tools/koha-news.pl'); - -} elsif ($op eq 'del') { - my @ids = $cgi->param('ids'); - del_opac_new(join ",", @ids); - print $cgi->redirect('/cgi-bin/koha/tools/koha-news.pl'); - -} else { - - my ($opac_news_count, $opac_news) = &get_opac_news(undef, $lang); - $template->param($lang => 1); - $template->param(opac_news => $opac_news); - $template->param(opac_news_count => $opac_news_count); +my $branches = GetBranches; + +$template->param( lang_list => \@lang_list, + branch_list => $branches, + branchcode => $branchcode ); + +my $op = $cgi->param('op') // ''; + +if ( $op eq 'add_form' ) { + $template->param( add_form => 1 ); + if ($id) { + if($new_detail->{lang} eq "slip"){ $template->param( slip => 1); } + $template->param( + op => 'edit', + id => $new_detail->{'idnew'} + ); + $template->{VARS}->{'new_detail'} = $new_detail; + } + else { + $template->param( op => 'add' ); + } +} +elsif ( $op eq 'add' ) { + add_opac_new( + { + title => $title, + new => $new, + lang => $lang, + expirationdate => $expirationdate, + timestamp => $timestamp, + number => $number, + branchcode => $branchcode, + } + ); + print $cgi->redirect("/cgi-bin/koha/tools/koha-news.pl"); +} +elsif ( $op eq 'edit' ) { + upd_opac_new( + { + idnew => $id, + title => $title, + new => $new, + lang => $lang, + expirationdate => $expirationdate, + timestamp => $timestamp, + number => $number, + branchcode => $branchcode, + } + ); + print $cgi->redirect("/cgi-bin/koha/tools/koha-news.pl"); +} +elsif ( $op eq 'del' ) { + my @ids = $cgi->param('ids'); + del_opac_new( join ",", @ids ); + print $cgi->redirect("/cgi-bin/koha/tools/koha-news.pl"); } +else { + + my ( $opac_news_count, $opac_news ) = &get_opac_news( undef, $lang, $branchcode ); + + foreach my $new ( @$opac_news ) { + next unless $new->{'expirationdate'}; + #$new->{'expirationdate'}=format_date_in_iso($new->{'expirationdate'}); + my @date = split (/-/,$new->{'expirationdate'}); + if ($date[0]*$date[1]*$date[2]>0 && Date_to_Days( @date ) < Date_to_Days(&Today) ){ + $new->{'expired'} = 1; + } + } + + $template->param( + opac_news => $opac_news, + opac_news_count => $opac_news_count, + ); +} +$template->param( lang => $lang ); output_html_with_http_headers $cgi, $cookie, $template->output;