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

(-)a/C4/Review.pm (-20 / +1 lines)
Lines 30-36 BEGIN { Link Here
30
    require Exporter;
30
    require Exporter;
31
    @ISA    = qw(Exporter);
31
    @ISA    = qw(Exporter);
32
    @EXPORT = qw(getreview savereview updatereview numberofreviews numberofreviewsbybiblionumber
32
    @EXPORT = qw(getreview savereview updatereview numberofreviews numberofreviewsbybiblionumber
33
      getreviews getallreviews approvereview unapprovereview deletereview);
33
      getallreviews approvereview unapprovereview deletereview);
34
}
34
}
35
35
36
=head1 NAME
36
=head1 NAME
Lines 46-52 C4::Review - Perl Module containing routines for dealing with reviews of items Link Here
46
  updatereview($biblionumber,$borrowernumber,$review);
46
  updatereview($biblionumber,$borrowernumber,$review);
47
  my $count=numberofreviews($status);
47
  my $count=numberofreviews($status);
48
  my $count=numberofreviewsbybiblionumber($biblionumber);
48
  my $count=numberofreviewsbybiblionumber($biblionumber);
49
  my $reviews=getreviews($biblionumber, $status);
50
  my $reviews=getallreviews($status, [$offset], [$row_count]);
49
  my $reviews=getallreviews($status, [$offset], [$row_count]);
51
50
52
=head1 DESCRIPTION
51
=head1 DESCRIPTION
Lines 142-165 sub numberofreviewsbybiblionumber { Link Here
142
    return $sth->fetchrow;
141
    return $sth->fetchrow;
143
}
142
}
144
143
145
=head2 getreviews
146
147
  my $reviews=getreviews($biblionumber, $status);
148
149
Return all reviews where in the 'reviews' database :
150
'biblionumber' = $biblionumber and 'approved' = $status
151
152
=cut
153
154
sub getreviews {
155
    my ( $biblionumber, $approved ) = @_;
156
    my $dbh   = C4::Context->dbh;
157
    my $query = "SELECT * FROM reviews WHERE biblionumber=? and approved=? order by datereviewed desc";
158
    my $sth   = $dbh->prepare($query);
159
    $sth->execute( $biblionumber, $approved );
160
    return $sth->fetchall_arrayref( {} );
161
}
162
163
=head2 getallreviews
144
=head2 getallreviews
164
145
165
  my $reviews=getallreviews($status, [$offset], [$row_count]);
146
  my $reviews=getallreviews($status, [$offset], [$row_count]);
(-)a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-detail.tt (-4 / +8 lines)
Lines 892-903 Link Here
892
                            <div id="newcomment"></div>
892
                            <div id="newcomment"></div>
893
                                [% IF ( reviews ) %]
893
                                [% IF ( reviews ) %]
894
                                    [% FOREACH review IN reviews %]
894
                                    [% FOREACH review IN reviews %]
895
                                        [% IF ( review.your_comment ) %]
895
                                        [% IF review.borrowernumber == borrowernumber %]
896
                                            <div class="commentline yours" id="c[% review.reviewid %]">
896
                                            <div class="commentline yours" id="c[% review.reviewid %]">
897
                                                [% IF ( review.avatarurl ) %]
897
                                                [% IF ( review.avatarurl ) %]
898
                                                    <img class="avatar" src="[% review.avatarurl %]" height="80" width="80" alt="" />
898
                                                    <img class="avatar" src="[% review.avatarurl %]" height="80" width="80" alt="" />
899
                                                [% END %]
899
                                                [% END %]
900
                                                <h5>Your comment</h5>
900
                                                [% IF review.approved %]
901
                                                    <h5>Your comment</h5>
902
                                                [% ELSE %]
903
                                                    <h5>Your comment (preview, pending approval)</h5>
904
                                                [% END %]
901
                                                <small>[% review.datereviewed | $KohaDates %]</small>
905
                                                <small>[% review.datereviewed | $KohaDates %]</small>
902
                                                <p>
906
                                                <p>
903
                                                    [% FILTER html_break %]
907
                                                    [% FILTER html_break %]
Lines 934-940 Link Here
934
                                                  [% END %]
938
                                                  [% END %]
935
                                                </p>
939
                                                </p>
936
                                            </div> <!-- / .commentline -->
940
                                            </div> <!-- / .commentline -->
937
                                        [% END # / IF review.your_comment %]
941
                                        [% END %]
938
                                    [% END # / FOREACH reviews %]
942
                                    [% END # / FOREACH reviews %]
939
                                [% ELSE %]
943
                                [% ELSE %]
940
                                    <p>There are no comments for this item.</p>
944
                                    <p>There are no comments for this item.</p>
Lines 943-949 Link Here
943
                                [% IF ( loggedinusername ) %]
947
                                [% IF ( loggedinusername ) %]
944
                                    [% UNLESS ( loggedincommenter ) %]
948
                                    [% UNLESS ( loggedincommenter ) %]
945
                                       <div id="addcomment"> <a href="#" onclick="Dopop('/cgi-bin/koha/opac-review.pl?biblionumber=[% biblionumber %]'); return false;">
949
                                       <div id="addcomment"> <a href="#" onclick="Dopop('/cgi-bin/koha/opac-review.pl?biblionumber=[% biblionumber %]'); return false;">
946
                                            Post or edit your comments on this item.
950
                                            Post your comments on this item.
947
                                        </a></div>
951
                                        </a></div>
948
                                    [% END %]
952
                                    [% END %]
949
                                [% ELSE %]
953
                                [% ELSE %]
(-)a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-review.tt (-35 / +2 lines)
Lines 61-101 Link Here
61
<script type="text/javascript">
61
<script type="text/javascript">
62
    //<![CDATA[
62
    //<![CDATA[
63
         $(document).ready(function() {
63
         $(document).ready(function() {
64
            var inject_old = function(comment) {
64
            [% IF WINDOW_CLOSE %]
65
                [% IF ( reviewid ) %]
65
                window.close();
66
                [% IF ( cgi_debug ) %]alert(_("injecting OLD comment: ")+comment);[% END %]
67
                parent.opener.$('#c[% reviewid %] p').prev("small").prev("h5").html(_("Your edited comment (preview, pending approval)"));
68
                parent.opener.$('#c[% reviewid %] p').html(comment);
69
                parent.opener.$('#c[% reviewid %] p').append(" <a href=\"#comment\" onclick=\"Dopop(\'/cgi-bin/koha/opac-review.pl?biblionumber=[% biblionumber | uri %]&amp;reviewid=[% reviewid | uri%]\');\">"+_("Edit")+"<\/a>");
70
                [% END %]
71
                return 1;
72
            };
73
            var inject_new = function(comment) {
74
                [% IF ( cgi_debug ) %]alert(_("injecting NEW comment: ") +comment);[% END %]
75
                parent.opener.$('#newcomment').attr("class","yours");
76
                parent.opener.$('#newcomment').html(
77
                    "<h5>" + _("Your comment (preview, pending approval)") + "<\/h5>" +
78
                    "<p>"+comment+"<\/p>" +
79
                    "<a href=\"#comment\" onclick=\"Dopop(\'/cgi-bin/koha/opac-review.pl?biblionumber=[% biblionumber |uri%]\');\">"+_("Edit")+"<\/a><\/p>"
80
                );
81
                parent.opener.$("#addcomment").prev("p").remove();
82
                parent.opener.$("#addcomment").remove();
83
            };
84
            [% IF ( clean_review ) %]
85
                var clean_review = "[% clean_review |replace("'", "\'") |replace('"', '\"') |replace('\n', '\\n') |replace('\r', '\\r') %]";        // TMPL var must not contain " quotes.
86
                [% IF ( reviewid ) %]
87
                inject_old(clean_review);
88
                [% ELSE %]
89
                inject_new(clean_review);
90
                [% END %]
91
            [% END %]
92
            [% IF ( WINDOW_CLOSE ) %]
93
                [% IF ( ERRORS ) %]
94
                    // flash this page, then close.  Change warning in template if you change this value.
95
                    setTimeout("window.close()",5000);
96
                [% ELSE %]
97
                    window.close();
98
                [% END %]
99
            [% END %]
66
            [% END %]
100
        });
67
        });
101
    //]]>
68
    //]]>
(-)a/opac/opac-ISBDdetail.pl (-13 / +1 lines)
Lines 51-61 use C4::Biblio; Link Here
51
use C4::Items;
51
use C4::Items;
52
use C4::Reserves;
52
use C4::Reserves;
53
use C4::Acquisition;
53
use C4::Acquisition;
54
use C4::Review;
55
use C4::Serials;    # uses getsubscriptionfrom biblionumber
54
use C4::Serials;    # uses getsubscriptionfrom biblionumber
56
use C4::Koha;
55
use C4::Koha;
57
use C4::Members;    # GetMember
56
use C4::Members;    # GetMember
58
57
58
59
my $query = CGI->new();
59
my $query = CGI->new();
60
my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
60
my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
61
    {
61
    {
Lines 163-186 for my $itm (@items) { Link Here
163
      unless $allow_onshelf_holds;
163
      unless $allow_onshelf_holds;
164
}
164
}
165
165
166
my $reviews = getreviews( $biblionumber, 1 );
167
foreach ( @$reviews ) {
168
    my $borrower_number_review = $_->{borrowernumber};
169
    my $borrowerData           = GetMember('borrowernumber' =>$borrower_number_review);
170
    # setting some borrower info into this hash
171
    $_->{title}     = $borrowerData->{'title'};
172
    $_->{surname}   = $borrowerData->{'surname'};
173
    $_->{firstname} = $borrowerData->{'firstname'};
174
}
175
176
177
$template->param(
166
$template->param(
178
    RequestOnOpac       => C4::Context->preference("RequestOnOpac"),
167
    RequestOnOpac       => C4::Context->preference("RequestOnOpac"),
179
    AllowOnShelfHolds   => $allow_onshelf_holds,
168
    AllowOnShelfHolds   => $allow_onshelf_holds,
180
    norequests   => $norequests,
169
    norequests   => $norequests,
181
    ISBD         => $res,
170
    ISBD         => $res,
182
    biblionumber => $biblionumber,
171
    biblionumber => $biblionumber,
183
    reviews             => $reviews,
184
);
172
);
185
173
186
#Search for title in links
174
#Search for title in links
(-)a/opac/opac-detail.pl (-32 / +37 lines)
Lines 53-58 use C4::HTML5Media; Link Here
53
use C4::CourseReserves qw(GetItemCourseReservesInfo);
53
use C4::CourseReserves qw(GetItemCourseReservesInfo);
54
54
55
use Koha::Virtualshelves;
55
use Koha::Virtualshelves;
56
use Koha::Reviews;
56
57
57
BEGIN {
58
BEGIN {
58
	if (C4::Context->preference('BakerTaylorEnabled')) {
59
	if (C4::Context->preference('BakerTaylorEnabled')) {
Lines 793-834 $template->param( Link Here
793
    ocoins => GetCOinSBiblio($record),
794
    ocoins => GetCOinSBiblio($record),
794
);
795
);
795
796
796
my $libravatar_enabled = 0;
797
my ( $loggedincommenter, $reviews );
797
if ( C4::Context->preference('ShowReviewer') and C4::Context->preference('ShowReviewerPhoto')) {
798
if ( C4::Context->preference('reviewson') ) {
798
    eval {
799
    $reviews = Koha::Reviews->search(
799
        require Libravatar::URL;
800
        {
800
        Libravatar::URL->import();
801
            biblionumber => $biblionumber,
801
    };
802
            -or => { approved => 1, borrowernumber => $borrowernumber }
802
    if (!$@ ) {
803
        },
803
        $libravatar_enabled = 1;
804
        {
805
            order_by => { -desc => 'datereviewed' }
806
        }
807
    )->unblessed;
808
    my $libravatar_enabled = 0;
809
    if ( C4::Context->preference('ShowReviewer') and C4::Context->preference('ShowReviewerPhoto') ) {
810
        eval {
811
            require Libravatar::URL;
812
            Libravatar::URL->import();
813
        };
814
        if ( !$@ ) {
815
            $libravatar_enabled = 1;
816
        }
804
    }
817
    }
805
}
818
    for my $review (@$reviews) {
806
819
        my $borrowerData = GetMember( 'borrowernumber' => $review->{borrowernumber} );
807
my $reviews = getreviews( $biblionumber, 1 );
820
808
my $loggedincommenter;
821
        # setting some borrower info into this hash
809
822
        $review->{title}     = $borrowerData->{'title'};
810
823
        $review->{surname}   = $borrowerData->{'surname'};
811
824
        $review->{firstname} = $borrowerData->{'firstname'};
825
        if ( $libravatar_enabled and $borrowerData->{'email'} ) {
826
            $review->{avatarurl} = libravatar_url( email => $borrowerData->{'email'}, https => $ENV{HTTPS} );
827
        }
828
        $review->{userid}     = $borrowerData->{'userid'};
829
        $review->{cardnumber} = $borrowerData->{'cardnumber'};
812
830
813
foreach ( @$reviews ) {
831
        if ( $borrowerData->{'borrowernumber'} eq $borrowernumber ) {
814
    my $borrowerData   = GetMember('borrowernumber' => $_->{borrowernumber});
832
            $review->{your_comment} = 1;
815
    # setting some borrower info into this hash
833
            $loggedincommenter = 1;
816
    $_->{title}     = $borrowerData->{'title'};
834
        }
817
    $_->{surname}   = $borrowerData->{'surname'};
818
    $_->{firstname} = $borrowerData->{'firstname'};
819
    if ($libravatar_enabled and $borrowerData->{'email'}) {
820
        $_->{avatarurl} = libravatar_url(email => $borrowerData->{'email'}, https => $ENV{HTTPS});
821
    }
835
    }
822
    $_->{userid}    = $borrowerData->{'userid'};
823
    $_->{cardnumber}    = $borrowerData->{'cardnumber'};
824
825
    if ($borrowerData->{'borrowernumber'} eq $borrowernumber) {
826
		$_->{your_comment} = 1;
827
		$loggedincommenter = 1;
828
	}
829
}
836
}
830
837
831
832
if(C4::Context->preference("ISBD")) {
838
if(C4::Context->preference("ISBD")) {
833
	$template->param(ISBD => 1);
839
	$template->param(ISBD => 1);
834
}
840
}
835
- 

Return to bug 15839