diff --git a/src/Admin/Menu/AbstractMenuNodeAdmin.php b/src/Admin/Menu/AbstractMenuNodeAdmin.php
index c1a03b2..3d0fdec 100644
--- a/src/Admin/Menu/AbstractMenuNodeAdmin.php
+++ b/src/Admin/Menu/AbstractMenuNodeAdmin.php
@@ -33,6 +33,11 @@ abstract class AbstractMenuNodeAdmin extends AbstractAdmin
*/
protected $menuRoot;
+ /**
+ * @var bool
+ */
+ protected $useBurgovKeyValueForm;
+
/**
* @var string
*/
@@ -92,6 +97,11 @@ public function setContentTreeBlock($contentTreeBlock)
$this->contentTreeBlock = $contentTreeBlock;
}
+ public function setUseBurgovKeyValueForm($useBurgovKeyValueForm)
+ {
+ $this->useBurgovKeyValueForm = $useBurgovKeyValueForm;
+ }
+
public function toString($object)
{
if ($object instanceof MenuNodeBase && $object->getLabel()) {
diff --git a/src/Admin/Menu/MenuNodeAdmin.php b/src/Admin/Menu/MenuNodeAdmin.php
index d9064da..6604c15 100644
--- a/src/Admin/Menu/MenuNodeAdmin.php
+++ b/src/Admin/Menu/MenuNodeAdmin.php
@@ -21,6 +21,7 @@
use Sonata\DoctrinePHPCRAdminBundle\Form\Type\ChoiceFieldMaskType;
use Knp\Menu\ItemInterface as MenuItemInterface;
use Doctrine\Common\Util\ClassUtils;
+use Burgov\Bundle\KeyValueFormBundle\Form\Type\KeyValueType;
class MenuNodeAdmin extends AbstractMenuNodeAdmin
{
@@ -69,7 +70,7 @@ protected function configureFormFields(FormMapper $formMapper)
'content' => 'content',
),
'map' => array(
- 'route' => array('link'),
+ 'route' => array('link', 'routeParameters'),
'uri' => array('link'),
'content' => array('content', TreeSelectType::class),
),
@@ -77,6 +78,25 @@ protected function configureFormFields(FormMapper $formMapper)
'required' => false,
))
->add('link', TextType::class, array('required' => false, 'mapped' => false))
+ ;
+
+ if ($this->useBurgovKeyValueForm)
+ {
+ $formMapper
+ ->add('routeParameters', KeyValueType::class, array(
+ 'value_type' => TextType::class,
+ 'required' => false,
+ 'entry_options' => array(
+ 'value_type' => TextType::class,
+ 'label' => false,
+ 'attr' => array('style' => 'clear:both'),
+ ),
+ 'label' => 'form.label_options'
+ ))
+ ;
+ }
+
+ $formMapper
->add(
'content',
TreeSelectType::class,
diff --git a/src/DependencyInjection/Factory/MenuAdminFactory.php b/src/DependencyInjection/Factory/MenuAdminFactory.php
index c5ac6cd..5542525 100644
--- a/src/DependencyInjection/Factory/MenuAdminFactory.php
+++ b/src/DependencyInjection/Factory/MenuAdminFactory.php
@@ -38,6 +38,7 @@ public function addConfiguration(NodeBuilder $builder)
{
$builder
->booleanNode('recursive_breadcrumbs')->defaultTrue()->end()
+ ->booleanNode('use_burgov_keyvalue_form')->defaultFalse()->end()
->arrayNode('extensions')
->addDefaultsIfNotSet()
->children()
@@ -72,6 +73,7 @@ public function create(array $config, ContainerBuilder $container, XmlFileLoader
$loader->load('menu.xml');
$this->loadExtensions($config['extensions'], $container, $loader);
+ $this->loadBurgovKeyValueForm($container);
}
private function loadExtensions(array $config, ContainerBuilder $container, XmlFileLoader $loader)
@@ -101,4 +103,11 @@ private function loadExtensions(array $config, ContainerBuilder $container, XmlF
}
}
}
+
+ private function loadBurgovKeyValueForm(ContainerBuilder $container)
+ {
+ $bundles = $container->getParameter('kernel.bundles');
+
+ $container->setParameter('cmf_sonata_phpcr_admin_integration.menu.use_burgov_keyvalue_form', isset($bundles['BurgovKeyValueFormBundle']) );
+ }
}
diff --git a/src/Resources/config/menu.xml b/src/Resources/config/menu.xml
index 67615b8..f6a7514 100644
--- a/src/Resources/config/menu.xml
+++ b/src/Resources/config/menu.xml
@@ -68,6 +68,10 @@
%cmf_sonata_phpcr_admin_integration.menu.recursive_breadcrumbs%
+
+
+ %cmf_sonata_phpcr_admin_integration.menu.use_burgov_keyvalue_form%
+