Skip to content
This repository was archived by the owner on Sep 16, 2021. It is now read-only.

Commit 754de3b

Browse files
committed
Merge pull request #204 from mkoosej/master
auto enable/disable the menu extension in the configuration
2 parents e128da1 + b52771f commit 754de3b

File tree

2 files changed

+26
-12
lines changed

2 files changed

+26
-12
lines changed

DependencyInjection/CmfMenuExtension.php

Lines changed: 22 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -43,17 +43,7 @@ public function load(array $configs, ContainerBuilder $container)
4343
}
4444

4545
if ($config['admin_extensions']['menu_options']['enabled']) {
46-
if(!isset($bundles['SonataAdminBundle'])) {
47-
throw new InvalidConfigurationException('To use menu options extionsion, you need sonata-project/SonataAdminBundle in your project.');
48-
}
49-
50-
if ($config['admin_extensions']['menu_options']['advanced'] && !isset($bundles['BurgovKeyValueFormBundle'])) {
51-
throw new InvalidConfigurationException('To use advanced menu options, you need the burgov/key-value-bundle in your project.');
52-
}
53-
54-
$container->setParameter($this->getAlias() . '.admin_extensions.menu_options.advanced', $config['admin_extensions']['menu_options']['advanced']);
55-
56-
$loader->load('admin-extension.xml');
46+
$this->loadExtensions($config, $loader, $container);
5747
}
5848

5949
if ($config['publish_workflow']['enabled']) {
@@ -132,6 +122,27 @@ public function loadSonataAdmin($config, XmlFileLoader $loader, ContainerBuilder
132122
$loader->load('admin.xml');
133123
}
134124

125+
public function loadExtensions($config, XmlFileLoader $loader, ContainerBuilder $container)
126+
{
127+
$bundles = $container->getParameter('kernel.bundles');
128+
129+
if ('auto' === $config['admin_extensions']['menu_options']['enabled'] && !isset($bundles['SonataAdminBundle'])) {
130+
return;
131+
}
132+
133+
if (!isset($bundles['SonataAdminBundle'])) {
134+
throw new InvalidConfigurationException('To use menu options extionsion, you need sonata-project/SonataAdminBundle in your project.');
135+
}
136+
137+
if ($config['admin_extensions']['menu_options']['advanced'] && !isset($bundles['BurgovKeyValueFormBundle'])) {
138+
throw new InvalidConfigurationException('To use advanced menu options, you need the burgov/key-value-bundle in your project.');
139+
}
140+
141+
$container->setParameter($this->getAlias() . '.admin_extensions.menu_options.advanced', $config['admin_extensions']['menu_options']['advanced']);
142+
143+
$loader->load('admin-extension.xml');
144+
}
145+
135146
/**
136147
* Returns the base path for the XSD files.
137148
*

DependencyInjection/Configuration.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,8 +68,11 @@ public function getConfigTreeBuilder()
6868
->children()
6969
->arrayNode('menu_options')
7070
->addDefaultsIfNotSet()
71-
->canBeDisabled()
7271
->children()
72+
->enumNode('enabled')
73+
->values(array(true, false, 'auto'))
74+
->defaultValue('auto')
75+
->end()
7376
->booleanNode('advanced')->defaultValue(false)->end()
7477
->end()
7578
->end()

0 commit comments

Comments
 (0)