eZ\Bundle\EzPublishCoreBundle\DependencyInjection\Configuration\Parser\LocationView::preMap PHP Method

preMap() public method

public preMap ( array $config, eZ\Bundle\EzPublishCoreBundle\DependencyInjection\Configuration\SiteAccessAware\ContextualizerInterface $contextualizer )
$config array
$contextualizer eZ\Bundle\EzPublishCoreBundle\DependencyInjection\Configuration\SiteAccessAware\ContextualizerInterface
    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);
    }
LocationView