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

(-)a/Koha/Linktracker.pm (+69 lines)
Line 0 Link Here
1
package Koha::Linktracker;
2
3
# Copyright 2013 chris@bigballofwax.co.nz
4
#
5
# This file is part of Koha.
6
#
7
# Koha is free software; you can redistribute it and/or modify it under the
8
# terms of the GNU General Public License as published by the Free Software
9
# Foundation; either version 3 of the License, or (at your option) any later
10
# version.
11
#
12
# Koha is distributed in the hope that it will be useful, but WITHOUT ANY
13
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
14
# A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
15
#
16
# You should have received a copy of the GNU General Public License along
17
# with Koha; if not, write to the Free Software Foundation, Inc.,
18
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
19
20
=head1 NAME
21
22
Koha::Linktracker
23
24
=head1 SYNOPSIS
25
26
  use Koha::Linktracker;
27
  my $tracker = Koha::Linktracker->new();
28
  $tracker->trackclick( $linkinfo );
29
30
=head1 DESCRIPTION
31
32
=head1 FUNCTIONS
33
34
=cut
35
36
use Modern::Perl;
37
use Carp;
38
use C4::Context;
39
use base qw(Class::Accessor);
40
41
__PACKAGE__->mk_accessors(qw( trackingmethod ));
42
43
sub trackclick {
44
    my ( $self, $linkinfo ) = @_;
45
    my $dbh   = C4::Context->dbh();
46
    my $query = "INSERT INTO linktracker (biblionumber,itemnumber,borrowernumber
47
                    ,url,timeclicked) VALUES (?,?,?,?,now())";
48
    my $sth = $dbh->prepare($query);
49
    $sth->execute(
50
        $linkinfo->{biblionumber},   $linkinfo->{itemnumber},
51
        $linkinfo->{borrowernumber}, $linkinfo->{uri}
52
    );
53
54
}
55
56
=head2 EXPORT
57
58
None by default.
59
60
61
=head1 AUTHOR
62
63
Chris Cormack, E<lt>chris@bigballofwax.co.nzE<gt>
64
65
=cut
66
67
1;
68
69
__END__
(-)a/opac/tracklinks.pl (-16 / +16 lines)
Lines 21-39 Link Here
21
use Modern::Perl;
21
use Modern::Perl;
22
use C4::Context;
22
use C4::Context;
23
use C4::Auth qw(checkauth);
23
use C4::Auth qw(checkauth);
24
use Koha::Linktracker;
24
use CGI;
25
use CGI;
25
26
26
my $trackinglinks = C4::Context->preference('TrackClicks');
27
28
my $cgi = new CGI;
27
my $cgi = new CGI;
29
my $uri = $cgi->param('uri') || '';
28
my $uri = $cgi->param('uri') || '';
30
29
30
my $tracker = Koha::Linktracker->new(
31
    { trackingmethod => C4::Context->preference('TrackClicks') } );
32
31
if ($uri) {
33
if ($uri) {
32
    if ( $trackinglinks eq 'track' || $trackinglinks eq 'anonymous' ) {
34
    if (   $tracker->trackingmethod() eq 'track'
35
        || $tracker->trackingmethod() eq 'anonymous' )
36
    {
33
        my $borrowernumber = 0;
37
        my $borrowernumber = 0;
34
38
35
        # we have a uri and we want to track
39
        # we have a uri and we want to track
36
        if ( $trackinglinks eq 'track' ) {
40
        if ( $tracker->trackingmethod() eq 'track' ) {
37
            my ( $user, $cookie, $sessionID, $flags ) =
41
            my ( $user, $cookie, $sessionID, $flags ) =
38
              checkauth( $cgi, 1, {}, 'opac' );
42
              checkauth( $cgi, 1, {}, 'opac' );
39
            my $userenv = C4::Context->userenv;
43
            my $userenv = C4::Context->userenv;
Lines 50-56 if ($uri) { Link Here
50
        my $biblionumber = $cgi->param('biblionumber') || 0;
54
        my $biblionumber = $cgi->param('biblionumber') || 0;
51
        my $itemnumber   = $cgi->param('itemnumber')   || 0;
55
        my $itemnumber   = $cgi->param('itemnumber')   || 0;
52
56
53
        trackclick( $uri, $biblionumber, $borrowernumber, $itemnumber );
57
        $tracker->trackclick(
58
            {
59
                uri            => $uri,
60
                biblionumber   => $biblionumber,
61
                borrowernumber => $borrowernumber,
62
                itemnumber     => $itemnumber
63
            }
64
        );
54
        print $cgi->redirect($uri);
65
        print $cgi->redirect($uri);
55
    }
66
    }
56
    else {
67
    else {
Lines 65-77 else { Link Here
65
    print $cgi->redirect("/cgi-bin/koha/errors/404.pl");    # escape early
76
    print $cgi->redirect("/cgi-bin/koha/errors/404.pl");    # escape early
66
    exit;
77
    exit;
67
}
78
}
68
69
sub trackclick {
70
    my ( $uri, $biblionumber, $borrowernumber, $itemnumber ) = @_;
71
    my $dbh   = C4::Context->dbh();
72
    my $query = "INSERT INTO linktracker (biblionumber,itemnumber,borrowernumber
73
    ,url,timeclicked) VALUES (?,?,?,?,now())";
74
    my $sth = $dbh->prepare($query);
75
    $sth->execute( $biblionumber, $itemnumber, $borrowernumber, $uri );
76
77
}
78
- 

Return to bug 8917