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
|
<?php
/**
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license https://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 'ai':
case Common::REFERRER_TYPE_AI_ASSISTANT:
$indexTranslation = 'Referrers_AIAssistants';
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_AI_ASSISTANT => 'ai',
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;
}
|