View | Details | Raw Unified | Return to bug 22544
Collapse All | Expand All

(-)a/C4/NewsChannels.pm (-39 / +1 lines)
Lines 28-34 BEGIN { Link Here
28
    @ISA = qw(Exporter);
28
    @ISA = qw(Exporter);
29
    @EXPORT = qw(
29
    @EXPORT = qw(
30
        &GetNewsToDisplay
30
        &GetNewsToDisplay
31
        &add_opac_new &upd_opac_new
31
        &add_opac_new
32
    );
32
    );
33
}
33
}
34
34
Lines 71-114 sub add_opac_new { Link Here
71
    return $retval;
71
    return $retval;
72
}
72
}
73
73
74
=head2 upd_opac_new
75
76
    $retval = upd_opac_new($hashref);
77
78
    $hashref should contains all the fields found in opac_news,
79
    including idnew, since it is the key for the SQL UPDATE.
80
81
=cut
82
83
sub upd_opac_new {
84
    my ($href_entry) = @_;
85
    my $retval = 0;
86
87
    if ($href_entry) {
88
        # take the keys of hash entry and make a list, but...
89
        my @fields = keys %{$href_entry};
90
        my @values;
91
        $#values = -1;
92
        my $field_string = q{};
93
        foreach my $field_name (@fields) {
94
            # exclude idnew
95
            if ( $field_name ne 'idnew' ) {
96
                $field_string = $field_string . "$field_name = ?,";
97
                push @values,$href_entry->{$field_name};
98
            }
99
        }
100
        # put idnew at the end, so we know which record to update
101
        push @values,$href_entry->{'idnew'};
102
        chop $field_string; # remove that excess ,
103
104
        my $dbh = C4::Context->dbh;
105
        my $sth = $dbh->prepare("UPDATE opac_news SET $field_string WHERE idnew = ?;");
106
        $sth->execute(@values);
107
        $retval = 1;
108
    }
109
    return $retval;
110
}
111
112
=head2 GetNewsToDisplay
74
=head2 GetNewsToDisplay
113
75
114
    $news = &GetNewsToDisplay($lang,$branch);
76
    $news = &GetNewsToDisplay($lang,$branch);
(-)a/t/db_dependent/NewsChannels.t (-11 / +1 lines)
Lines 6-12 use Koha::DateUtils; Link Here
6
use Koha::Libraries;
6
use Koha::Libraries;
7
use Koha::News;
7
use Koha::News;
8
8
9
use Test::More tests => 9;
9
use Test::More tests => 7;
10
10
11
BEGIN {
11
BEGIN {
12
    use_ok('C4::NewsChannels');
12
    use_ok('C4::NewsChannels');
Lines 125-140 $query = Link Here
125
q{ SELECT idnew from opac_news WHERE timestamp='2000-01-02'; };
125
q{ SELECT idnew from opac_news WHERE timestamp='2000-01-02'; };
126
my ( $idnew3 ) = $dbh->selectrow_array( $query );
126
my ( $idnew3 ) = $dbh->selectrow_array( $query );
127
127
128
# Test upd_opac_new
129
$rv = upd_opac_new();    # intentionally bad parmeters
130
is( $rv, 0, 'Correctly failed on no parameter!' );
131
132
$new2                 = '<p>Update! There is no news!</p>';
133
$href_entry2->{content}   = $new2;
134
$href_entry2->{idnew} = $idnew2;
135
$rv                   = upd_opac_new($href_entry2);
136
is( $rv, 1, 'Successfully updated second dummy news item!' );
137
138
# Test GetNewsToDisplay
128
# Test GetNewsToDisplay
139
my ( $opac_news_count, $arrayref_opac_news ) = GetNewsToDisplay( q{}, 'LIB1' );
129
my ( $opac_news_count, $arrayref_opac_news ) = GetNewsToDisplay( q{}, 'LIB1' );
140
ok( $opac_news_count >= 2, 'Successfully tested GetNewsToDisplay for LIB1!' );
130
ok( $opac_news_count >= 2, 'Successfully tested GetNewsToDisplay for LIB1!' );
(-)a/tools/koha-news.pl (-6 / +5 lines)
Lines 123-131 elsif ( $op eq 'add' ) { Link Here
123
    }
123
    }
124
}
124
}
125
elsif ( $op eq 'edit' ) {
125
elsif ( $op eq 'edit' ) {
126
    upd_opac_new(
126
    my $news_item = Koha::News->find( $id );
127
        {
127
    if ( $news_item ) {
128
            idnew          => $id,
128
        $news_item->set({
129
            title          => $title,
129
            title          => $title,
130
            content        => $content,
130
            content        => $content,
131
            lang           => $lang,
131
            lang           => $lang,
Lines 133-140 elsif ( $op eq 'edit' ) { Link Here
133
            timestamp      => $timestamp,
133
            timestamp      => $timestamp,
134
            number         => $number,
134
            number         => $number,
135
            branchcode     => $branchcode,
135
            branchcode     => $branchcode,
136
        }
136
        })->store;
137
    );
137
    }
138
    print $cgi->redirect("/cgi-bin/koha/tools/koha-news.pl");
138
    print $cgi->redirect("/cgi-bin/koha/tools/koha-news.pl");
139
}
139
}
140
elsif ( $op eq 'del' ) {
140
elsif ( $op eq 'del' ) {
141
- 

Return to bug 22544