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
|
<?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\Config;
use Piwik\Config;
abstract class SectionConfig
{
abstract public static function getSectionName(): string;
/**
* Set the value for a setting
*
* @param string $name Setting name
* @param mixed $value Value
*
*/
public static function setConfigValue(string $name, $value): void
{
$section = self::getConfig();
$section[$name] = $value;
Config::getInstance()->{static::getSectionName()} = $section;
}
/**
* Get a setting value
*
* @param string $name Setting name
* @param int|null $idSite Optional site Id
*
* @return mixed|null
*/
public static function getConfigValue(string $name, ?int $idSite = null)
{
$config = self::getConfig();
if (!empty($idSite)) {
$siteSpecificConfig = self::getSiteSpecificConfig($idSite);
$config = array_merge($config, $siteSpecificConfig);
}
return $config[$name] ?? null;
}
/**
* Get the section config as an array
*
* @return array|string
*/
private static function getConfig()
{
return Config::getInstance()->{static::getSectionName()};
}
/**
* Get the site specific config (if any) as an array
*
*
* @return array|string
*/
private static function getSiteSpecificConfig(int $idSite)
{
$key = static::getSectionName() . '_' . $idSite;
return Config::getInstance()->$key;
}
}
|