A work in progress still.
authorrangi <rangi>
Sat, 3 Sep 2005 00:05:40 +0000 (00:05 +0000)
committerrangi <rangi>
Sat, 3 Sep 2005 00:05:40 +0000 (00:05 +0000)
This module is for dealing with user submitted reviews of items
Currently it allows (with some scripts) a user to review any item on their reading record.
The review is marked unvetted, and a librarian must vette and approve the review before it can show to the public

The scripts to add/edit a review, and to display them for the opac are done.
The script to display a list of reviews waiting vetting for the librarians has also been done.

C4/Review.pm [new file with mode: 0644]

diff --git a/C4/Review.pm b/C4/Review.pm
new file mode 100644 (file)
index 0000000..1522a11
--- /dev/null
@@ -0,0 +1,152 @@
+package C4::Review;
+
+# Copyright 2000-2002 Katipo Communications
+#
+# 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 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
+
+use strict;
+require Exporter;
+use C4::Context;
+
+use vars qw($VERSION @ISA @EXPORT);
+
+$VERSION = 0.01;
+
+=head1 NAME
+
+C4::Review - Perl Module containing routines for dealing with reviews of items
+
+=head1 SYNOPSIS
+
+  use C4::Review;
+
+
+  my $review=getreview($biblionumber,$borrowernumber);
+  savereview($biblionumber,$borrowernumber,$review);
+  updatereview($biblionumber,$borrowernumber,$review);
+  my $count=numberofreviews($biblionumber);
+  my $reviews=getreviews($biblionumber);
+  my $reviews=getallreviews($status);
+
+=head1 DESCRIPTION
+
+Review.pm provides many routines for manipulating reviews.
+
+=head1 FUNCTIONS
+
+=over 2
+
+=cut
+
+@ISA = qw(Exporter);
+@EXPORT = qw(getreview savereview updatereview numberofreviews
+    getreviews getallreviews                   );
+
+use vars qw();
+
+my $DEBUG = 0;
+
+=head2 getreview
+
+  $review = getreview($biblionumber,$borrowernumber);
+
+Takes a borrowernumber and a biblionumber and returns the review of that biblio
+
+
+=cut
+
+sub getreview {
+    my ($biblionumber,$borrowernumber) = @_;
+    my $dbh=C4::Context->dbh;
+    my $query="SELECT * FROM reviews WHERE biblionumber=? and borrowernumber=?";
+    my $sth=$dbh->prepare($query);
+    $sth->execute($biblionumber,$borrowernumber);
+    my $review = $sth->fetchrow_hashref();
+    $sth->finish();
+    return $review;
+    }
+
+sub savereview {
+    my ($biblionumber,$borrowernumber,$review) = @_;
+    my $dbh=C4::Context->dbh;
+    my $query="INSERT INTO reviews (borrowernumber,biblionumber,
+       review,approved,datereviewed) VALUES 
+  (?,?,?,?,now())";
+    my $sth=$dbh->prepare($query);
+    $sth->execute($borrowernumber,$biblionumber,$review,0);
+    $sth->finish();
+    }
+
+sub updatereview {
+    my ($biblionumber,$borrowernumber,$review) = @_;
+    my $dbh=C4::Context->dbh;
+    my $query="UPDATE reviews SET review=?,datereviewed=now(),approved=?
+  WHERE borrowernumber=? and biblionumber=?";
+    my $sth=$dbh->prepare($query);
+    $sth->execute($review,0,$borrowernumber,$biblionumber);
+    $sth->finish();
+    
+    }
+
+sub numberofreviews {
+    my ($biblionumber)=@_;
+    my $dbh=C4::Context->dbh;
+    my $query="SELECT count(*) FROM reviews WHERE biblionumber=? and approved=?";
+    my $sth=$dbh->prepare($query);
+    $sth->execute($biblionumber,1);
+    my $count=$sth->fetchrow_hashref;
+    
+    $sth->finish();
+    return ($count->{'count(*)'});
+}
+
+sub getreviews {
+    my ($biblionumber,$approved)=@_;
+    my $dbh=C4::Context->dbh;
+    my $query="SELECT * FROM reviews WHERE biblionumber=? and approved=? order by datereviewed desc";
+    my $sth=$dbh->prepare($query) || warn $dbh->err_str;
+    $sth->execute($biblionumber,$approved);
+    my @results;
+    while (my $data=$sth->fetchrow_hashref()){
+       push @results,$data;
+       }
+    $sth->finish();
+    return(\@results);
+}
+
+sub getallreviews {
+    my ($status) =@_;
+    my $dbh=C4::Context->dbh;
+    my $query="SELECT * FROM reviews WHERE approved=? order by datereviewed desc";
+    my $sth=$dbh->prepare($query);
+    $sth->execute($status);
+    my @results;
+    while (my $data=$sth->fetchrow_hashref()){
+       push @results,$data;
+       }
+    $sth->finish();
+    return(\@results);
+}    
+1;
+__END__
+
+=back
+
+=head1 AUTHOR
+
+Koha Team
+
+=cut