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
|
<?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\Tracker;
use Piwik\Config;
use Piwik\Container\StaticContainer;
use Piwik\Plugins\FeatureFlags\FeatureFlagManager;
use Piwik\Plugins\PrivacyManager\FeatureFlags\PrivacyCompliance;
use Piwik\Tracker\Config\ThirdPartyCookies;
class TrackerConfig
{
/**
* Update Tracker config
*
* @param string $name Setting name
* @param mixed $value Value
*/
public static function setConfigValue($name, $value)
{
$section = self::getConfig();
$section[$name] = $value;
Config::getInstance()->Tracker = $section;
}
public static function getConfigValue($name, $idSite = null)
{
if ($name === 'use_third_party_id_cookie') {
$featureFlagManager = StaticContainer::get(FeatureFlagManager::class);
if ($featureFlagManager->isFeatureActive(PrivacyCompliance::class)) {
return ThirdPartyCookies::getInstance($idSite)->getValue();
}
}
$config = self::getConfig();
if (!empty($idSite)) {
$siteSpecificConfig = self::getSiteSpecificConfig($idSite);
$config = array_merge($config, $siteSpecificConfig);
}
return $config[$name] ?? null;
}
private static function getConfig()
{
return Config::getInstance()->Tracker;
}
private static function getSiteSpecificConfig($idSite)
{
$key = 'Tracker_' . $idSite;
return Config::getInstance()->$key;
}
}
|