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

Commit a9f162e

Browse files
committed
replace them all
add data transformers on abstract way use current form builder fix menu block admin fix menu admin problem use parent service definition use current form builder fix menu block admin fix menu admin problem use parent service definition Apply fixes from StyleCI
1 parent 38da164 commit a9f162e

19 files changed

+139
-68
lines changed

composer.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@
1515
"php": "^5.5.6|^7.0",
1616
"symfony/framework-bundle": "^2.8|^3.0",
1717
"sonata-project/doctrine-phpcr-admin-bundle": "^2.0",
18-
"sonata-project/admin-bundle": "^3.6.0"
18+
"sonata-project/admin-bundle": "^3.6.0",
19+
"symfony-cmf/tree-browser-bundle": "^2.0"
1920
},
2021
"require-dev": {
2122
"symfony-cmf/testing": "^2.0",

src/Admin/AbstractAdmin.php

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
<?php
2+
3+
namespace Symfony\Cmf\Bundle\SonataAdminIntegrationBundle\Admin;
4+
5+
use Doctrine\Bundle\PHPCRBundle\Form\DataTransformer\DocumentToPathTransformer;
6+
use Sonata\DoctrinePHPCRAdminBundle\Admin\Admin;
7+
use Symfony\Bridge\Doctrine\ManagerRegistry;
8+
use Symfony\Component\Form\FormBuilder;
9+
10+
/**
11+
* @author Maximilian Berghoff <[email protected]>
12+
*/
13+
class AbstractAdmin extends Admin
14+
{
15+
/**
16+
* @var ManagerRegistry
17+
*/
18+
private $managerRegistry;
19+
20+
public function setManagerRegistry(ManagerRegistry $managerRegistry)
21+
{
22+
$this->managerRegistry = $managerRegistry;
23+
}
24+
25+
/**
26+
* Will add a the phpcr data transformer to a specific field.
27+
*
28+
* @param FormBuilder $formBuilder
29+
* @param $fieldName
30+
*/
31+
public function addTransformerToField(FormBuilder $formBuilder, $fieldName)
32+
{
33+
$formBuilder->get($fieldName)->addModelTransformer(new DocumentToPathTransformer(
34+
$this->managerRegistry->getManagerForClass($this->getClass())
35+
));
36+
}
37+
}

src/Admin/Block/AbstractBlockAdmin.php

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,14 @@
1212
namespace Symfony\Cmf\Bundle\SonataAdminIntegrationBundle\Admin\Block;
1313

1414
use Sonata\AdminBundle\Form\FormMapper;
15-
use Sonata\DoctrinePHPCRAdminBundle\Admin\Admin;
16-
use Sonata\DoctrinePHPCRAdminBundle\Form\Type\TreeModelType;
15+
use Symfony\Cmf\Bundle\SonataAdminIntegrationBundle\Admin\AbstractAdmin;
16+
use Symfony\Cmf\Bundle\TreeBrowserBundle\Form\Type\TreeSelectType;
1717
use Symfony\Component\Form\Extension\Core\Type\TextType;
1818

1919
/**
2020
* @author Nicolas Bastien <[email protected]>
2121
*/
22-
abstract class AbstractBlockAdmin extends Admin
22+
abstract class AbstractBlockAdmin extends AbstractAdmin
2323
{
2424
/**
2525
* @var string
@@ -31,7 +31,7 @@ abstract class AbstractBlockAdmin extends Admin
3131
*/
3232
public function getExportFormats()
3333
{
34-
return array();
34+
return [];
3535
}
3636

3737
/**
@@ -44,12 +44,14 @@ protected function configureFormFields(FormMapper $formMapper)
4444
->with('form.group_location', ['class' => 'col-md-3'])
4545
->add(
4646
'parentDocument',
47-
TreeModelType::class,
48-
['root_node' => $this->getRootPath(), 'choice_list' => array(), 'select_root_node' => true]
47+
TreeSelectType::class,
48+
['root_node' => $this->getRootPath(), 'widget' => 'browser']
4949
)
5050
->add('name', TextType::class)
5151
->end()
5252
->end()
5353
;
54+
55+
$this->addTransformerToField($formMapper->getFormBuilder(), 'parentDocument');
5456
}
5557
}

src/Admin/Block/MenuBlockAdmin.php

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
use Sonata\AdminBundle\Datagrid\DatagridMapper;
1515
use Sonata\AdminBundle\Datagrid\ListMapper;
1616
use Sonata\AdminBundle\Form\FormMapper;
17-
use Sonata\DoctrinePHPCRAdminBundle\Form\Type\TreeModelType;
17+
use Symfony\Cmf\Bundle\TreeBrowserBundle\Form\Type\TreeSelectType;
1818

1919
/**
2020
* Sonata admin for the MenuBlock. Allows to select the target menu node from
@@ -47,12 +47,14 @@ protected function configureFormFields(FormMapper $formMapper)
4747
->with('form.group_block', ['class' => 'col-md-9'])
4848
->add(
4949
'menuNode',
50-
TreeModelType::class,
51-
['choice_list' => [], 'required' => true, 'root_node' => $this->menuPath]
50+
TreeSelectType::class,
51+
['root_node' => $this->menuPath, 'widget' => 'browser', 'required' => true]
5252
)
5353
->end()
5454
->end()
5555
;
56+
57+
$this->addTransformerToField($formMapper->getFormBuilder(), 'menuNode');
5658
}
5759

5860
/**

src/Admin/Block/ReferenceBlockAdmin.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
use Sonata\AdminBundle\Datagrid\DatagridMapper;
1515
use Sonata\AdminBundle\Datagrid\ListMapper;
1616
use Sonata\AdminBundle\Form\FormMapper;
17-
use Sonata\DoctrinePHPCRAdminBundle\Form\Type\TreeModelType;
17+
use Symfony\Cmf\Bundle\TreeBrowserBundle\Form\Type\TreeSelectType;
1818

1919
/**
2020
* @author Lukas Kahwe Smith <[email protected]>
@@ -44,8 +44,8 @@ protected function configureFormFields(FormMapper $formMapper)
4444
->with('form.group_block', ['class' => 'col-md-9'])
4545
->add(
4646
'referencedBlock',
47-
TreeModelType::class,
48-
['choice_list' => [], 'required' => false, 'root_node' => $this->getRootPath()]
47+
TreeSelectType::class,
48+
['root_node' => $this->getRootPath(), 'widget' => 'browser', 'required' => false]
4949
)
5050
->end()
5151
->end()

src/Admin/Menu/AbstractMenuNodeAdmin.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,14 @@
1414
use Sonata\AdminBundle\Datagrid\ListMapper;
1515
use Sonata\AdminBundle\Form\FormMapper;
1616
use Sonata\AdminBundle\Show\ShowMapper;
17-
use Sonata\DoctrinePHPCRAdminBundle\Admin\Admin;
17+
use Symfony\Cmf\Bundle\SonataAdminIntegrationBundle\Admin\AbstractAdmin;
1818
use Symfony\Component\Form\Extension\Core\Type\TextType;
1919
use Symfony\Cmf\Bundle\MenuBundle\Model\MenuNodeBase;
2020

2121
/**
2222
* Common base admin for Menu and MenuNode.
2323
*/
24-
abstract class AbstractMenuNodeAdmin extends Admin
24+
abstract class AbstractMenuNodeAdmin extends AbstractAdmin
2525
{
2626
/**
2727
* @var string
@@ -74,7 +74,7 @@ protected function configureShowFields(ShowMapper $showMapper)
7474

7575
public function getExportFormats()
7676
{
77-
return array();
77+
return [];
7878
}
7979

8080
public function setContentRoot($contentRoot)

src/Admin/Menu/MenuNodeAdmin.php

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,14 @@
1111

1212
namespace Symfony\Cmf\Bundle\SonataAdminIntegrationBundle\Admin\Menu;
1313

14+
use Symfony\Cmf\Bundle\TreeBrowserBundle\Form\Type\TreeSelectType;
1415
use Symfony\Component\Form\Extension\Core\Type\TextType;
1516
use Symfony\Component\Form\FormEvent;
1617
use Symfony\Component\Form\FormEvents;
1718
use Symfony\Cmf\Bundle\MenuBundle\Model\MenuNode;
1819
use Sonata\AdminBundle\Datagrid\ListMapper;
1920
use Sonata\AdminBundle\Form\FormMapper;
2021
use Sonata\DoctrinePHPCRAdminBundle\Form\Type\ChoiceFieldMaskType;
21-
use Sonata\DoctrinePHPCRAdminBundle\Form\Type\TreeModelType;
2222
use Knp\Menu\ItemInterface as MenuItemInterface;
2323
use Doctrine\Common\Util\ClassUtils;
2424

@@ -44,15 +44,17 @@ protected function configureFormFields(FormMapper $formMapper)
4444
$formMapper
4545
->tab('form.tab_general')
4646
->with('form.group_location', ['class' => 'col-sm-3'])
47-
->add('parentDocument', TreeModelType::class, array(
48-
'root_node' => $this->menuRoot,
49-
'choice_list' => array(),
50-
'select_root_node' => true,
51-
))
47+
->add(
48+
'parentDocument',
49+
TreeSelectType::class,
50+
['root_node' => $this->menuRoot, 'widget' => 'browser']
51+
)
5252
->end()
5353
->end()
5454
;
5555

56+
$this->addTransformerToField($formMapper->getFormBuilder(), 'parentDocument');
57+
5658
parent::configureFormFields($formMapper);
5759

5860
if (null === $this->getParentFieldDescription()) {
@@ -69,22 +71,22 @@ protected function configureFormFields(FormMapper $formMapper)
6971
'map' => array(
7072
'route' => array('link'),
7173
'uri' => array('link'),
72-
'content' => array('content', TreeModelType::class),
74+
'content' => array('content', TreeSelectType::class),
7375
),
7476
'placeholder' => 'auto',
7577
'required' => false,
7678
))
7779
->add('link', TextType::class, array('required' => false, 'mapped' => false))
78-
->add('content', TreeModelType::class,
79-
array(
80-
'root_node' => $this->contentRoot,
81-
'choice_list' => array(),
82-
'required' => false,
83-
)
80+
->add(
81+
'content',
82+
TreeSelectType::class,
83+
['root_node' => $this->contentRoot, 'widget' => 'browser', 'required' => false]
8484
)
8585
->end()
8686
->end()
8787
;
88+
89+
$this->addTransformerToField($formMapper->getFormBuilder(), 'content');
8890
}
8991
}
9092

src/Admin/Routing/RedirectRouteAdmin.php

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,12 @@
1414
use Sonata\AdminBundle\Datagrid\DatagridMapper;
1515
use Sonata\AdminBundle\Datagrid\ListMapper;
1616
use Sonata\AdminBundle\Form\FormMapper;
17-
use Sonata\DoctrinePHPCRAdminBundle\Admin\Admin;
18-
use Sonata\DoctrinePHPCRAdminBundle\Form\Type\TreeModelType;
17+
use Symfony\Cmf\Bundle\SonataAdminIntegrationBundle\Admin\AbstractAdmin;
18+
use Symfony\Cmf\Bundle\TreeBrowserBundle\Form\Type\TreeSelectType;
1919
use Symfony\Component\Form\Extension\Core\Type\TextType;
2020
use Symfony\Cmf\Bundle\RoutingBundle\Model\Route;
2121

22-
class RedirectRouteAdmin extends Admin
22+
class RedirectRouteAdmin extends AbstractAdmin
2323
{
2424
protected $translationDomain = 'CmfSonataAdminIntegrationBundle';
2525

@@ -41,8 +41,8 @@ protected function configureFormFields(FormMapper $formMapper)
4141
->with('form.group_location', ['class' => 'col-md-3'])
4242
->add(
4343
'parentDocument',
44-
TreeModelType::class,
45-
['choice_list' => [], 'select_root_node' => true, 'root_node' => $this->routeRoot]
44+
TreeSelectType::class,
45+
['root_node' => $this->routeRoot, 'widget' => 'browser']
4646
)
4747
->add('name', TextType::class)
4848
->end()
@@ -52,11 +52,12 @@ protected function configureFormFields(FormMapper $formMapper)
5252
->add('uri', TextType::class, ['required' => false])
5353
->add(
5454
'routeTarget',
55-
TreeModelType::class,
56-
['choice_list' => [], 'required' => false, 'root_node' => $this->routeRoot]
55+
TreeSelectType::class,
56+
['root_node' => $this->routeRoot, 'widget' => 'browser', 'required' => false]
5757
)
5858
->end()
5959
;
60+
$this->addTransformerToField($formMapper->getFormBuilder(), 'parentDocument');
6061
}
6162

6263
protected function configureDatagridFilters(DatagridMapper $datagridMapper)

src/Admin/Routing/RouteAdmin.php

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,15 @@
1515
use Sonata\AdminBundle\Datagrid\ListMapper;
1616
use Sonata\AdminBundle\Form\FormMapper;
1717
use Sonata\CoreBundle\Form\Type\ImmutableArrayType;
18-
use Sonata\DoctrinePHPCRAdminBundle\Admin\Admin;
19-
use Sonata\DoctrinePHPCRAdminBundle\Form\Type\TreeModelType;
18+
use Symfony\Cmf\Bundle\SonataAdminIntegrationBundle\Admin\AbstractAdmin;
19+
use Symfony\Cmf\Bundle\TreeBrowserBundle\Form\Type\TreeSelectType;
2020
use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
2121
use Symfony\Component\Form\Extension\Core\Type\TextType;
2222
use Symfony\Cmf\Bundle\RoutingBundle\Model\Route;
2323
use Symfony\Cmf\Bundle\RoutingBundle\Form\Type\RouteTypeType;
2424
use PHPCR\Util\PathHelper;
2525

26-
class RouteAdmin extends Admin
26+
class RouteAdmin extends AbstractAdmin
2727
{
2828
protected $translationDomain = 'CmfSonataAdminIntegrationBundle';
2929

@@ -53,8 +53,8 @@ protected function configureFormFields(FormMapper $formMapper)
5353
->with('form.group_location', ['class' => 'col-md-3'])
5454
->add(
5555
'parentDocument',
56-
TreeModelType::class,
57-
['choice_list' => [], 'select_root_node' => true, 'root_node' => $this->routeRoot]
56+
TreeSelectType::class,
57+
['root_node' => $this->routeRoot, 'widget' => 'browser']
5858
)
5959
->add('name', TextType::class)
6060
->end() // group location
@@ -63,8 +63,8 @@ protected function configureFormFields(FormMapper $formMapper)
6363
->with('form.group_target', ['class' => 'col-md-9'])
6464
->add(
6565
'content',
66-
TreeModelType::class,
67-
['choice_list' => [], 'required' => false, 'root_node' => $this->contentRoot]
66+
TreeSelectType::class,
67+
['root_node' => $this->routeRoot, 'widget' => 'browser', 'required' => false]
6868
)
6969
->end() // group general
7070
->end() // tab general
@@ -95,6 +95,11 @@ protected function configureFormFields(FormMapper $formMapper)
9595
->ifEnd()
9696

9797
->end(); // tab general/routing
98+
99+
$this->addTransformerToField($formMapper->getFormBuilder(), 'parentDocument');
100+
if (null === $this->getParentFieldDescription()) {
101+
$this->addTransformerToField($formMapper->getFormBuilder(), 'content');
102+
}
98103
}
99104

100105
protected function configureDatagridFilters(DatagridMapper $datagridMapper)

src/DependencyInjection/CmfSonataAdminIntegrationExtension.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,8 @@ public function load(array $configs, ContainerBuilder $container)
5555
$loader = new XmlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
5656

5757
$this->loadBundles($config['bundles'], $loader, $container);
58+
59+
$loader->load('main-phpcr.xml');
5860
}
5961

6062
private function loadBundles(array $config, XmlFileLoader $loader, ContainerBuilder $container)

0 commit comments

Comments
 (0)