blob: ff8e54be198d8615d6ebf207c63fe8faeb2a9f49 (
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
|
<?php
/**
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*
*/
namespace Piwik\Plugins\Referrers;
use Piwik\Common;
use Piwik\Piwik;
use Piwik\UrlHelper;
/**
* Returns path component from a URL
*
* @param string $url
* @return string path
*/
function getPathFromUrl($url)
{
$path = UrlHelper::getPathAndQueryFromUrl($url);
if (empty($path)) {
return 'index';
}
return $path;
}
/**
* Return translated referrer type
*
* @param string $label
* @return string Referrer type
*/
function getReferrerTypeLabel($label)
{
switch ($label) {
case 'direct':
case Common::REFERRER_TYPE_DIRECT_ENTRY:
$indexTranslation = 'Referrers_DirectEntry';
break;
case 'search':
case Common::REFERRER_TYPE_SEARCH_ENGINE:
$indexTranslation = 'Referrers_SearchEngines';
break;
case 'social':
case Common::REFERRER_TYPE_SOCIAL_NETWORK:
$indexTranslation = 'Referrers_Socials';
break;
case 'website':
case Common::REFERRER_TYPE_WEBSITE:
$indexTranslation = 'Referrers_Websites';
break;
case 'campaign':
case Common::REFERRER_TYPE_CAMPAIGN:
$indexTranslation = 'Referrers_Campaigns';
break;
default:
// case of newsletter, partners, before Piwik 0.2.25
$indexTranslation = 'General_Others';
break;
}
return Piwik::translate($indexTranslation);
}
/**
* Works in both directions
* @param string $name
* @throws \Exception
* @return string
*/
function getReferrerTypeFromShortName($name)
{
$map = array(
Common::REFERRER_TYPE_SEARCH_ENGINE => 'search',
Common::REFERRER_TYPE_SOCIAL_NETWORK => 'social',
Common::REFERRER_TYPE_WEBSITE => 'website',
Common::REFERRER_TYPE_DIRECT_ENTRY => 'direct',
Common::REFERRER_TYPE_CAMPAIGN => 'campaign',
);
if (isset($map[$name])) {
return $map[$name];
}
if ($found = array_search($name, $map)) {
return $found;
}
throw new \Exception("Referrer type '$name' is not valid.");
}
/**
* Returns a URL w/o the protocol type.
*
* @param string $url
* @return string
*/
function removeUrlProtocol($url)
{
if (preg_match('/^[a-zA-Z_-]+:\/\//', $url, $matches)) {
return substr($url, strlen($matches[0]));
}
return $url;
}
|