public function preMap(array $config, ContextualizerInterface $contextualizer)
{
$scopes = array_merge([ConfigResolver::SCOPE_DEFAULT, ConfigResolver::SCOPE_GLOBAL], $config['siteaccess']['list'], array_keys($config['siteaccess']['groups']));
foreach ($scopes as $scope) {
if (!isset($config[$contextualizer->getSiteAccessNodeName()][$scope][static::NODE_KEY])) {
continue;
}
$locationViewConfig =& $config[$contextualizer->getSiteAccessNodeName()][$scope][static::NODE_KEY];
$contentViewConfig =& $config[$contextualizer->getSiteAccessNodeName()][$scope][ContentView::NODE_KEY];
// view rules without a custom controller are moved from $locationViewConfig to $contentViewConfig
foreach ($locationViewConfig as $viewIdentifier => $viewRules) {
foreach ($viewRules as $viewRuleIdentifier => $viewRule) {
if (!isset($viewRule['controller'])) {
$contentViewConfig[$viewIdentifier][$viewRuleIdentifier] = $locationViewConfig[$viewIdentifier][$viewRuleIdentifier];
unset($locationViewConfig[$viewIdentifier][$viewRuleIdentifier]);
}
}
if (count($locationViewConfig[$viewIdentifier]) === 0) {
unset($locationViewConfig[$viewIdentifier]);
}
}
}
parent::preMap($config, $contextualizer);
$contextualizer->mapConfigArray(ContentView::NODE_KEY, $config, ContextualizerInterface::MERGE_FROM_SECOND_LEVEL);
}