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