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

Commit 6311622

Browse files
committed
fix the integration for routing admin with content bundle
1 parent 9140550 commit 6311622

File tree

4 files changed

+27
-9
lines changed

4 files changed

+27
-9
lines changed

src/Admin/Routing/RouteAdmin.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ protected function configureFormFields(FormMapper $formMapper)
6464
->add(
6565
'content',
6666
TreeSelectType::class,
67-
['root_node' => $this->routeRoot, 'widget' => 'browser', 'required' => false]
67+
['root_node' => $this->contentRoot, 'widget' => 'browser', 'required' => false]
6868
)
6969
->end() // group general
7070
->end() // tab general

src/DependencyInjection/CmfSonataPhpcrAdminIntegrationExtension.php

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,9 +47,7 @@ public function process(ContainerBuilder $container)
4747
*/
4848
public function load(array $configs, ContainerBuilder $container)
4949
{
50-
$this->addDefaultFactories($container);
51-
52-
$configuration = new Configuration($this->factories);
50+
$configuration = $this->getConfiguration([], $container);
5351
$config = $this->processConfiguration($configuration, $configs);
5452
$bundles = $container->getParameter('kernel.bundles');
5553

@@ -65,6 +63,18 @@ public function load(array $configs, ContainerBuilder $container)
6563
$loader->load('enhancer.xml');
6664
}
6765

66+
/**
67+
* {@inheritdoc}
68+
*
69+
* Overwritten because configuration can not be auto instantiated as it has a constructor.
70+
*/
71+
public function getConfiguration(array $config, ContainerBuilder $container)
72+
{
73+
$this->addDefaultFactories($container);
74+
75+
return new Configuration($this->factories);
76+
}
77+
6878
private function loadBundles(array $config, XmlFileLoader $loader, ContainerBuilder $container)
6979
{
7080
foreach ($this->factories as $name => $factory) {

src/DependencyInjection/Factory/RoutingAdminFactory.php

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ public function getKey()
3535
public function addConfiguration(NodeBuilder $builder)
3636
{
3737
$builder->scalarNode('basepath')->defaultNull()->end();
38+
$builder->scalarNode('content_basepath')->defaultNull()->end();
3839
}
3940

4041
/**
@@ -45,6 +46,7 @@ public function create(array $config, ContainerBuilder $container, XmlFileLoader
4546
$loader->load('routing.xml');
4647

4748
$container->setParameter('cmf_sonata_phpcr_admin_integration.routing.basepath', $config['basepath']);
49+
$container->setParameter('cmf_sonata_phpcr_admin_integration.routing.content_basepath', $config['content_basepath']);
4850
}
4951

5052
/**
@@ -57,11 +59,17 @@ public function process(ContainerBuilder $container)
5759
}
5860

5961
$basepath = $container->getParameter('cmf_sonata_phpcr_admin_integration.routing.basepath');
60-
if (null !== $basepath) {
61-
return;
62+
if (null === $basepath) {
63+
$basepaths = $container->getParameter('cmf_routing.dynamic.persistence.phpcr.route_basepaths');
64+
$container->setParameter('cmf_sonata_phpcr_admin_integration.routing.basepath', reset($basepaths));
6265
}
6366

64-
$basepaths = $container->getParameter('cmf_routing.dynamic.persistence.phpcr.route_basepaths');
65-
$container->setParameter('cmf_sonata_phpcr_admin_integration.routing.basepath', reset($basepaths));
67+
$contentBasepath = $container->getParameter('cmf_sonata_phpcr_admin_integration.routing.content_basepath');
68+
if (null === $contentBasepath) {
69+
$contentBasepath = $container->hasParameter('cmf_content.persistence.phpcr.content_basepath')
70+
? $container->getParameter('cmf_content.persistence.phpcr.content_basepath')
71+
: '/';
72+
$container->setParameter('cmf_sonata_phpcr_admin_integration.routing.content_basepath', $contentBasepath);
73+
}
6674
}
6775
}

src/Resources/config/routing.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
</call>
2626

2727
<call method="setContentRoot">
28-
<argument>%cmf_routing.dynamic.persistence.phpcr.content_basepath%</argument>
28+
<argument>%cmf_sonata_phpcr_admin_integration.routing.content_basepath%</argument>
2929
</call>
3030

3131
<call method="setRouteRoot">

0 commit comments

Comments
 (0)