Project

General

Profile

1
<?php
2

    
3
defined('_JEXEC') or die('Access denied');
4

    
5
jimport('joomla.application.component.model');
6

    
7
require_once(dirname(__FILE__) . DS . 'piwik' . DS . 'PiwikTracker.php');
8

    
9
// This model is used for Piwik logging when no frontend is available.
10
class OpenAireModelPiwik extends JModelItem {
11
	const MAX_DATA = 200;
12
	const PAGE = 'page';
13
	
14
	private $tracker;
15

    
16
	// Construct a new OpenAireModelClaim.
17
	// $configuration the configuration to use
18
	public function __construct($configuration) {
19
		parent :: __construct($configuration);
20
		$parameters = JComponentHelper :: getParams('com_openaire');
21
		$this -> tracker = new PiwikTracker($parameters -> get('piwikSiteId'), $parameters -> get('piwikUrl'));
22
	}
23
	
24
	// Track a page view using Piwik.
25
	// $title the page title to track
26
	// $data the data to track
27
	public function track($title, $data) {
28
		$this -> tracker -> setCustomVariable(1, 'user', JFactory :: getUser() -> email, self :: PAGE);
29
		$this -> tracker -> setCustomVariable(2, 'session', JFactory :: getSession() -> getId(), self :: PAGE);
30
		$this -> tracker -> setCustomVariable(3, 'data', substr($data, 0, self :: MAX_DATA), self :: PAGE);
31
		$this -> tracker -> setCustomVariable(4, 'data', substr($data, self :: MAX_DATA, 2 * self :: MAX_DATA), self :: PAGE);
32
		$this -> tracker -> setCustomVariable(5, 'data', substr($data, 2 * self :: MAX_DATA, 3 * self :: MAX_DATA), self :: PAGE);
33
		$this -> tracker -> doTrackPageView($title);
34
	}
35
}
36

    
(5-5/9)