private postProcessComplexSetting ( $setting, $sa, |
||
$container |
private function postProcessComplexSetting($setting, $sa, ContainerBuilder $container)
{
$configResolver = $container->get('ezpublish.config.resolver.core');
if (!$configResolver->hasParameter($setting, null, $sa)) {
return false;
}
$settingValue = $configResolver->getParameter($setting, null, $sa);
if (!$this->complexSettingParser->containsDynamicSettings($settingValue)) {
return false;
}
// we kind of need to process this as well, don't we ?
if ($this->complexSettingParser->isDynamicSetting($settingValue)) {
$parts = $this->complexSettingParser->parseDynamicSetting($settingValue);
if (!isset($parts['namespace'])) {
$parts['namespace'] = 'ezsettings';
}
if (!isset($parts['scope'])) {
$parts['scope'] = $sa;
}
return $configResolver->getParameter($parts['param'], null, $sa);
}
$value = $settingValue;
foreach ($this->complexSettingParser->parseComplexSetting($settingValue) as $dynamicSetting) {
$parts = $this->complexSettingParser->parseDynamicSetting($dynamicSetting);
if (!isset($parts['namespace'])) {
$parts['namespace'] = 'ezsettings';
}
if (!isset($parts['scope'])) {
$parts['scope'] = $sa;
}
$dynamicSettingValue = $configResolver->getParameter($parts['param'], $parts['namespace'], $parts['scope']);
$value = str_replace($dynamicSetting, $dynamicSettingValue, $value);
}
return $value;
}