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
112
113
114
|
<?php
/**
* Piwik - Open source web analytics
*
* @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;
/**
* @see plugins/Referrers/functions.php
*/
require_once PIWIK_INCLUDE_PATH . '/plugins/Referrers/functions.php';
/**
*/
class Referrers extends \Piwik\Plugin
{
/**
* @see Piwik\Plugin::getListHooksRegistered
*/
public function getListHooksRegistered()
{
$hooks = array(
'Goals.getReportsWithGoalMetrics' => 'getReportsWithGoalMetrics',
'Insights.addReportToOverview' => 'addReportToInsightsOverview'
);
return $hooks;
}
public function addReportToInsightsOverview(&$reports)
{
$reports['Referrers_getWebsites'] = array();
$reports['Referrers_getCampaigns'] = array();
$reports['Referrers_getSocials'] = array();
$reports['Referrers_getSearchEngines'] = array();
}
/**
* Adds Goal dimensions, so that the dimensions are displayed in the UI Goal Overview page
*/
public function getReportsWithGoalMetrics(&$dimensions)
{
$dimensions = array_merge($dimensions, array(
array('category' => Piwik::translate('Referrers_Referrers'),
'name' => Piwik::translate('Referrers_Type'),
'module' => 'Referrers',
'action' => 'getReferrerType',
),
array('category' => Piwik::translate('Referrers_Referrers'),
'name' => Piwik::translate('Referrers_Keywords'),
'module' => 'Referrers',
'action' => 'getKeywords',
),
array('category' => Piwik::translate('Referrers_Referrers'),
'name' => Piwik::translate('Referrers_SearchEngines'),
'module' => 'Referrers',
'action' => 'getSearchEngines',
),
array('category' => Piwik::translate('Referrers_Referrers'),
'name' => Piwik::translate('Referrers_Websites'),
'module' => 'Referrers',
'action' => 'getWebsites',
),
array('category' => Piwik::translate('Referrers_Referrers'),
'name' => Piwik::translate('Referrers_Campaigns'),
'module' => 'Referrers',
'action' => 'getCampaigns',
),
));
}
/**
* 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>';
}
}
|