src/Controller/AnnoncesController.php line 110

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