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
Beispiel #1
0
 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);
 }