X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;ds=sidebyside;f=tools%2Fkoha-news.pl;h=cf1e2b40e78785b9ec7ca90a0879f11a4ad63b5a;hb=65ae7af277d6f64ef42f961c290ab92768a90df3;hp=3730c10044e13e16c4ce0c5af4a2e0720d54e83c;hpb=157b5a1eb6a530160dc7e6745ff139061cd8302b;p=koha.git diff --git a/tools/koha-news.pl b/tools/koha-news.pl index 3730c10044..cf1e2b40e7 100755 --- a/tools/koha-news.pl +++ b/tools/koha-news.pl @@ -1,28 +1,30 @@ #!/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 # 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 2 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 3 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 CGI; +# use warnings; FIXME - Bug 2505 +use CGI qw ( -utf8 ); use C4::Auth; use C4::Koha; use C4::Context; @@ -31,6 +33,7 @@ use C4::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; @@ -38,14 +41,21 @@ 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'); +my $error_message = $cgi->param('error_message'); + +# 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", + template_name => "tools/koha-news.tt", query => $cgi, type => "intranet", authnotrequired => 0, @@ -54,40 +64,77 @@ my ( $template, $borrowernumber, $cookie ) = get_template_and_user( } ); +# Pass error message if there is one. +$template->param( error_message => $error_message ) if $error_message; + # get lang list my @lang_list; my $tlangs = getTranslatedLanguages() ; + foreach my $language ( @$tlangs ) { - push @lang_list, - { - language => $language->{'rfc4646_subtag'}, - selected => ( $new_detail->{lang} eq $language->{'rfc4646_subtag'} ? 1 : 0 ), - }; + foreach my $sublanguage ( @{$language->{'sublanguages_loop'}} ) { + push @lang_list, + { + language => $sublanguage->{'rfc4646_subtag'}, + selected => ( $new_detail->{lang} eq $sublanguage->{'rfc4646_subtag'} ? 1 : 0 ), + }; + } } -$template->param( lang_list => \@lang_list ); +my $branches = GetBranches; -my $op = $cgi->param('op'); +$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->param($new_detail); + $template->{VARS}->{'new_detail'} = $new_detail; } else { $template->param( op => 'add' ); } } elsif ( $op eq 'add' ) { - add_opac_new( $title, $new, $lang, $expirationdate, $number ); - print $cgi->redirect("/cgi-bin/koha/tools/koha-news.pl"); + if ($title) { + 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"); + } + else { + print $cgi->redirect("/cgi-bin/koha/tools/koha-news.pl?error_message=title_missing"); + } } elsif ( $op eq 'edit' ) { - upd_opac_new( $id, $title, $new, $lang, $expirationdate, $number ); + 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' ) { @@ -98,7 +145,7 @@ elsif ( $op eq 'del' ) { else { - my ( $opac_news_count, $opac_news ) = &get_opac_news( undef, $lang ); + my ( $opac_news_count, $opac_news ) = &get_opac_news( undef, $lang, $branchcode ); foreach my $new ( @$opac_news ) { next unless $new->{'expirationdate'}; @@ -110,13 +157,9 @@ else { } $template->param( - $lang => 1, opac_news => $opac_news, opac_news_count => $opac_news_count, ); } -$template->param( - DHTMLcalendar_dateformat => C4::Dates->DHTMLcalendar(), - dateformat => C4::Context->preference("dateformat"), - ); +$template->param( lang => $lang ); output_html_with_http_headers $cgi, $cookie, $template->output;