src/Controller/AgendaController.php line 27

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