src/Controller/ActualitesController.php line 116

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Model\Search;
  4. use App\Form\SearchType;
  5. use App\Model\SearchData;
  6. use App\Entity\Actualites;
  7. use App\Form\ActualitesType;
  8. use App\Service\FileUploader;
  9. use App\Repository\MenuRepository;
  10. use App\Repository\SousmenuRepository;
  11. use App\Repository\ActualitesRepository;
  12. use Doctrine\ORM\EntityManagerInterface;
  13. use Symfony\Component\HttpFoundation\Request;
  14. use Symfony\Component\HttpFoundation\Response;
  15. use Symfony\Component\Routing\Annotation\Route;
  16. use Symfony\Component\Validator\Validator\ValidatorInterface;
  17. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  18. #[Route('/actualites')]
  19. class ActualitesController extends AbstractController
  20. {   
  21.     private $em;
  22.     public function __construct(EntityManagerInterface $em)
  23.     {
  24.         $this->em $em;
  25.     }
  26.     
  27.     #[Route('/actualites'name'app_actualites_index'methods: ['GET','POST'])]
  28.     public function index(ActualitesRepository $actualitesRepository,MenuRepository $menuRepositoryRequest $request): Response
  29.     {
  30.        
  31.         
  32.             return $this->render('actualites/index.html.twig', [
  33.                 'actualitess' => $actualitesRepository->findAll(),
  34.                 'menus' => $menuRepository->findAll(),
  35.             ]);
  36.             
  37.         }
  38.         
  39.        
  40.     #[Route('/new'name'app_actualites_new'methods: ['GET''POST'])]
  41.     public function new(FileUploader $fileUploaderValidatorInterface $validatorRequest $requestSousmenuRepository $sousmenuRepositoryMenuRepository $menuRepository): Response
  42.     {
  43.         $submit $request->request->get('submit');
  44.         $errors null;
  45.         if ($submit) {
  46.             $menu = new Actualites();
  47.             $menu->setSousmenu($sousmenuRepository->find($request->request->get('menu')));
  48.             $menu->setTitle($request->request->get('libelle'));
  49.             // $menu->setPath($request->request->get('path'));
  50.             $menu->setContent($request->request->get('observation'));
  51.             $menu->setStatus($request->request->get('statut'));
  52.             $tab  null;
  53.             $tabvid  null;
  54.             if ($request->files->get('file')) {
  55.                 foreach ($request->files->get('file') as  $value) {
  56.                     $FileName $fileUploader->upload($value);
  57.                     $tab[] = $FileName;
  58.                 }
  59.                 $menu->setImage($tab);
  60.             }
  61.             if ($request->files->get('video')) {
  62.                 foreach ($request->files->get('video') as  $value) {
  63.                     $FileName $fileUploader->upload($value);
  64.                     $tabvid[] = $FileName;
  65.                 }
  66.                 $menu->setVideo($tabvid);
  67.             }
  68.             $errors $validator->validate($menu);
  69.             if (count($errors) > 0) {  
  70.                 $errorsString = (string) $errors;
  71.             }else {
  72.                 $this->em->persist($menu);
  73.                 $this->em->flush();
  74.                 return $this->redirectToRoute('app_actualites_index', [], Response::HTTP_SEE_OTHER);
  75.             }
  76.         }
  77.         return $this->renderForm('actualites/new.html.twig', [
  78.             'menus' => $menuRepository->findAll(),
  79.             'sousmenus' => $sousmenuRepository->findAll(),
  80.             'errors' => $errors,
  81.         ]);
  82.     }
  83.     #[Route('/actualites/{id}/desactive-status'name'app_actualites_desactive_status'methods: ['GET','POST'])]
  84.     public function desactiveStatus(Actualites $actualitesRequest $request)
  85.     {
  86.         
  87.         $actualites->setStatus(false);
  88.         $this->em->persist($actualites);
  89.         $this->em->flush();
  90.         return $this->redirectToRoute('app_actualites_index', [], Response::HTTP_SEE_OTHER);
  91.     }
  92.     #[Route('/actualites/{id}/active-status'name'app_actualites_active_status'methods: ['GET','POST'])]
  93.     public function activeStatus(Actualites $actualitesRequest $request)
  94.     {
  95.        
  96.        
  97.         $actualites->setStatus(true);
  98.         $this->em->persist($actualites);
  99.         $this->em->flush();
  100.         return $this->redirectToRoute('app_actualites_index', [], Response::HTTP_SEE_OTHER);
  101.     }
  102.     #[Route('actualites/edit/{id}/'name'app_actualites_edit'methods: ['GET''POST'])]
  103.     public function edit(FileUploader $fileUploaderValidatorInterface $validatorRequest $requestActualites $actualitesSousmenuRepository $sousmenuRepository,
  104.      MenuRepository $menuRepository): Response
  105.     {
  106.         $submit $request->request->get('submit');
  107.         /*  $oldphoto = $sousmenu2->getImage();
  108.         $oldvideo = $sousmenu2->getVideo(); */
  109.         $errors null;
  110.         if ($submit) {
  111.             $actualites->setSousmenu($sousmenuRepository->find($request->request->get('menu')));
  112.             $actualites->setTitle($request->request->get('libelle'));
  113.             $actualites->setPath($request->request->get('path'));
  114.             $actualites->setContent($request->request->get('observation'));
  115.             $actualites->setStatut($request->request->get('statut'));
  116.             $errors $validator->validate($actualites);
  117.             $tab  null;
  118.             $tabvid  null;
  119.             if ($request->files->get('file')) {
  120.                 // $FileName = $fileUploader->upload($request->files->get('file'));
  121.                 foreach ($request->files->get('file') as  $value) {
  122.                     $FileName $fileUploader->upload($value);
  123.                     $tab[] = $FileName;
  124.                 }
  125.                 $actualites->setImage($tab);
  126.             } /* else {
  127.                 if ($oldphoto) {
  128.                     foreach ($oldphoto as  $value) {
  129.                     $tab[] = $value;
  130.                 }
  131.                  $sousmenu2->setImage($tab);
  132.                 }
  133.             } */
  134.             if ($request->files->get('video')) {
  135.                 foreach ($request->files->get('video') as  $value) {
  136.                     $FileName $fileUploader->upload($value);
  137.                     $tabvid[] = $FileName;
  138.                 }
  139.                 $actualites->setVideo($tabvid);
  140.             }/* else {
  141.                 if ($oldvideo) {
  142.                     foreach ($oldvideo as  $value) {
  143.                     $tabvid[] = $value;
  144.                 }
  145.                  $sousmenu2->setVideo($tabvid);
  146.                 }
  147.             } */
  148.             if (count($errors) > 0) {  
  149.                 $errorsString = (string) $errors;
  150.             }else {
  151.                 $this->em->persist($actualites);
  152.                 $this->em->flush();
  153.                 return $this->redirectToRoute('app_actualites_index', [], Response::HTTP_SEE_OTHER);
  154.             }
  155.         }
  156.         return $this->renderForm('actualites/edit.html.twig', [
  157.             'idsousMenu' => $actualites->getSousmenu()->getId(),
  158.             'idActualites'=> $actualites->getId(),
  159.             'actualites' => $actualites,
  160.             'sousmenus' => $sousmenuRepository->findAll(),
  161.             'menus' => $menuRepository->findAll(),
  162.             'errors' => $errors,
  163.         ]);
  164.     }
  165.    /*  #[Route('/{id}', name: 'app_sousmenu2_delete', methods: ['POST'])]
  166.     public function delete(Request $request, Sousmenu2 $sousmenu2, Sousmenu2Repository $sousmenu2Repository): Response
  167.     {
  168.         if ($this->isCsrfTokenValid('delete'.$sousmenu2->getId(), $request->request->get('_token'))) {
  169.             $sousmenu2Repository->remove($sousmenu2, true);
  170.         }
  171.         return $this->redirectToRoute('app_sousmenu2_index', [], Response::HTTP_SEE_OTHER);
  172.     } */
  173.     #[Route('actualites/supprimer/{id}'name'app_actualites_delete'methods: ['POST'])]
  174.     public function delete(Request $requestActualites $actualitesMenuRepository $menuRepository): Response
  175.     {   
  176.         //dd( $menu);
  177.         if ($this->isCsrfTokenValid('delete'.$actualites->getId(), $request->request->get('_token'))) {
  178.             $this->em->remove($actualites);
  179.             $this->em->flush();
  180.         }
  181.         return $this->redirectToRoute('app_actualites_index', [], Response::HTTP_SEE_OTHER);
  182.     }
  183. }