src/Controller/Back/ContentController.php line 164

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Back;
  3. use App\Entity\Content;
  4. use App\Entity\SliderHeader;
  5. use App\Form\ContentType;
  6. use App\Repository\ContentRepository;
  7. use App\Repository\SliderHeaderRepository;
  8. use App\Services\UploadFileService;
  9. use App\Form\SliderType;
  10. use Doctrine\ORM\EntityManagerInterface;
  11. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  12. use Symfony\Component\HttpFoundation\Request;
  13. use Symfony\Component\Routing\Annotation\Route;
  14. /**
  15.  * @Route("/admin")
  16.  */
  17. class ContentController extends AbstractController
  18. {
  19.     /**
  20.      * @Route("/contenu", name="back_content_list")
  21.      */
  22.     public function list(ContentRepository $contentRepository)
  23.     {
  24.         return $this->render('back/content/list.html.twig', [
  25.             'contents' => $contentRepository->groupByPage()
  26.         ]);
  27.     }
  28.     /**
  29.      * @Route("/contenu/{slug}", name="back_content_single")
  30.      */
  31.     public function single(string $slugContentRepository $contentRepository)
  32.     {
  33.         return $this->render('back/content/single.html.twig', [
  34.             'sections' => $contentRepository->findBy(['page' => $slug]),
  35.             'slug' => $slug
  36.         ]);
  37.     }
  38.     /**
  39.      * @Route("/contenu/edit/{id}", name="back_content_edit")
  40.      */
  41.     public function edit(Content $contentRequest $requestEntityManagerInterface $emUploadFileService $uploadFileService)
  42.     {
  43.         $oldImage $content->getImage();
  44.         $form $this->createForm(ContentType::class, $content)->handleRequest($request);
  45.         if ($form->isSubmitted() && $form->isValid()) {
  46.             if ($content->getImage()) {
  47.                 $filename $uploadFileService->uploadImage($content->getImage(), UploadFileService::POST_IMAGE_DIR);
  48.                 $content->setImage($filename);
  49.             } else {
  50.                 $content->setImage($oldImage);
  51.             }
  52.             $em->flush();
  53.             $this->addFlash('success''Section éditée !');
  54.             return $this->redirectToRoute('back_content_single', ['slug' => $content->getPage()]);
  55.         }
  56.         return $this->render('back/content/edit.html.twig', [
  57.             'form' => $form->createView(),
  58.             'content' => $content
  59.         ]);
  60.     }
  61.     /**
  62.      * @Route("/slider/add", name="back_slider_add")
  63.      */
  64.     public function addSlide(Request $requestUploadFileService $uploadFileServiceEntityManagerInterface $em)
  65.     {
  66.         $sliderHeader = new SliderHeader();
  67.         $form $this->createForm(SliderType::class, $sliderHeader)->handleRequest($request);
  68.         if ($form->isSubmitted() && $form->isValid()) {
  69.             if ($sliderHeader->getImage1()) {
  70.                 $filename $uploadFileService->uploadImage($sliderHeader->getImage1(), UploadFileService::POST_IMAGE_DIR);
  71.                 $sliderHeader->setImage1($filename);
  72.             }
  73.             if ($sliderHeader->getImage2()) {
  74.                 $filename $uploadFileService->uploadImage($sliderHeader->getImage2(), UploadFileService::POST_IMAGE_DIR);
  75.                 $sliderHeader->setImage2($filename);
  76.             }
  77.             if ($sliderHeader->getImage3()) {
  78.                 $filename $uploadFileService->uploadImage($sliderHeader->getImage3(), UploadFileService::POST_IMAGE_DIR);
  79.                 $sliderHeader->setImage3($filename);
  80.             }
  81.             if ($sliderHeader->getImage4()) {
  82.                 $filename $uploadFileService->uploadImage($sliderHeader->getImage4(), UploadFileService::POST_IMAGE_DIR);
  83.                 $sliderHeader->setImage4($filename);
  84.             }
  85.             
  86.             $em->persist($sliderHeader);
  87.             $em->flush();
  88.             $this->addFlash('success''Slider créé');
  89.             return $this->redirectToRoute('back_slider_list');
  90.         }
  91.         return $this->render('back/slider/add.html.twig', [
  92.             'form' => $form->createView(),
  93.             'slider' => $sliderHeader
  94.         ]);
  95.     }
  96.     /**
  97.      * @Route("/slider/edit/{id}", name="back_slider_edit")
  98.      */
  99.     public function editSlide(SliderHeader $sliderHeaderRequest $requestUploadFileService $uploadFileServiceEntityManagerInterface $em)
  100.     {
  101.         $oldImage1 $sliderHeader->getImage1();
  102.         $oldImage2 $sliderHeader->getImage2();
  103.         $oldImage3 $sliderHeader->getImage3();
  104.         $oldImage4 $sliderHeader->getImage4();
  105.         $form $this->createForm(SliderType::class, $sliderHeader)->handleRequest($request);
  106.         if ($form->isSubmitted() && $form->isValid()) {
  107.             if ($sliderHeader->getImage1()) {
  108.                 $filename $uploadFileService->uploadImage($sliderHeader->getImage1(), UploadFileService::POST_IMAGE_DIR);
  109.                 $sliderHeader->setImage1($filename);
  110.             } else {
  111.                 $sliderHeader->setImage1($oldImage1);
  112.             }
  113.             if ($sliderHeader->getImage2()) {
  114.                 $filename $uploadFileService->uploadImage($sliderHeader->getImage2(), UploadFileService::POST_IMAGE_DIR);
  115.                 $sliderHeader->setImage2($filename);
  116.             } else {
  117.                 $sliderHeader->setImage2($oldImage2);
  118.             }
  119.             if ($sliderHeader->getImage3()) {
  120.                 $filename $uploadFileService->uploadImage($sliderHeader->getImage3(), UploadFileService::POST_IMAGE_DIR);
  121.                 $sliderHeader->setImage3($filename);
  122.             } else {
  123.                 $sliderHeader->setImage3($oldImage3);
  124.             }
  125.             if ($sliderHeader->getImage4()) {
  126.                 $filename $uploadFileService->uploadImage($sliderHeader->getImage4(), UploadFileService::POST_IMAGE_DIR);
  127.                 $sliderHeader->setImage4($filename);
  128.             } else {
  129.                 $sliderHeader->setImage4($oldImage4);
  130.             }
  131.             $em->persist($sliderHeader);
  132.             $em->flush();
  133.             $this->addFlash('success''Slider edité');
  134.             return $this->redirectToRoute('back_slider_list');
  135.         }
  136.         return $this->render('back/slider/edit.html.twig', [
  137.             'form' => $form->createView(),
  138.             'slider' => $sliderHeader
  139.         ]);
  140.     }
  141.     /**
  142.      * @Route("/slider/list", name="back_slider_list")
  143.      */
  144.     public function sliderList(SliderHeaderRepository $sliderHeaderRepository)
  145.     {
  146.         return $this->render('back/slider/list.html.twig', [
  147.             'sliders' => $sliderHeaderRepository->findBy([], ['id' => 'ASC '])
  148.         ]);
  149.     }
  150.     /**
  151.      * @Route("/slider/remove/{id}/{image}", name="back_slider_remove_img")
  152.      */
  153.     public function removeImage(int $idstring $imageSliderHeaderRepository $sliderHeaderRepositoryEntityManagerInterface $em)
  154.     {
  155.         $slide $sliderHeaderRepository->findOneBy(['id' => $id'image1' => $image]);
  156.         if ($slide) {
  157.             $slide->setImage1(null);
  158.         }
  159.         $slide $sliderHeaderRepository->findOneBy(['id' => $id'image2' => $image]);
  160.         if ($slide) {
  161.             $slide->setImage2(null);
  162.         }
  163.         $slide $sliderHeaderRepository->findOneBy(['id' => $id'image3' => $image]);
  164.         if ($slide) {
  165.             $slide->setImage3(null);
  166.         }
  167.         $slide $sliderHeaderRepository->findOneBy(['id' => $id'image4' => $image]);
  168.         if ($slide) {
  169.             $slide->setImage4(null);
  170.         }
  171.         $em->flush();
  172.         return $this->redirectToRoute('back_slider_edit', ['id' => $id]);
  173.     }
  174. }