require Exporter;
@ISA = qw(Exporter);
@EXPORT = qw(getreview savereview updatereview numberofreviews numberofreviewsbybiblionumber
- getreviews getallreviews approvereview unapprovereview deletereview);
+ getallreviews approvereview unapprovereview deletereview);
}
=head1 NAME
updatereview($biblionumber,$borrowernumber,$review);
my $count=numberofreviews($status);
my $count=numberofreviewsbybiblionumber($biblionumber);
- my $reviews=getreviews($biblionumber, $status);
my $reviews=getallreviews($status, [$offset], [$row_count]);
=head1 DESCRIPTION
return $sth->fetchrow;
}
-=head2 getreviews
-
- my $reviews=getreviews($biblionumber, $status);
-
-Return all reviews where in the 'reviews' database :
-'biblionumber' = $biblionumber and 'approved' = $status
-
-=cut
-
-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);
- $sth->execute( $biblionumber, $approved );
- return $sth->fetchall_arrayref( {} );
-}
-
=head2 getallreviews
my $reviews=getallreviews($status, [$offset], [$row_count]);
<div id="newcomment"></div>
[% IF ( reviews ) %]
[% FOREACH review IN reviews %]
- [% IF ( review.your_comment ) %]
+ [% IF review.borrowernumber == borrowernumber %]
<div class="commentline yours" id="c[% review.reviewid %]">
[% IF ( review.avatarurl ) %]
<img class="avatar" src="[% review.avatarurl %]" height="80" width="80" alt="" />
[% END %]
- <h5>Your comment</h5>
+ [% IF review.approved %]
+ <h5>Your comment</h5>
+ [% ELSE %]
+ <h5>Your comment (preview, pending approval)</h5>
+ [% END %]
<small>[% review.datereviewed | $KohaDates %]</small>
<p>
[% FILTER html_break %]
[% END %]
</p>
</div> <!-- / .commentline -->
- [% END # / IF review.your_comment %]
+ [% END %]
[% END # / FOREACH reviews %]
[% ELSE %]
<p>There are no comments for this item.</p>
[% IF ( loggedinusername ) %]
[% UNLESS ( loggedincommenter ) %]
<div id="addcomment"> <a href="#" onclick="Dopop('/cgi-bin/koha/opac-review.pl?biblionumber=[% biblionumber %]'); return false;">
- Post or edit your comments on this item.
+ Post your comments on this item.
</a></div>
[% END %]
[% ELSE %]
<script type="text/javascript">
//<![CDATA[
$(document).ready(function() {
- var inject_old = function(comment) {
- [% IF ( reviewid ) %]
- [% IF ( cgi_debug ) %]alert(_("injecting OLD comment: ")+comment);[% END %]
- parent.opener.$('#c[% reviewid %] p').prev("small").prev("h5").html(_("Your edited comment (preview, pending approval)"));
- parent.opener.$('#c[% reviewid %] p').html(comment);
- parent.opener.$('#c[% reviewid %] p').append(" <a href=\"#comment\" onclick=\"Dopop(\'/cgi-bin/koha/opac-review.pl?biblionumber=[% biblionumber | uri %]&reviewid=[% reviewid | uri%]\');\">"+_("Edit")+"<\/a>");
- [% END %]
- return 1;
- };
- var inject_new = function(comment) {
- [% IF ( cgi_debug ) %]alert(_("injecting NEW comment: ") +comment);[% END %]
- parent.opener.$('#newcomment').attr("class","yours");
- parent.opener.$('#newcomment').html(
- "<h5>" + _("Your comment (preview, pending approval)") + "<\/h5>" +
- "<p>"+comment+"<\/p>" +
- "<a href=\"#comment\" onclick=\"Dopop(\'/cgi-bin/koha/opac-review.pl?biblionumber=[% biblionumber |uri%]\');\">"+_("Edit")+"<\/a><\/p>"
- );
- parent.opener.$("#addcomment").prev("p").remove();
- parent.opener.$("#addcomment").remove();
- };
- [% IF ( clean_review ) %]
- var clean_review = "[% clean_review |replace("'", "\'") |replace('"', '\"') |replace('\n', '\\n') |replace('\r', '\\r') %]"; // TMPL var must not contain " quotes.
- [% IF ( reviewid ) %]
- inject_old(clean_review);
- [% ELSE %]
- inject_new(clean_review);
- [% END %]
- [% END %]
- [% IF ( WINDOW_CLOSE ) %]
- [% IF ( ERRORS ) %]
- // flash this page, then close. Change warning in template if you change this value.
- setTimeout("window.close()",5000);
- [% ELSE %]
- window.close();
- [% END %]
+ [% IF WINDOW_CLOSE %]
+ window.close();
[% END %]
});
//]]>
use C4::Items;
use C4::Reserves;
use C4::Acquisition;
-use C4::Review;
use C4::Serials; # uses getsubscriptionfrom biblionumber
use C4::Koha;
use C4::Members; # GetMember
use Koha::RecordProcessor;
+
my $query = CGI->new();
my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
{
unless $allow_onshelf_holds;
}
-my $reviews = getreviews( $biblionumber, 1 );
-foreach ( @$reviews ) {
- my $borrower_number_review = $_->{borrowernumber};
- my $borrowerData = GetMember('borrowernumber' =>$borrower_number_review);
- # setting some borrower info into this hash
- $_->{title} = $borrowerData->{'title'};
- $_->{surname} = $borrowerData->{'surname'};
- $_->{firstname} = $borrowerData->{'firstname'};
-}
-
-
$template->param(
RequestOnOpac => C4::Context->preference("RequestOnOpac"),
AllowOnShelfHolds => $allow_onshelf_holds,
norequests => $norequests,
ISBD => $res,
biblionumber => $biblionumber,
- reviews => $reviews,
);
#Search for title in links
use Koha::RecordProcessor;
use Koha::Virtualshelves;
use Koha::Ratings;
+use Koha::Reviews;
BEGIN {
if (C4::Context->preference('BakerTaylorEnabled')) {
ocoins => GetCOinSBiblio($record),
);
-my $libravatar_enabled = 0;
-if ( C4::Context->preference('ShowReviewer') and C4::Context->preference('ShowReviewerPhoto')) {
- eval {
- require Libravatar::URL;
- Libravatar::URL->import();
- };
- if (!$@ ) {
- $libravatar_enabled = 1;
+my ( $loggedincommenter, $reviews );
+if ( C4::Context->preference('reviewson') ) {
+ $reviews = Koha::Reviews->search(
+ {
+ biblionumber => $biblionumber,
+ -or => { approved => 1, borrowernumber => $borrowernumber }
+ },
+ {
+ order_by => { -desc => 'datereviewed' }
+ }
+ )->unblessed;
+ my $libravatar_enabled = 0;
+ if ( C4::Context->preference('ShowReviewer') and C4::Context->preference('ShowReviewerPhoto') ) {
+ eval {
+ require Libravatar::URL;
+ Libravatar::URL->import();
+ };
+ if ( !$@ ) {
+ $libravatar_enabled = 1;
+ }
}
-}
-
-my $reviews = getreviews( $biblionumber, 1 );
-my $loggedincommenter;
-
-
-
+ for my $review (@$reviews) {
+ my $borrowerData = GetMember( 'borrowernumber' => $review->{borrowernumber} );
+
+ # setting some borrower info into this hash
+ $review->{title} = $borrowerData->{'title'};
+ $review->{surname} = $borrowerData->{'surname'};
+ $review->{firstname} = $borrowerData->{'firstname'};
+ if ( $libravatar_enabled and $borrowerData->{'email'} ) {
+ $review->{avatarurl} = libravatar_url( email => $borrowerData->{'email'}, https => $ENV{HTTPS} );
+ }
+ $review->{userid} = $borrowerData->{'userid'};
+ $review->{cardnumber} = $borrowerData->{'cardnumber'};
-foreach ( @$reviews ) {
- my $borrowerData = GetMember('borrowernumber' => $_->{borrowernumber});
- # setting some borrower info into this hash
- $_->{title} = $borrowerData->{'title'};
- $_->{surname} = $borrowerData->{'surname'};
- $_->{firstname} = $borrowerData->{'firstname'};
- if ($libravatar_enabled and $borrowerData->{'email'}) {
- $_->{avatarurl} = libravatar_url(email => $borrowerData->{'email'}, https => $ENV{HTTPS});
+ if ( $borrowerData->{'borrowernumber'} eq $borrowernumber ) {
+ $review->{your_comment} = 1;
+ $loggedincommenter = 1;
+ }
}
- $_->{userid} = $borrowerData->{'userid'};
- $_->{cardnumber} = $borrowerData->{'cardnumber'};
-
- if ($borrowerData->{'borrowernumber'} eq $borrowernumber) {
- $_->{your_comment} = 1;
- $loggedincommenter = 1;
- }
}
if ( C4::Context->preference("OPACISBD") ) {