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

(-)a/C4/Review.pm (-20 / +1 lines)
Lines 28-34 BEGIN { Link Here
28
    require Exporter;
28
    require Exporter;
29
    @ISA    = qw(Exporter);
29
    @ISA    = qw(Exporter);
30
    @EXPORT = qw(getreview savereview updatereview numberofreviews numberofreviewsbybiblionumber
30
    @EXPORT = qw(getreview savereview updatereview numberofreviews numberofreviewsbybiblionumber
31
      getreviews getallreviews approvereview unapprovereview deletereview);
31
      getallreviews approvereview unapprovereview deletereview);
32
}
32
}
33
33
34
=head1 NAME
34
=head1 NAME
Lines 44-50 C4::Review - Perl Module containing routines for dealing with reviews of items Link Here
44
  updatereview($biblionumber,$borrowernumber,$review);
44
  updatereview($biblionumber,$borrowernumber,$review);
45
  my $count=numberofreviews($status);
45
  my $count=numberofreviews($status);
46
  my $count=numberofreviewsbybiblionumber($biblionumber);
46
  my $count=numberofreviewsbybiblionumber($biblionumber);
47
  my $reviews=getreviews($biblionumber, $status);
48
  my $reviews=getallreviews($status, [$offset], [$row_count]);
47
  my $reviews=getallreviews($status, [$offset], [$row_count]);
49
48
50
=head1 DESCRIPTION
49
=head1 DESCRIPTION
Lines 140-163 sub numberofreviewsbybiblionumber { Link Here
140
    return $sth->fetchrow;
139
    return $sth->fetchrow;
141
}
140
}
142
141
143
=head2 getreviews
144
145
  my $reviews=getreviews($biblionumber, $status);
146
147
Return all reviews where in the 'reviews' database :
148
'biblionumber' = $biblionumber and 'approved' = $status
149
150
=cut
151
152
sub getreviews {
153
    my ( $biblionumber, $approved ) = @_;
154
    my $dbh   = C4::Context->dbh;
155
    my $query = "SELECT * FROM reviews WHERE biblionumber=? and approved=? order by datereviewed desc";
156
    my $sth   = $dbh->prepare($query);
157
    $sth->execute( $biblionumber, $approved );
158
    return $sth->fetchall_arrayref( {} );
159
}
160
161
=head2 getallreviews
142
=head2 getallreviews
162
143
163
  my $reviews=getallreviews($status, [$offset], [$row_count]);
144
  my $reviews=getallreviews($status, [$offset], [$row_count]);
(-)a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-detail.tt (-4 / +8 lines)
Lines 888-899 Link Here
888
                            <div id="newcomment"></div>
888
                            <div id="newcomment"></div>
889
                                [% IF ( reviews ) %]
889
                                [% IF ( reviews ) %]
890
                                    [% FOREACH review IN reviews %]
890
                                    [% FOREACH review IN reviews %]
891
                                        [% IF ( review.your_comment ) %]
891
                                        [% IF review.borrowernumber == borrowernumber %]
892
                                            <div class="commentline yours" id="c[% review.reviewid %]">
892
                                            <div class="commentline yours" id="c[% review.reviewid %]">
893
                                                [% IF ( review.avatarurl ) %]
893
                                                [% IF ( review.avatarurl ) %]
894
                                                    <img class="avatar" src="[% review.avatarurl %]" height="80" width="80" alt="" />
894
                                                    <img class="avatar" src="[% review.avatarurl %]" height="80" width="80" alt="" />
895
                                                [% END %]
895
                                                [% END %]
896
                                                <h5>Your comment</h5>
896
                                                [% IF review.approved %]
897
                                                    <h5>Your comment</h5>
898
                                                [% ELSE %]
899
                                                    <h5>Your comment (preview, pending approval)</h5>
900
                                                [% END %]
897
                                                <small>[% review.datereviewed | $KohaDates %]</small>
901
                                                <small>[% review.datereviewed | $KohaDates %]</small>
898
                                                <p>
902
                                                <p>
899
                                                    [% FILTER html_break %]
903
                                                    [% FILTER html_break %]
Lines 930-936 Link Here
930
                                                  [% END %]
934
                                                  [% END %]
931
                                                </p>
935
                                                </p>
932
                                            </div> <!-- / .commentline -->
936
                                            </div> <!-- / .commentline -->
933
                                        [% END # / IF review.your_comment %]
937
                                        [% END %]
934
                                    [% END # / FOREACH reviews %]
938
                                    [% END # / FOREACH reviews %]
935
                                [% ELSE %]
939
                                [% ELSE %]
936
                                    <p>There are no comments for this item.</p>
940
                                    <p>There are no comments for this item.</p>
Lines 939-945 Link Here
939
                                [% IF ( loggedinusername ) %]
943
                                [% IF ( loggedinusername ) %]
940
                                    [% UNLESS ( loggedincommenter ) %]
944
                                    [% UNLESS ( loggedincommenter ) %]
941
                                       <div id="addcomment"> <a href="#" onclick="Dopop('/cgi-bin/koha/opac-review.pl?biblionumber=[% biblionumber %]'); return false;">
945
                                       <div id="addcomment"> <a href="#" onclick="Dopop('/cgi-bin/koha/opac-review.pl?biblionumber=[% biblionumber %]'); return false;">
942
                                            Post or edit your comments on this item.
946
                                            Post your comments on this item.
943
                                        </a></div>
947
                                        </a></div>
944
                                    [% END %]
948
                                    [% END %]
945
                                [% ELSE %]
949
                                [% 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 (-31 / +37 lines)
Lines 52-57 use C4::HTML5Media; Link Here
52
use C4::CourseReserves qw(GetItemCourseReservesInfo);
52
use C4::CourseReserves qw(GetItemCourseReservesInfo);
53
53
54
use Koha::Virtualshelves;
54
use Koha::Virtualshelves;
55
use Koha::Reviews;
55
56
56
BEGIN {
57
BEGIN {
57
	if (C4::Context->preference('BakerTaylorEnabled')) {
58
	if (C4::Context->preference('BakerTaylorEnabled')) {
Lines 789-827 $template->param( Link Here
789
    ocoins => GetCOinSBiblio($record),
790
    ocoins => GetCOinSBiblio($record),
790
);
791
);
791
792
792
my $libravatar_enabled = 0;
793
my ( $loggedincommenter, $reviews );
793
if ( C4::Context->preference('ShowReviewer') and C4::Context->preference('ShowReviewerPhoto')) {
794
if ( C4::Context->preference('reviewson') ) {
794
    eval {
795
    $reviews = Koha::Reviews->search(
795
        require Libravatar::URL;
796
        {
796
        Libravatar::URL->import();
797
            biblionumber => $biblionumber,
797
    };
798
            -or => { approved => 1, borrowernumber => $borrowernumber }
798
    if (!$@ ) {
799
        },
799
        $libravatar_enabled = 1;
800
        {
801
            order_by => { -desc => 'datereviewed' }
802
        }
803
    )->unblessed;
804
    my $libravatar_enabled = 0;
805
    if ( C4::Context->preference('ShowReviewer') and C4::Context->preference('ShowReviewerPhoto') ) {
806
        eval {
807
            require Libravatar::URL;
808
            Libravatar::URL->import();
809
        };
810
        if ( !$@ ) {
811
            $libravatar_enabled = 1;
812
        }
800
    }
813
    }
801
}
814
    for my $review (@$reviews) {
802
815
        my $borrowerData = GetMember( 'borrowernumber' => $review->{borrowernumber} );
803
my $reviews = getreviews( $biblionumber, 1 );
816
804
my $loggedincommenter;
817
        # setting some borrower info into this hash
805
818
        $review->{title}     = $borrowerData->{'title'};
806
819
        $review->{surname}   = $borrowerData->{'surname'};
807
820
        $review->{firstname} = $borrowerData->{'firstname'};
821
        if ( $libravatar_enabled and $borrowerData->{'email'} ) {
822
            $review->{avatarurl} = libravatar_url( email => $borrowerData->{'email'}, https => $ENV{HTTPS} );
823
        }
824
        $review->{userid}     = $borrowerData->{'userid'};
825
        $review->{cardnumber} = $borrowerData->{'cardnumber'};
808
826
809
foreach ( @$reviews ) {
827
        if ( $borrowerData->{'borrowernumber'} eq $borrowernumber ) {
810
    my $borrowerData   = GetMember('borrowernumber' => $_->{borrowernumber});
828
            $review->{your_comment} = 1;
811
    # setting some borrower info into this hash
829
            $loggedincommenter = 1;
812
    $_->{title}     = $borrowerData->{'title'};
830
        }
813
    $_->{surname}   = $borrowerData->{'surname'};
814
    $_->{firstname} = $borrowerData->{'firstname'};
815
    if ($libravatar_enabled and $borrowerData->{'email'}) {
816
        $_->{avatarurl} = libravatar_url(email => $borrowerData->{'email'}, https => $ENV{HTTPS});
817
    }
831
    }
818
    $_->{userid}    = $borrowerData->{'userid'};
819
    $_->{cardnumber}    = $borrowerData->{'cardnumber'};
820
821
    if ($borrowerData->{'borrowernumber'} eq $borrowernumber) {
822
		$_->{your_comment} = 1;
823
		$loggedincommenter = 1;
824
	}
825
}
832
}
826
833
827
if ( C4::Context->preference("OPACISBD") ) {
834
if ( C4::Context->preference("OPACISBD") ) {
828
- 

Return to bug 15839