blob: d262c792247f6008381ed09c8cff4196f9c05026 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
|
<?php
/**
* Piwik - free/libre analytics platform
*
* @link http://piwik.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*
*/
namespace Piwik\Plugins\Referrers;
use Piwik\ArchiveProcessor;
use Piwik\Common;
use Piwik\Piwik;
use Piwik\Plugins\CoreVisualizations\Visualizations\HtmlTable;
use Piwik\Plugins\SitesManager\SiteUrls;
/**
* @see plugins/Referrers/functions.php
*/
require_once PIWIK_INCLUDE_PATH . '/plugins/Referrers/functions.php';
/**
*/
class Referrers extends \Piwik\Plugin
{
/**
* @see Piwik\Plugin::registerEvents
*/
public function registerEvents()
{
return array(
'Insights.addReportToOverview' => 'addReportToInsightsOverview',
'Live.getAllVisitorDetails' => 'extendVisitorDetails',
'Request.getRenamedModuleAndAction' => 'renameDeprecatedModuleAndAction',
'Tracker.setTrackerCacheGeneral' => 'setTrackerCacheGeneral'
);
}
public function setTrackerCacheGeneral(&$cacheContent)
{
$siteUrls = new SiteUrls();
$urls = $siteUrls->getAllCachedSiteUrls();
return $cacheContent['allUrlsByHostAndIdSite'] = $siteUrls->groupUrlsByHost($urls);
}
public function renameDeprecatedModuleAndAction(&$module, &$action)
{
if($module == 'Referers') {
$module = 'Referrers';
}
}
public function extendVisitorDetails(&$visitor, $details)
{
$instance = new Visitor($details);
$visitor['referrerType'] = $instance->getReferrerType();
$visitor['referrerTypeName'] = $instance->getReferrerTypeName();
$visitor['referrerName'] = $instance->getReferrerName();
$visitor['referrerKeyword'] = $instance->getKeyword();
$visitor['referrerKeywordPosition'] = $instance->getKeywordPosition();
$visitor['referrerUrl'] = $instance->getReferrerUrl();
$visitor['referrerSearchEngineUrl'] = $instance->getSearchEngineUrl();
$visitor['referrerSearchEngineIcon'] = $instance->getSearchEngineIcon();
}
public function addReportToInsightsOverview(&$reports)
{
$reports['Referrers_getWebsites'] = array();
$reports['Referrers_getCampaigns'] = array();
$reports['Referrers_getSocials'] = array();
$reports['Referrers_getSearchEngines'] = array();
}
/**
* DataTable filter callback that returns the HTML prefix for a label in the
* 'getAll' report based on the row's referrer type.
*
* @param int $referrerType The referrer type.
* @return string
*/
public function setGetAllHtmlPrefix($referrerType)
{
// get singular label for referrer type
$indexTranslation = '';
switch ($referrerType) {
case Common::REFERRER_TYPE_DIRECT_ENTRY:
$indexTranslation = 'Referrers_DirectEntry';
break;
case Common::REFERRER_TYPE_SEARCH_ENGINE:
$indexTranslation = 'General_ColumnKeyword';
break;
case Common::REFERRER_TYPE_WEBSITE:
$indexTranslation = 'Referrers_ColumnWebsite';
break;
case Common::REFERRER_TYPE_CAMPAIGN:
$indexTranslation = 'Referrers_ColumnCampaign';
break;
default:
// case of newsletter, partners, before Piwik 0.2.25
$indexTranslation = 'General_Others';
break;
}
$label = strtolower(Piwik::translate($indexTranslation));
// return html that displays it as grey & italic
return '<span class="datatable-label-category"><em>(' . $label . ')</em></span>';
}
}
|