3 # Copyright 2000-2002 Katipo Communications
5 # This file is part of Koha.
7 # Koha is free software; you can redistribute it and/or modify it
8 # under the terms of the GNU General Public License as published by
9 # the Free Software Foundation; either version 3 of the License, or
10 # (at your option) any later version.
12 # Koha is distributed in the hope that it will be useful, but
13 # WITHOUT ANY WARRANTY; without even the implied warranty of
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 # GNU General Public License for more details.
17 # You should have received a copy of the GNU General Public License
18 # along with Koha; if not, see <http://www.gnu.org/licenses>.
25 use vars qw(@ISA @EXPORT);
28 # set the version for version checking
31 @EXPORT = qw(getreview savereview updatereview numberofreviews numberofreviewsbybiblionumber
32 getreviews getallreviews approvereview unapprovereview deletereview);
37 C4::Review - Perl Module containing routines for dealing with reviews of items
43 my $review=getreview($biblionumber,$borrowernumber);
44 savereview($biblionumber,$borrowernumber,$review);
45 updatereview($biblionumber,$borrowernumber,$review);
46 my $count=numberofreviews($status);
47 my $count=numberofreviewsbybiblionumber($biblionumber);
48 my $reviews=getreviews($biblionumber, $status);
49 my $reviews=getallreviews($status, [$offset], [$row_count]);
53 Review.pm provides many routines for manipulating reviews.
59 $review = getreview($biblionumber,$borrowernumber);
61 Takes a borrowernumber and a biblionumber and returns the review of that biblio
66 my ( $biblionumber, $borrowernumber ) = @_;
67 my $dbh = C4::Context->dbh;
68 my $query = "SELECT * FROM reviews WHERE biblionumber=? and borrowernumber=?";
69 my $sth = $dbh->prepare($query);
70 $sth->execute( $biblionumber, $borrowernumber );
71 return $sth->fetchrow_hashref();
76 savereview($biblionumber,$borrowernumber, $review);
78 Save a review in the 'reviews' database
83 my ( $biblionumber, $borrowernumber, $review ) = @_;
84 my $dbh = C4::Context->dbh;
85 my $query = "INSERT INTO reviews (borrowernumber,biblionumber,
86 review,approved,datereviewed) VALUES
88 my $sth = $dbh->prepare($query);
89 $sth->execute( $borrowernumber, $biblionumber, $review );
94 updateview($biblionumber,$borrowernumber, $review);
96 Update the review description in the 'reviews' database
101 my ( $biblionumber, $borrowernumber, $review ) = @_;
102 my $dbh = C4::Context->dbh;
103 my $query = "UPDATE reviews SET review=?,datereviewed=now(),approved=0 WHERE borrowernumber=? and biblionumber=?";
104 my $sth = $dbh->prepare($query);
105 $sth->execute( $review, $borrowernumber, $biblionumber );
108 =head2 numberofreviews
110 my $count=numberofreviews( [$status] );
112 Return the number of reviews where in the 'reviews' database : 'approved' = $status
113 (By default $status = 1)
117 sub numberofreviews {
119 my $status = ( defined($param) ? $param : 1 );
120 my $dbh = C4::Context->dbh;
121 my $query = "SELECT count(*) FROM reviews WHERE approved=?";
122 my $sth = $dbh->prepare($query);
123 $sth->execute($status);
124 return $sth->fetchrow;
127 =head2 numberofreviewsbybiblionumber
129 my $count=numberofreviewsbybiblionumber($biblionumber);
131 Return the number of reviews approved for a given biblionumber
135 sub numberofreviewsbybiblionumber {
136 my ($biblionumber) = @_;
137 my $dbh = C4::Context->dbh;
138 my $query = "SELECT count(*) FROM reviews WHERE biblionumber=? and approved=?";
139 my $sth = $dbh->prepare($query);
140 $sth->execute( $biblionumber, 1 );
141 return $sth->fetchrow;
146 my $reviews=getreviews($biblionumber, $status);
148 Return all reviews where in the 'reviews' database :
149 'biblionumber' = $biblionumber and 'approved' = $status
154 my ( $biblionumber, $approved ) = @_;
155 my $dbh = C4::Context->dbh;
156 my $query = "SELECT * FROM reviews WHERE biblionumber=? and approved=? order by datereviewed desc";
157 my $sth = $dbh->prepare($query);
158 $sth->execute( $biblionumber, $approved );
159 return $sth->fetchall_arrayref( {} );
164 my $reviews=getallreviews($status, [$offset], [$row_count]);
166 Return all reviews where in the 'reviews' database : 'approved' = $status
168 If offset and row_count are fiven, it's return all reviews between the
169 $offset position and the ($offset + $row_count) position.
170 (By default : $offset = 0 and $row_count = 20)
175 my ( $status, $offset, $row_count ) = @_;
176 my @params = ( $status, ( $offset ? $offset : 0 ), ( $row_count ? $row_count : 20 ) );
177 my $dbh = C4::Context->dbh;
178 my $query = "SELECT * FROM reviews WHERE approved=? order by datereviewed desc LIMIT ?, ?";
179 my $sth = $dbh->prepare($query);
180 $sth->execute(@params);
181 return $sth->fetchall_arrayref( {} );
186 approvereview($reviewid);
188 Takes a reviewid and marks that review approved
194 my $dbh = C4::Context->dbh();
195 my $query = "UPDATE reviews
198 my $sth = $dbh->prepare($query);
199 $sth->execute( 1, $reviewid );
202 =head2 unapprovereview
204 unapprovereview($reviewid);
206 Takes a reviewid and marks that review as not approved
210 sub unapprovereview {
212 my $dbh = C4::Context->dbh();
213 my $query = "UPDATE reviews
216 my $sth = $dbh->prepare($query);
217 $sth->execute( 0, $reviewid );
222 deletereview($reviewid);
224 Takes a reviewid and deletes it
230 my $dbh = C4::Context->dbh();
231 my $query = "DELETE FROM reviews
233 my $sth = $dbh->prepare($query);
234 $sth->execute($reviewid);