Use it when you want to map SiteAccess dependent semantic configuration to internal settings, readable with the ConfigResolver.
 /**
  * {@inheritdoc}
  */
 public function load(array $configs, ContainerBuilder $container)
 {
     $configuration = $this->getConfiguration($configs, $container);
     $config = $this->processConfiguration($configuration, $configs);
     $loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__ . '/../Resources/config'));
     $loader->load('services.yml');
     $loader->load('slots.yml');
     $loader->load('default_settings.yml');
     if (isset($config['api_endpoint'])) {
         $container->setParameter('ez_recommendation.api_endpoint', $config['api_endpoint']);
     }
     if (isset($config['recommender']['api_endpoint'])) {
         $container->setParameter('ez_recommendation.recommender.api_endpoint', $config['recommender']['api_endpoint']);
     }
     if (isset($config['recommender']['consume_timeout'])) {
         $container->setParameter('ez_recommendation.recommender.consume_timeout', $config['recommender']['consume_timeout']);
     }
     if (isset($config['tracking']['script_url'])) {
         $container->setParameter('ez_recommendation.tracking.script_url', $config['tracking']['script_url']);
     }
     if (isset($config['tracking']['api_endpoint'])) {
         $container->setParameter('ez_recommendation.tracking.api_endpoint', $config['tracking']['api_endpoint']);
     }
     $processor = new ConfigurationProcessor($container, 'ez_recommendation');
     $processor->mapConfig($config, new ConfigurationMapper());
 }
コード例 #2
0
 public function load(array $configs, ContainerBuilder $container)
 {
     $configuration = new Configuration();
     $config = $this->processConfiguration($configuration, $configs);
     $container->setParameter('ezpublish_legacy.enabled', $config['enabled']);
     if (!$config['enabled']) {
         return;
     }
     $loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__ . '/../Resources/config'));
     $loader->load('services.yml');
     // Security services
     $loader->load('security.yml');
     $container->setParameter('ezpublish_legacy.root_dir', $config['root_dir']);
     // Templating
     $loader->load('templating.yml');
     // View
     $loader->load('view.yml');
     // IO Services
     $loader->load('io.yml');
     // SignalSlot settings
     $loader->load('slot.yml');
     // Default settings
     $loader->load('default_settings.yml');
     $processor = new ConfigurationProcessor($container, 'ezpublish_legacy');
     $processor->mapConfig($config, function (array &$scopeSettings, $currentScope, ContextualizerInterface $contextualizerInterface) {
         if (isset($scopeSettings['templating']['view_layout'])) {
             $contextualizerInterface->setContextualParameter('view_default_layout', $currentScope, $scopeSettings['templating']['view_layout']);
         }
         if (isset($scopeSettings['templating']['module_layout'])) {
             $contextualizerInterface->setContextualParameter('module_default_layout', $currentScope, $scopeSettings['templating']['module_layout']);
         }
     });
 }
コード例 #3
0
 /**
  * {@inheritdoc}
  */
 public function load(array $configs, ContainerBuilder $container)
 {
     $configuration = new Configuration();
     $config = $this->processConfiguration($configuration, $configs);
     $loader = new YamlFileLoader($container, new FileLocator(__DIR__ . '/../Resources/config'));
     $loader->load('services.yml');
     $loader->load('rest_services.yml');
     $loader->load('fieldtypes.yml');
     $loader->load('persistence.yml');
     $loader->load('papi.yml');
     $loader->load('default_settings.yml');
     $loader->load('templating.yml');
     $loader->load('view.yml');
     $loader->load('limitations.yml');
     $loader->load('storage_engines/legacy.yml');
     $activatedBundles = array_keys($container->getParameter('kernel.bundles'));
     if (in_array('EzSystemsEzPlatformSolrSearchEngineBundle', $activatedBundles)) {
         $loader->load('storage_engines/solr/criterion_visitors.yml');
     }
     if (in_array('EzPublishLegacySearchEngineBundle', $activatedBundles)) {
         $loader->load('storage_engines/legacy/search_query_handlers.yml');
     }
     $processor = new ConfigurationProcessor($container, 'eztags');
     $processor->mapConfigArray('tag_view_match', $config, ContextualizerInterface::MERGE_FROM_SECOND_LEVEL);
     $processor->mapConfigArray('edit_views', $config, ContextualizerInterface::MERGE_FROM_SECOND_LEVEL);
 }
コード例 #4
0
 public function load(array $configs, ContainerBuilder $container)
 {
     $configuration = $this->getConfiguration($configs, $container);
     $config = $this->processConfiguration($configuration, $configs);
     $loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__ . '/../Resources/config'));
     $loader->load('services.yml');
     $loader->load('default_settings.yml');
     $processor = new ConfigurationProcessor($container, 'ez_comments');
     $processor->mapConfig($config, new ConfigurationMapper());
 }
コード例 #5
0
 /**
  * {@inheritdoc}
  */
 public function load(array $configs, ContainerBuilder $container)
 {
     $configuration = new Configuration();
     $config = $this->processConfiguration($configuration, $configs);
     $loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__ . '/../Resources/config'));
     $loader->load('default_settings.yml');
     $loader->load('services.yml');
     $processor = new ConfigurationProcessor($container, 'edgar_ez_cdn');
     $processor->mapSetting('domain', $config);
     $processor->mapSetting('extensions', $config);
 }
コード例 #6
0
 /**
  * {@inheritdoc}
  */
 public function load(array $configs, ContainerBuilder $container)
 {
     $configuration = $this->getConfiguration($configs, $container);
     $config = $this->processConfiguration($configuration, $configs);
     $loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__ . '/../Resources/config'));
     $loader->load('services.yml');
     $loader->load('value_object_visitors.yml');
     $loader->load('input_parsers.yml');
     $loader->load('security.yml');
     $loader->load('default_settings.yml');
     $processor = new ConfigurationProcessor($container, 'ezsettings');
     $processor->mapConfigArray('rest_root_resources', $config);
 }
コード例 #7
0
 /**
  * {@inheritDoc}
  */
 public function load(array $configs, ContainerBuilder $container)
 {
     $loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__ . '/../Resources/config'));
     $configuration = $this->getConfiguration($configs, $container);
     // Note: this is where the transformation occurs
     $config = $this->processConfiguration($configuration, $configs);
     $loader->load('io.yml');
     $loader->load('default_settings.yml');
     // Map settings
     $processor = new ConfigurationProcessor($container, 'ez_io');
     $processor->mapConfig($config, function ($scopeSettings, $currentScope, ContextualizerInterface $contextualizer) {
         if (isset($scopeSettings['handler'])) {
             $contextualizer->setContextualParameter('handler', $currentScope, $scopeSettings['handler']);
         }
     });
 }
コード例 #8
0
 public function load(array $configs, ContainerBuilder $container)
 {
     $configuration = $this->getConfiguration($configs, $container);
     $config = $this->processConfiguration($configuration, $configs);
     $coreFileLocator = new FileLocator(__DIR__ . '/../../lib/Resources/config');
     $coreLoader = new Loader\YamlFileLoader($container, $coreFileLocator);
     $coreLoader->load('services.yml');
     $fileLocator = new FileLocator(__DIR__ . '/../Resources/config');
     $loader = new Loader\YamlFileLoader($container, $fileLocator);
     $loader->load('services.yml');
     $processor = new ConfigurationProcessor($container, $this->getAlias());
     $processor->mapConfig($config, function ($scopeSettings, $currentScope, ContextualizerInterface $contextualizer) {
         foreach ($scopeSettings as $key => $value) {
             $contextualizer->setContextualParameter($key, $currentScope, $value);
         }
     });
 }
コード例 #9
0
 public function load(array $configs, ContainerBuilder $container)
 {
     $configuration = new Configuration();
     $config = $this->processConfiguration($configuration, $configs);
     $container->setParameter('ezpublish_legacy.enabled', $config['enabled']);
     if (!$config['enabled']) {
         return;
     }
     $loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__ . '/../Resources/config'));
     $loader->load('services.yml');
     // Security services
     $loader->load('security.yml');
     if (isset($config['root_dir'])) {
         $container->setParameter('ezpublish_legacy.root_dir', $config['root_dir']);
     }
     // Templating
     $loader->load('templating.yml');
     // View
     $loader->load('view.yml');
     // Fieldtype Services
     $loader->load('fieldtype_services.yml');
     // SignalSlot settings
     $loader->load('slot.yml');
     $loader->load('debug.yml');
     // Default settings
     $loader->load('default_settings.yml');
     $processor = new ConfigurationProcessor($container, 'ezpublish_legacy');
     $processor->mapConfig($config, function (array $scopeSettings, $currentScope, ContextualizerInterface $contextualizer) {
         if (isset($scopeSettings['templating']['view_layout'])) {
             $contextualizer->setContextualParameter('view_default_layout', $currentScope, $scopeSettings['templating']['view_layout']);
         }
         if (isset($scopeSettings['templating']['module_layout'])) {
             $contextualizer->setContextualParameter('module_default_layout', $currentScope, $scopeSettings['templating']['module_layout']);
         }
         if (isset($scopeSettings['legacy_mode'])) {
             $container = $contextualizer->getContainer();
             $container->setParameter("ezsettings.{$currentScope}.legacy_mode", $scopeSettings['legacy_mode']);
             $container->setParameter("ezsettings.{$currentScope}.url_alias_router", !$scopeSettings['legacy_mode']);
         }
     });
     // Define additional routes that are allowed with legacy_mode: true.
     if (isset($config['legacy_aware_routes'])) {
         $container->setParameter('ezpublish.default_router.legacy_aware_routes', array_merge($container->getParameter('ezpublish.default_router.legacy_aware_routes'), $config['legacy_aware_routes']));
     }
 }
コード例 #10
0
 protected function setUp()
 {
     parent::setUp();
     $this->availableSiteAccesses = array('sa1', 'sa2', 'sa3');
     ConfigurationProcessor::setAvailableSiteAccesses($this->availableSiteAccesses);
     $this->groupsBySiteAccess = array('sa2' => array('sa_group'), 'sa3' => array('sa_group'));
     ConfigurationProcessor::setGroupsBySiteAccess($this->groupsBySiteAccess);
     $this->configResolver = new ConfigResolver($this->groupsBySiteAccess, 'ezsettings');
 }
コード例 #11
0
 /**
  * {@inheritdoc}
  */
 public function load(array $configs, ContainerBuilder $container)
 {
     $configuration = new Configuration();
     $config = $this->processConfiguration($configuration, $configs);
     $loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__ . '/../Resources/config'));
     $loader->load('services.yml');
     $loader->load('fieldtypes.yml');
     $loader->load('default_settings.yml');
     $processor = new ConfigurationProcessor($container, 'novae_zseo');
     $processor->mapSetting('fieldtype_metas_identifier', $config);
     $processor->mapSetting('fieldtype_metas', $config);
     $processor->mapSetting('google_verification', $config);
     $processor->mapSetting('google_gatracker', $config);
     $processor->mapConfigArray('fieldtype_metas', $config, ContextualizerInterface::MERGE_FROM_SECOND_LEVEL);
     $processor->mapConfigArray('default_metas', $config);
     $processor->mapConfigArray('default_links', $config);
     $processor->mapConfigArray('sitemap_excludes', $config, ContextualizerInterface::MERGE_FROM_SECOND_LEVEL);
     $processor->mapConfigArray('robots_disallow', $config);
 }
コード例 #12
0
 /**
  * {@inheritdoc}
  */
 public function load(array $configs, ContainerBuilder $container)
 {
     $configuration = new Configuration();
     $config = $this->processConfiguration($configuration, $configs);
     $loader = new YamlFileLoader($container, new FileLocator(__DIR__ . '/../Resources/config'));
     $loader->load('services.yml');
     $loader->load('fieldtypes.yml');
     $loader->load('persistence.yml');
     $loader->load('papi.yml');
     $loader->load('default_settings.yml');
     $loader->load('templating.yml');
     $loader->load('view.yml');
     $loader->load('storage_engines/legacy/search_query_handlers.yml');
     $loader->load('limitations.yml');
     $loader->load('storage_engines/legacy.yml');
     $loader->load('storage_engines/solr/criterion_visitors.yml');
     $processor = new ConfigurationProcessor($container, 'eztags');
     $processor->mapConfigArray('tag_view_match', $config, ContextualizerInterface::MERGE_FROM_SECOND_LEVEL);
 }
コード例 #13
0
 /**
  * Load Bundle configuration
  *
  * @param array $configs
  * @param ContainerBuilder $container
  */
 public function load(array $configs, ContainerBuilder $container)
 {
     $configuration = $this->getConfiguration($configs, $container);
     $config = $this->processConfiguration($configuration, $configs);
     $loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__ . '/../Resources/config'));
     $loader->load('default_settings.yml');
     $loader->load('services.yml');
     $processor = new ConfigurationProcessor($container, 'edgar_ez_favicon');
     $processor->mapSetting('api_key', $config);
     $processor->mapSetting('master_picture', $config);
     $processor->mapSetting('package_dest', $config);
     $processor->mapSetting('favicons_view', $config);
     $processor->mapSetting('favicon_design', $config);
     $processor->mapSetting('versioning', $config);
     $processor->mapSetting('baseurl', $config);
     $processor->mapSetting('uri', $config);
 }
コード例 #14
0
 public function testGlobalLayout()
 {
     ConfigurationProcessor::setAvailableSiteAccesses(array('sa1', 'sa2', 'sa3'));
     $groupsBySiteAccess = array('sa2' => array('sa_group'));
     ConfigurationProcessor::setGroupsBySiteAccess($groupsBySiteAccess);
     $layoutSa1 = 'module_layout_for_sa1.html.twig';
     $layoutSaGroup = 'module_layout_for_sa_group.html.twig';
     $defaultLayout = null;
     $config = array('enabled' => true, 'root_dir' => __DIR__, 'system' => array('sa1' => array('templating' => array('module_layout' => $layoutSa1)), 'sa_group' => array('templating' => array('module_layout' => $layoutSaGroup))));
     $this->load($config);
     $this->assertContainerBuilderHasParameter('ezpublish_legacy.default.module_default_layout', $defaultLayout);
     // Testing values with real ConfigResolver
     $configResolver = new ConfigResolver($groupsBySiteAccess, 'foo');
     $configResolver->setContainer($this->container);
     $this->assertSame($layoutSa1, $configResolver->getParameter('module_default_layout', 'ezpublish_legacy', 'sa1'));
     $this->assertSame($layoutSaGroup, $configResolver->getParameter('module_default_layout', 'ezpublish_legacy', 'sa2'));
     $this->assertSame($defaultLayout, $configResolver->getParameter('module_default_layout', 'ezpublish_legacy', 'sa3'));
 }
コード例 #15
0
 public function testMapConfigArray()
 {
     $namespace = 'ez_test';
     $saNodeName = 'foo';
     $container = $this->getMock('Symfony\\Component\\DependencyInjection\\ContainerInterface');
     $processor = new ConfigurationProcessor($container, $namespace, $saNodeName);
     $contextualizer = $this->getMock('eZ\\Bundle\\EzPublishCoreBundle\\DependencyInjection\\Configuration\\SiteAccessAware\\ContextualizerInterface');
     $processor->setContextualizer($contextualizer);
     $sa1Config = array('foo' => 'bar', 'hello' => array('world'), 'an_integer' => 123, 'a_bool' => true);
     $sa2Config = array('foo' => 'bar2', 'hello' => array('universe'), 'an_integer' => 456, 'a_bool' => false);
     $config = array('not_sa_aware' => 'blabla', $saNodeName => array('sa1' => $sa1Config, 'sa2' => $sa2Config));
     $contextualizer->expects($this->once())->method('mapConfigArray')->with('hello', $config, ContextualizerInterface::MERGE_FROM_SECOND_LEVEL);
     $processor->mapConfigArray('hello', $config, ContextualizerInterface::MERGE_FROM_SECOND_LEVEL);
 }
コード例 #16
0
 private function registerSiteAccessConfiguration(array $config, ContainerBuilder $container)
 {
     if (!isset($config['siteaccess'])) {
         $config['siteaccess'] = array();
         $config['siteaccess']['list'] = array('setup');
         $config['siteaccess']['default_siteaccess'] = 'setup';
         $config['siteaccess']['groups'] = array();
         $config['siteaccess']['match'] = null;
     }
     $container->setParameter('ezpublish.siteaccess.list', $config['siteaccess']['list']);
     ConfigurationProcessor::setAvailableSiteAccesses($config['siteaccess']['list']);
     $container->setParameter('ezpublish.siteaccess.default', $config['siteaccess']['default_siteaccess']);
     $container->setParameter('ezpublish.siteaccess.match_config', $config['siteaccess']['match']);
     // Register siteaccess groups + reverse
     $container->setParameter('ezpublish.siteaccess.groups', $config['siteaccess']['groups']);
     $groupsBySiteaccess = array();
     foreach ($config['siteaccess']['groups'] as $groupName => $groupMembers) {
         foreach ($groupMembers as $member) {
             if (!isset($groupsBySiteaccess[$member])) {
                 $groupsBySiteaccess[$member] = array();
             }
             $groupsBySiteaccess[$member][] = $groupName;
         }
     }
     $container->setParameter('ezpublish.siteaccess.groups_by_siteaccess', $groupsBySiteaccess);
     ConfigurationProcessor::setGroupsBySiteAccess($groupsBySiteaccess);
 }
コード例 #17
0
 public function testLoadWithCssConfig()
 {
     ConfigurationProcessor::setAvailableSiteAccesses(['sa1', 'sa2', 'sa3']);
     ConfigurationProcessor::setGroupsBySiteAccess(['sa2' => ['sa_group'], 'sa3' => ['sa_group']]);
     $defaultFiles = ['def1.css', 'def2.css'];
     $default = ['css' => ['files' => $defaultFiles]];
     $sa1Files = ['sa1.css'];
     $sa1 = ['css' => ['files' => $sa1Files]];
     $sa2 = [];
     $sa3Files = ['sa3.css'];
     $sa3 = ['css' => ['files' => $sa3Files]];
     $groupFiles = ['group.css'];
     $group = ['css' => ['files' => $groupFiles]];
     $this->load(['system' => ['default' => $default, 'sa1' => $sa1, 'sa2' => $sa2, 'sa3' => $sa3, 'sa_group' => $group]]);
     $this->assertContainerBuilderHasParameter('ez_platformui.default.css.files', $defaultFiles);
     $this->assertContainerBuilderHasParameter('ez_platformui.sa1.css.files', array_merge($defaultFiles, $sa1Files));
     $this->assertContainerBuilderHasParameter('ez_platformui.sa2.css.files', array_merge($defaultFiles, $groupFiles));
     $this->assertContainerBuilderHasParameter('ez_platformui.sa3.css.files', array_merge($defaultFiles, $groupFiles, $sa3Files));
     $this->assertFalse($this->container->has('ez_platformui.sa_group.css.files'));
 }