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); }