src/Controller/PageController.php line 18

  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Page;
  4. use App\Form\PageType;
  5. use App\Repository\PageRepository;
  6. use Doctrine\Persistence\ManagerRegistry;
  7. use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted;
  8. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  9. use Symfony\Component\HttpFoundation\Request;
  10. use Symfony\Component\HttpFoundation\Response;
  11. use Symfony\Component\Routing\Annotation\Route;
  12. #[Route('/page')]
  13. class PageController extends AbstractController
  14. {
  15.     public function footer(Request $requestPageRepository $pageRepository): Response
  16.     {
  17.         $currentUrl $request->getPathInfo();
  18.         $specialUrls = ['/pro-techniky''/vseobecne-podminky'];
  19.         $isSpecialPage in_array($currentUrl$specialUrlstrue);
  20.         return $this->render('page/menuFooter.html.twig', [
  21.             'request' => $request,
  22.             'mainPages' => $pageRepository->findBy(['visible' => true'main' => true], ['rank' => 'asc']),
  23.             'pages' => $pageRepository->findBy(['visible' => true'main' => false], ['rank' => 'asc']),
  24.             'isSpecialPage' => $isSpecialPage,
  25.         ]);
  26.     }
  27.     #[IsGranted('ROLE_ADMIN')]
  28.     #[Route('/'name'page_index'methods: ['GET'])]
  29.     public function index(PageRepository $pageRepository): Response
  30.     {
  31.         return $this->render('page/index.html.twig', [
  32.             'pages' => $pageRepository->findBy([], ['rank' => 'asc']),
  33.         ]);
  34.     }
  35.     #[IsGranted('ROLE_ADMIN')]
  36.     #[Route('/new'name'page_new'methods: ['GET''POST'])]
  37.     public function new(Request $requestManagerRegistry $managerRegistry): Response
  38.     {
  39.         $page = new Page();
  40.         $form $this->createForm(PageType::class, $page);
  41.         $form->handleRequest($request);
  42.         if ($form->isSubmitted() && $form->isValid()) {
  43.             $entityManager $managerRegistry->getManager();
  44.             $entityManager->persist($page);
  45.             $entityManager->flush();
  46.             return $this->redirectToRoute('page_index');
  47.         }
  48.         return $this->render('page/new.html.twig', [
  49.             'page' => $page,
  50.             'form' => $form->createView(),
  51.         ]);
  52.     }
  53.     #[IsGranted('ROLE_ADMIN')]
  54.     #[Route('/{id}/edit'name'page_edit'methods: ['GET''POST'])]
  55.     public function edit(Request $requestPage $pageManagerRegistry $managerRegistry): Response
  56.     {
  57.         $form $this->createForm(PageType::class, $page);
  58.         $form->handleRequest($request);
  59.         if ($form->isSubmitted() && $form->isValid()) {
  60.             $managerRegistry->getManager()->flush();
  61.             return $this->redirectToRoute('page_index', [
  62.                 'id' => $page->getId(),
  63.             ]);
  64.         }
  65.         return $this->render('page/edit.html.twig', [
  66.             'page' => $page,
  67.             'form' => $form->createView(),
  68.         ]);
  69.     }
  70.     #[IsGranted('ROLE_ADMIN')]
  71.     #[Route('/{id}'name'page_delete'methods: ['POST'])]
  72.     public function delete(Request $requestPage $pageManagerRegistry $managerRegistry): Response
  73.     {
  74.         if ($this->isCsrfTokenValid('delete' $page->getId(), $request->request->get('_token'))) {
  75.             $entityManager $managerRegistry->getManager();
  76.             $entityManager->remove($page);
  77.             $entityManager->flush();
  78.         }
  79.         return $this->redirectToRoute('page_index');
  80.     }
  81. }