From 3bf4a1460e2b4019d9611fc5cc62bf0e64354931 Mon Sep 17 00:00:00 2001 From: Simon Vieille Date: Wed, 17 Mar 2021 20:42:09 +0100 Subject: [PATCH 01/13] update event suscribers --- .../post/2021/20210317-035213ovh_feu1.jpg | Bin 15109 -> 0 bytes .../EntityManager/EntityManagerEvent.php | 3 +++ .../BlogPostEventSubscriber.php | 10 +-------- .../EntityManagerEventSubscriber.php | 21 +++++++++++++----- src/Manager/EntityManager.php | 8 +++++++ 5 files changed, 28 insertions(+), 14 deletions(-) delete mode 100644 public/uploads/post/2021/20210317-035213ovh_feu1.jpg diff --git a/public/uploads/post/2021/20210317-035213ovh_feu1.jpg b/public/uploads/post/2021/20210317-035213ovh_feu1.jpg deleted file mode 100644 index 0e4e0e8d1d8a9c3814da48aee135ae6672c8a71b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15109 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 h@|a9YE%!NHS% */ -class BlogPostEventSubscriber implements EventSubscriberInterface +class BlogPostEventSubscriber extends EntityManagerEventSubscriber { protected Filesystem $filesystem; protected PostRepositoryQuery $query; @@ -26,14 +26,6 @@ class BlogPostEventSubscriber implements EventSubscriberInterface $this->query = $query; } - public static function getSubscribedEvents() - { - return [ - EntityManagerEvent::UPDATE_EVENT => 'onUpdate', - EntityManagerEvent::DELETE_EVENT => 'onDelete', - ]; - } - public function support(EntityInterface $entity) { return $entity instanceof Post; diff --git a/src/EventSuscriber/EntityManagerEventSubscriber.php b/src/EventSuscriber/EntityManagerEventSubscriber.php index ef819f1..856360d 100644 --- a/src/EventSuscriber/EntityManagerEventSubscriber.php +++ b/src/EventSuscriber/EntityManagerEventSubscriber.php @@ -10,18 +10,17 @@ use Symfony\Component\EventDispatcher\EventSubscriberInterface; * * @author Simon Vieille */ -class EntityManagerEventSubscriber implements EventSubscriberInterface +abstract class EntityManagerEventSubscriber implements EventSubscriberInterface { - public function __construct() - { - } - public static function getSubscribedEvents() { return [ EntityManagerEvent::CREATE_EVENT => 'onCreate', EntityManagerEvent::UPDATE_EVENT => 'onUpdate', EntityManagerEvent::DELETE_EVENT => 'onDelete', + EntityManagerEvent::PRE_CREATE_EVENT => 'onPreCreate', + EntityManagerEvent::PRE_UPDATE_EVENT => 'onPreUpdate', + EntityManagerEvent::PRE_DELETE_EVENT => 'onPreDelete', ]; } @@ -36,4 +35,16 @@ class EntityManagerEventSubscriber implements EventSubscriberInterface public function onDelete(EntityManagerEvent $event) { } + + public function onPreCreate(EntityManagerEvent $event) + { + } + + public function onPreUpdate(EntityManagerEvent $event) + { + } + + public function onPreDelete(EntityManagerEvent $event) + { + } } diff --git a/src/Manager/EntityManager.php b/src/Manager/EntityManager.php index 8216aab..cad899f 100644 --- a/src/Manager/EntityManager.php +++ b/src/Manager/EntityManager.php @@ -27,7 +27,10 @@ class EntityManager public function create(EntityInterface $entity): self { + $this->eventDispatcher->dispatch(new EntityManagerEvent($entity), EntityManagerEvent::PRE_CREATE_EVENT); + $this->persist($entity); + $this->eventDispatcher->dispatch(new EntityManagerEvent($entity), EntityManagerEvent::CREATE_EVENT); return $this; @@ -35,7 +38,10 @@ class EntityManager public function update(EntityInterface $entity): self { + $this->eventDispatcher->dispatch(new EntityManagerEvent($entity), EntityManagerEvent::PRE_UPDATE_EVENT); + $this->persist($entity); + $this->eventDispatcher->dispatch(new EntityManagerEvent($entity), EntityManagerEvent::UPDATE_EVENT); return $this; @@ -43,6 +49,8 @@ class EntityManager public function delete(EntityInterface $entity): self { + $this->eventDispatcher->dispatch(new EntityManagerEvent($entity), EntityManagerEvent::PRE_DELETE_EVENT); + $this->entityManager->remove($entity); $this->flush(); From 9032faa4e847cc5ab815f54e71790d52c8cb3323 Mon Sep 17 00:00:00 2001 From: Simon Vieille Date: Wed, 17 Mar 2021 20:42:36 +0100 Subject: [PATCH 02/13] PSR 2 compliance --- src/Controller/Blog/PostAdminController.php | 2 +- src/Entity/Blog/Category.php | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/Controller/Blog/PostAdminController.php b/src/Controller/Blog/PostAdminController.php index 93ffdbf..4e24d94 100644 --- a/src/Controller/Blog/PostAdminController.php +++ b/src/Controller/Blog/PostAdminController.php @@ -97,7 +97,7 @@ class PostAdminController extends AdminController /** * @Route("/show/{entity}", name="admin_blog_post_show") */ - public function show(Entity $entity, PostRepositoryQuery $postQuery): Response + public function show(Entity $entity): Response { return $this->render('blog/post_admin/show.html.twig', [ 'entity' => $entity, diff --git a/src/Entity/Blog/Category.php b/src/Entity/Blog/Category.php index a2ab1ff..8d6dced 100644 --- a/src/Entity/Blog/Category.php +++ b/src/Entity/Blog/Category.php @@ -2,6 +2,7 @@ namespace App\Entity\Blog; +use App\Doctrine\Timestampable; use App\Entity\EntityInterface; use App\Repository\Blog\CategoryRepository; use Doctrine\Common\Collections\ArrayCollection; @@ -14,6 +15,8 @@ use Doctrine\ORM\Mapping as ORM; */ class Category implements EntityInterface { + use Timestampable; + /** * @ORM\Id * @ORM\GeneratedValue From 7bfa9b542583a1a2a3206870df197ec7fd3bd739 Mon Sep 17 00:00:00 2001 From: Simon Vieille Date: Wed, 17 Mar 2021 20:43:01 +0100 Subject: [PATCH 03/13] update ui --- assets/css/admin.scss | 2 +- templates/admin/layout.html.twig | 26 +++++++++++++++++++++++- templates/user/user_admin/edit.html.twig | 2 +- 3 files changed, 27 insertions(+), 3 deletions(-) diff --git a/assets/css/admin.scss b/assets/css/admin.scss index 9186bef..b3b08ac 100644 --- a/assets/css/admin.scss +++ b/assets/css/admin.scss @@ -114,7 +114,7 @@ tr.table-primary-light { .fa { font-size: 1.2rem; margin-right: 5px; - min-width: 20px; + min-width: 30px; color: #fff; } diff --git a/templates/admin/layout.html.twig b/templates/admin/layout.html.twig index d13618e..e83d1e9 100644 --- a/templates/admin/layout.html.twig +++ b/templates/admin/layout.html.twig @@ -50,11 +50,35 @@ - {% if is_granted('ROLE_WRITER') %} + {% if is_granted('ROLE_ADMIN') %} + + {% endif %} + + {% if is_granted('ROLE_WRITER') %} + + {% endif %} diff --git a/templates/site/page/simple/page.html.twig b/templates/site/page/simple/page.html.twig new file mode 100644 index 0000000..3b78c55 --- /dev/null +++ b/templates/site/page/simple/page.html.twig @@ -0,0 +1,6 @@ +Node : {{ _node.label }}
+Menu : {{ _menu.label }}
+Navigation : {{ _navigation.label }}
+ +Page : {{ _page.title.value }}
+Content : {{ _page.content.value|raw }}
diff --git a/templates/site/page_admin/index.html.twig b/templates/site/page_admin/index.html.twig new file mode 100644 index 0000000..65fce23 --- /dev/null +++ b/templates/site/page_admin/index.html.twig @@ -0,0 +1,59 @@ +{% extends 'admin/layout.html.twig' %} + +{% block body %} +
+
+
+

Pages

+
+
+ + {{ knp_pagination_render(pager) }} +
+ + + + + + + + + + {% for item in pager %} + {% set edit = path('admin_site_page_edit', {entity: item.id}) %} + + + + + + {% else %} + + + + {% endfor %} + +
NomActions
+ + {{ item.name }} + + + + + + + +
+ + +
+
+
+ +
+
+ Aucun résultat +
+
+{% endblock %} diff --git a/templates/site/tree_admin/navigation.html.twig b/templates/site/tree_admin/navigation.html.twig index 70b40aa..68a9ede 100644 --- a/templates/site/tree_admin/navigation.html.twig +++ b/templates/site/tree_admin/navigation.html.twig @@ -111,6 +111,12 @@
{{ node.label }} + + {% if node.url %} + + {{ node.url }} + + {% endif %}
From 8ec9c75953f89a9338a3538310e59bf0b0d38d59 Mon Sep 17 00:00:00 2001 From: Simon Vieille Date: Fri, 19 Mar 2021 15:13:08 +0100 Subject: [PATCH 12/13] add page template form --- config/packages/app.yaml | 1 + src/Controller/Site/PageAdminController.php | 6 ++++- src/Entity/Site/Page/Block.php | 2 +- src/Form/Site/Page/PageType.php | 26 +++++++++++++++++++++ templates/site/page/simple/page.html.twig | 2 ++ templates/site/page/simple/page2.html.twig | 8 +++++++ templates/site/page_admin/_form.html.twig | 2 +- 7 files changed, 44 insertions(+), 3 deletions(-) create mode 100644 templates/site/page/simple/page2.html.twig diff --git a/config/packages/app.yaml b/config/packages/app.yaml index 5091281..52aad8e 100644 --- a/config/packages/app.yaml +++ b/config/packages/app.yaml @@ -5,3 +5,4 @@ app: name: 'Page simple' templates: - {name: "Template 1", file: "site/page/simple/page.html.twig"} + - {name: "Template 2", file: "site/page/simple/page2.html.twig"} diff --git a/src/Controller/Site/PageAdminController.php b/src/Controller/Site/PageAdminController.php index d86d875..20f1c38 100644 --- a/src/Controller/Site/PageAdminController.php +++ b/src/Controller/Site/PageAdminController.php @@ -13,6 +13,7 @@ use App\Repository\Site\Page\PageRepositoryQuery as RepositoryQuery; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Annotation\Route; +use App\Site\PageLocator; /** * @Route("/admin/site/page") @@ -57,10 +58,13 @@ class PageAdminController extends AdminController EntityFactory $factory, EntityManager $entityManager, RepositoryQuery $repositoryQuery, + PageLocator $pageLocator, Request $request ): Response { $entity = $repositoryQuery->filterById($entity)->findOne(); - $form = $this->createForm(EntityType::class, $entity); + $form = $this->createForm(EntityType::class, $entity, [ + 'pageConfiguration' => $pageLocator->getPage(get_class($entity)), + ]); if ($request->isMethod('POST')) { $form->handleRequest($request); diff --git a/src/Entity/Site/Page/Block.php b/src/Entity/Site/Page/Block.php index 0909d0d..902c580 100644 --- a/src/Entity/Site/Page/Block.php +++ b/src/Entity/Site/Page/Block.php @@ -27,7 +27,7 @@ class Block private $name; /** - * @ORM\Column(type="text") + * @ORM\Column(type="text", nullable=true) */ private $value; diff --git a/src/Form/Site/Page/PageType.php b/src/Form/Site/Page/PageType.php index e80c8d8..a79d6ed 100644 --- a/src/Form/Site/Page/PageType.php +++ b/src/Form/Site/Page/PageType.php @@ -8,6 +8,7 @@ use Symfony\Component\Form\Extension\Core\Type\TextType; use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\OptionsResolver\OptionsResolver; use Symfony\Component\Validator\Constraints\NotBlank; +use Symfony\Component\Form\Extension\Core\Type\ChoiceType; class PageType extends AbstractType { @@ -79,6 +80,30 @@ class PageType extends AbstractType ] ); + $builder->add( + 'template', + ChoiceType::class, + [ + 'label' => 'Rendu', + 'required' => true, + 'choices' => call_user_func(function() use ($options) { + $choices = []; + + foreach ($options['pageConfiguration']->getTemplates() as $template) { + $choices[$template['name']] = $template['file']; + } + + return $choices; + }), + 'attr' => [ + ], + 'constraints' => [ + new NotBlank(), + ], + ] + ); + + $builder->getData()->buildForm($builder); } @@ -86,6 +111,7 @@ class PageType extends AbstractType { $resolver->setDefaults([ 'data_class' => Page::class, + 'pageConfiguration' => null, ]); } } diff --git a/templates/site/page/simple/page.html.twig b/templates/site/page/simple/page.html.twig index 3b78c55..6ab1d64 100644 --- a/templates/site/page/simple/page.html.twig +++ b/templates/site/page/simple/page.html.twig @@ -1,3 +1,5 @@ +template 1
+ Node : {{ _node.label }}
Menu : {{ _menu.label }}
Navigation : {{ _navigation.label }}
diff --git a/templates/site/page/simple/page2.html.twig b/templates/site/page/simple/page2.html.twig new file mode 100644 index 0000000..ffb52bc --- /dev/null +++ b/templates/site/page/simple/page2.html.twig @@ -0,0 +1,8 @@ +template 2
+ +Node : {{ _node.label }}
+Menu : {{ _menu.label }}
+Navigation : {{ _navigation.label }}
+ +Page : {{ _page.title.value }}
+Content : {{ _page.content.value|raw }}
diff --git a/templates/site/page_admin/_form.html.twig b/templates/site/page_admin/_form.html.twig index d6305e1..514278d 100644 --- a/templates/site/page_admin/_form.html.twig +++ b/templates/site/page_admin/_form.html.twig @@ -11,7 +11,7 @@ {% endset %} {% set formOthers %} - {% for item in ['name'] %} + {% for item in ['name', 'template'] %} {{ form_row(form[item]) }} {% endfor %} {% endset %} From 36abfa39c8f0712d8e7a91e791d46e03b35f32d5 Mon Sep 17 00:00:00 2001 From: Simon Vieille Date: Fri, 19 Mar 2021 15:13:42 +0100 Subject: [PATCH 13/13] PSR 2 compliance --- src/Bundle/AppBundle.php | 3 +- src/Controller/Site/NodeAdminController.php | 57 +++++++++---------- src/Controller/Site/PageAdminController.php | 2 +- src/Controller/Site/PageController.php | 7 +-- src/DependencyInjection/AppExtension.php | 7 +-- .../Site/NodeEventSubscriber.php | 4 +- src/Form/Site/NodeType.php | 10 ++-- src/Form/Site/Page/PageType.php | 5 +- src/Repository/Site/NodeRepository.php | 9 ++- src/Router/SiteRouteLoader.php | 4 +- src/Site/PageLocator.php | 20 +++---- src/Site/SiteRequest.php | 4 +- 12 files changed, 65 insertions(+), 67 deletions(-) diff --git a/src/Bundle/AppBundle.php b/src/Bundle/AppBundle.php index 4ca9ef9..06b408c 100644 --- a/src/Bundle/AppBundle.php +++ b/src/Bundle/AppBundle.php @@ -11,9 +11,8 @@ namespace App\Bundle; -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\HttpKernel\Bundle\Bundle; use App\DependencyInjection\AppExtension; +use Symfony\Component\HttpKernel\Bundle\Bundle; class AppBundle extends Bundle { diff --git a/src/Controller/Site/NodeAdminController.php b/src/Controller/Site/NodeAdminController.php index fd1a315..3ec69e7 100644 --- a/src/Controller/Site/NodeAdminController.php +++ b/src/Controller/Site/NodeAdminController.php @@ -5,20 +5,20 @@ namespace App\Controller\Site; use App\Controller\Admin\AdminController; use App\Entity\Site\Node; use App\Entity\Site\Node as Entity; +use App\Entity\Site\Page\Page; use App\Event\EntityManager\EntityManagerEvent; use App\Factory\Site\NodeFactory as EntityFactory; +use App\Factory\Site\Page\PageFactory; use App\Form\Site\NodeMoveType; use App\Form\Site\NodeType as EntityType; use App\Manager\EntityManager; use App\Repository\Site\NodeRepository; +use App\Site\PageLocator; use Symfony\Component\EventDispatcher\EventDispatcherInterface; use Symfony\Component\Form\FormError; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Annotation\Route; -use App\Site\PageLocator; -use App\Factory\Site\Page\PageFactory; -use App\Entity\Site\Page\Page; /** * @Route("/admin/site/node") @@ -134,32 +134,6 @@ class NodeAdminController extends AdminController ]); } - protected function handlePageAssociation( - string $pageAction, - ?Page $pageEntity, - string $pageType, - Entity $entity, - PageFactory $pageFactory, - PageLocator $pageLocator - ) - { - if ($pageAction === 'new') { - $pageConfiguration = $pageLocator->getPage($pageType); - $page = $pageFactory->create($pageType, $entity->getLabel()); - $page->setTemplate($pageConfiguration->getTemplates()[0]['file']); - - $entity->setPage($page); - } elseif ($pageAction === 'existing') { - if ($pageEntity) { - $entity->setPage($pageEntity); - } else { - $this->addFlash('info', 'Aucun changement de page effectué.'); - } - } elseif ($pageAction === 'none') { - $entity->setPage(null); - } - } - /** * @Route("/move/{entity}", name="admin_site_node_move") */ @@ -261,4 +235,29 @@ class NodeAdminController extends AdminController { return ''; } + + protected function handlePageAssociation( + string $pageAction, + ?Page $pageEntity, + string $pageType, + Entity $entity, + PageFactory $pageFactory, + PageLocator $pageLocator + ) { + if ('new' === $pageAction) { + $pageConfiguration = $pageLocator->getPage($pageType); + $page = $pageFactory->create($pageType, $entity->getLabel()); + $page->setTemplate($pageConfiguration->getTemplates()[0]['file']); + + $entity->setPage($page); + } elseif ('existing' === $pageAction) { + if ($pageEntity) { + $entity->setPage($pageEntity); + } else { + $this->addFlash('info', 'Aucun changement de page effectué.'); + } + } elseif ('none' === $pageAction) { + $entity->setPage(null); + } + } } diff --git a/src/Controller/Site/PageAdminController.php b/src/Controller/Site/PageAdminController.php index 20f1c38..364fb0f 100644 --- a/src/Controller/Site/PageAdminController.php +++ b/src/Controller/Site/PageAdminController.php @@ -10,10 +10,10 @@ use App\Manager\EntityManager; use App\Page\FooPage; use App\Page\SimplePage; use App\Repository\Site\Page\PageRepositoryQuery as RepositoryQuery; +use App\Site\PageLocator; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Annotation\Route; -use App\Site\PageLocator; /** * @Route("/admin/site/page") diff --git a/src/Controller/Site/PageController.php b/src/Controller/Site/PageController.php index 89ee57a..f02bcd7 100644 --- a/src/Controller/Site/PageController.php +++ b/src/Controller/Site/PageController.php @@ -2,11 +2,10 @@ namespace App\Controller\Site; -use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; -use Symfony\Component\HttpFoundation\Response; -use Symfony\Component\Routing\Annotation\Route; -use Symfony\Component\HttpFoundation\Request; use App\Site\SiteRequest; +use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; +use Symfony\Component\HttpFoundation\Request; +use Symfony\Component\HttpFoundation\Response; class PageController extends AbstractController { diff --git a/src/DependencyInjection/AppExtension.php b/src/DependencyInjection/AppExtension.php index 97be534..664ea17 100644 --- a/src/DependencyInjection/AppExtension.php +++ b/src/DependencyInjection/AppExtension.php @@ -4,23 +4,22 @@ namespace App\DependencyInjection; use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\DependencyInjection\Extension\Extension; -use App\DependencyInjection\Configuration; class AppExtension extends Extension { /** - * {@inheritDoc} + * {@inheritdoc} */ public function load(array $configs, ContainerBuilder $container) { $configuration = $this->getConfiguration($configs, $container); $config = $this->processConfiguration($configuration, $configs); - $container->setParameter('app', $config); + $container->setParameter('app', $config); } /** - * {@inheritDoc} + * {@inheritdoc} */ public function getConfiguration(array $configs, ContainerBuilder $container) { diff --git a/src/EventSuscriber/Site/NodeEventSubscriber.php b/src/EventSuscriber/Site/NodeEventSubscriber.php index 16fabda..f4e7ce5 100644 --- a/src/EventSuscriber/Site/NodeEventSubscriber.php +++ b/src/EventSuscriber/Site/NodeEventSubscriber.php @@ -10,10 +10,10 @@ use App\Factory\Site\NodeFactory; use App\Manager\EntityManager; use App\Repository\Site\NodeRepository; use App\Slugify\Slugify; -use Symfony\Component\HttpKernel\KernelInterface; use Symfony\Bundle\FrameworkBundle\Console\Application; use Symfony\Component\Console\Input\ArrayInput; use Symfony\Component\Console\Output\BufferedOutput; +use Symfony\Component\HttpKernel\KernelInterface; /** * class NodeEventSubscriber. @@ -79,7 +79,7 @@ class NodeEventSubscriber extends EntityManagerEventSubscriber $number = 1; while ($this->nodeRepository->urlExists($generatedUrl.'-'.$number, $node)) { - $number++; + ++$number; } $generatedUrl = $generatedUrl.'-'.$number; diff --git a/src/Form/Site/NodeType.php b/src/Form/Site/NodeType.php index c78e856..66fb167 100644 --- a/src/Form/Site/NodeType.php +++ b/src/Form/Site/NodeType.php @@ -3,15 +3,15 @@ namespace App\Form\Site; use App\Entity\Site\Node; +use App\Entity\Site\Page\Page; +use Doctrine\ORM\EntityRepository; +use Symfony\Bridge\Doctrine\Form\Type\EntityType; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\Extension\Core\Type\ChoiceType; use Symfony\Component\Form\Extension\Core\Type\TextType; use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\OptionsResolver\OptionsResolver; use Symfony\Component\Validator\Constraints\NotBlank; -use App\Entity\Site\Page\Page; -use Symfony\Bridge\Doctrine\Form\Type\EntityType; -use Doctrine\ORM\EntityRepository; class NodeType extends AbstractType { @@ -77,7 +77,7 @@ class NodeType extends AbstractType 'label' => false, 'required' => true, 'mapped' => false, - 'choices' => call_user_func(function() use ($options) { + 'choices' => call_user_func(function () use ($options) { $choices = []; foreach ($options['pages'] as $page) { @@ -111,7 +111,7 @@ class NodeType extends AbstractType ] ); - if ($builder->getData()->getId() === null) { + if (null === $builder->getData()->getId()) { $builder->add( 'position', ChoiceType::class, diff --git a/src/Form/Site/Page/PageType.php b/src/Form/Site/Page/PageType.php index a79d6ed..0cb31ba 100644 --- a/src/Form/Site/Page/PageType.php +++ b/src/Form/Site/Page/PageType.php @@ -4,11 +4,11 @@ namespace App\Form\Site\Page; use App\Entity\Site\Page\Page; use Symfony\Component\Form\AbstractType; +use Symfony\Component\Form\Extension\Core\Type\ChoiceType; use Symfony\Component\Form\Extension\Core\Type\TextType; use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\OptionsResolver\OptionsResolver; use Symfony\Component\Validator\Constraints\NotBlank; -use Symfony\Component\Form\Extension\Core\Type\ChoiceType; class PageType extends AbstractType { @@ -86,7 +86,7 @@ class PageType extends AbstractType [ 'label' => 'Rendu', 'required' => true, - 'choices' => call_user_func(function() use ($options) { + 'choices' => call_user_func(function () use ($options) { $choices = []; foreach ($options['pageConfiguration']->getTemplates() as $template) { @@ -103,7 +103,6 @@ class PageType extends AbstractType ] ); - $builder->getData()->buildForm($builder); } diff --git a/src/Repository/Site/NodeRepository.php b/src/Repository/Site/NodeRepository.php index 519b410..b2821d0 100644 --- a/src/Repository/Site/NodeRepository.php +++ b/src/Repository/Site/NodeRepository.php @@ -17,16 +17,19 @@ class NodeRepository extends NestedTreeRepository { $query = $this->createQueryBuilder('n') ->where('n.url = :url') - ->setParameter(':url', $url); + ->setParameter(':url', $url) + ; if ($node->getId()) { $query ->andWhere('n.id != :id') - ->setParameter(':id', $node->getId()); + ->setParameter(':id', $node->getId()) + ; } return $query->getQuery() ->setMaxResults(1) - ->getOneOrNullResult(); + ->getOneOrNullResult() + ; } } diff --git a/src/Router/SiteRouteLoader.php b/src/Router/SiteRouteLoader.php index 1aba2f0..9dd6507 100644 --- a/src/Router/SiteRouteLoader.php +++ b/src/Router/SiteRouteLoader.php @@ -2,11 +2,11 @@ namespace App\Router; +use App\Controller\Site\PageController; use App\Repository\Site\NavigationRepositoryQuery; use Symfony\Component\Config\Loader\Loader; -use Symfony\Component\Routing\RouteCollection; -use App\Controller\Site\PageController; use Symfony\Component\Routing\Route; +use Symfony\Component\Routing\RouteCollection; /** * class SiteRouteLoader. diff --git a/src/Site/PageLocator.php b/src/Site/PageLocator.php index 734d59d..7ff736f 100644 --- a/src/Site/PageLocator.php +++ b/src/Site/PageLocator.php @@ -20,6 +20,16 @@ class PageLocator $this->loadPages(); } + public function getPages(): array + { + return $this->pages; + } + + public function getPage($className) + { + return $this->pages[$className] ?? null; + } + protected function loadPages(): void { $params = $this->params['site']['pages'] ?? []; @@ -35,14 +45,4 @@ class PageLocator $this->pages[$className] = $pageConfiguration; } } - - public function getPages(): array - { - return $this->pages; - } - - public function getPage($className) - { - return $this->pages[$className] ?? null; - } } diff --git a/src/Site/SiteRequest.php b/src/Site/SiteRequest.php index 8217ced..cd41954 100644 --- a/src/Site/SiteRequest.php +++ b/src/Site/SiteRequest.php @@ -2,14 +2,14 @@ namespace App\Site; +use App\Entity\Site\Menu; +use App\Entity\Site\Navigation; use App\Entity\Site\Node; use App\Entity\Site\Page\Page; use App\Repository\Site\NavigationRepositoryQuery; use App\Repository\Site\NodeRepository; use App\Repository\Site\Page\PageRepositoryQuery; use Symfony\Component\HttpFoundation\RequestStack; -use App\Entity\Site\Menu; -use App\Entity\Site\Navigation; /** * class SiteRequest.