[Koha-cvs] CVS: koha/C4 Review.pm,NONE,1.1

Chris Cormack rangi at users.sourceforge.net
Sat Sep 3 02:05:42 CEST 2005


Update of /cvsroot/koha/koha/C4
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29789

Added Files:
	Review.pm 
Log Message:
A work in progress still.
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.



--- NEW FILE ---
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





More information about the Koha-cvs mailing list