src/Controller/SousmenuController.php line 398

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Model\Search;
  4. use App\Entity\Produit;
  5. use App\Entity\Annonces;
  6. use App\Entity\Sousmenu;
  7. use App\Form\SearchType;
  8. use App\Model\SearchData;
  9. use App\Entity\Actualites;
  10. use App\Form\SousmenuType;
  11. use App\Service\FileUploader;
  12. use App\Repository\MenuRepository;
  13. use App\Repository\SlideRepository;
  14. use App\Repository\MembreRepository;
  15. use App\Repository\ProduitRepository;
  16. use App\Repository\AnnoncesRepository;
  17. use App\Repository\SousmenuRepository;
  18. use App\Repository\ActualitesRepository;
  19. use Doctrine\ORM\EntityManagerInterface;
  20. use Knp\Component\Pager\PaginatorInterface;
  21. use Symfony\Component\HttpFoundation\Request;
  22. use Symfony\Component\HttpFoundation\Response;
  23. use Symfony\Component\Routing\Annotation\Route;
  24. use Symfony\Component\Validator\Validator\ValidatorInterface;
  25. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  26. class SousmenuController extends AbstractController
  27. {
  28.     private $em;
  29.     public function __construct(EntityManagerInterface $em)
  30.     {
  31.         $this->em $em;
  32.     }
  33.     
  34.     #[Route('/sous_menu'name'app_sousmenu_index'methods: ['GET','POST'])]
  35.     public function index(SousmenuRepository $sousmenuRepository): Response
  36.     {
  37.         return $this->render('sousmenu/index.html.twig', [
  38.             'sousmenus' => $sousmenuRepository->findAll(),
  39.             
  40.         ]);
  41.     }
  42.     #[Route('sous_menu/{id}/desactive-status'name'app_sousmenu_desactive_status'methods: ['GET','POST'])]
  43.     public function desactiveStatus(Sousmenu $sousmenuRequest $request)
  44.     {
  45.         
  46.         $sousmenu->setStatut(false);
  47.         $this->em->persist($sousmenu);
  48.         $this->em->flush();
  49.         return $this->redirectToRoute('app_sousmenu_index', [], Response::HTTP_SEE_OTHER);
  50.     }
  51.     #[Route('sous_menu/{id}/active-status'name'app_sousmenu_active_status'methods: ['GET','POST'])]
  52.     public function activeStatus(Sousmenu $sousmenuRequest $request)
  53.     {
  54.        
  55.        
  56.         $sousmenu->setStatut(true);
  57.         $this->em->persist($sousmenu);
  58.         $this->em->flush();
  59.         return $this->redirectToRoute('app_sousmenu_index', [], Response::HTTP_SEE_OTHER);
  60.     }
  61.     
  62.     #[Route('sousmenu/new'name'app_sousmenu_new'methods: ['GET''POST'])]
  63.     public function new(FileUploader $fileUploaderValidatorInterface $validatorRequest $requestMenuRepository $menuRepositorySousmenuRepository $sousmenuRepository): Response
  64.     {
  65.         $submit $request->request->get('submit');
  66.         $errors null;
  67.         if ($submit) {
  68.             //dd($request);
  69.             $menu = new Sousmenu();
  70.             $menu->setMenus($menuRepository->find($request->request->get('menu')));
  71.             $menu->setIntitule($request->request->get('libelle'));
  72.             $menu->setPath($request->request->get('path'));
  73.             $menu->setContent($request->request->get('observation')); 
  74.             $menu->setStatut($request->request->get('statut'));
  75.             $tab  null;
  76.             $tabvid  null;
  77.             if ($request->files->get('file')) {
  78.                 foreach ($request->files->get('file') as  $value) {
  79.                     $FileName $fileUploader->upload($value);
  80.                     $tab[] = $FileName;
  81.                 }
  82.                 $menu->setImage($tab);
  83.             }
  84.             if ($request->files->get('video')) {
  85.                 foreach ($request->files->get('video') as  $value) {
  86.                     $FileName $fileUploader->upload($value);
  87.                     $tabvid[] = $FileName;
  88.                 }
  89.                 $menu->setVideo($tabvid);
  90.             }
  91.             $errors $validator->validate($menu);
  92.             if (count($errors) > 0) {  
  93.                 $errorsString = (string) $errors;
  94.             }else {
  95.                 $this->em->persist($menu);
  96.                 $this->em->flush();
  97.                 return $this->redirectToRoute('app_sousmenu_index', [], Response::HTTP_SEE_OTHER);
  98.             }
  99.         }
  100.         return $this->renderForm('sousmenu/new.html.twig', [
  101.             'menus' => $menuRepository->findAll(),
  102.             
  103.             'errors' => $errors,
  104.         ]);
  105.     }
  106.     /* #[Route('/textes', name: 'app_sousmenu_textes', methods: ['GET'])]
  107.     public function textes(MenuRepository $menuRepository, SousmenuRepository $sousmenuRepository): Response
  108.     {   
  109.         $sousmenu=$sousmenuRepository->findOneBy(['path' => 'app_sousmenu_textes']);
  110.         return $this->render('sousmenu/textes.html.twig', [
  111.             'menus'=>$menuRepository->findAll(),
  112.             'sousmenu'=>$sousmenu,
  113.         ]);
  114.     } */
  115.     
  116.     #[Route('/membres'name'app_sousmenu_membres'methods: ['GET'])]
  117.     public function membres(MenuRepository $menuRepositoryMembreRepository $membreRepository): Response
  118.     {
  119.         $imagelink=null;
  120.         
  121.         $membre=$membreRepository->findBy(['statut'=>1]);
  122.         return $this->render('sousmenu/membres.html.twig', [
  123.             'menus' => $menuRepository->findBy(array(),
  124.             array('position'=>'ASC')),
  125.            'membre'=>$membre,
  126.            'imagelink' => $imagelink
  127.         ]);
  128.     }
  129.     #[Route('/actualites'name'app_sousmenu_actualites'methods: ['GET'])]
  130.     public function actualites(MenuRepository $menuRepositoryActualitesRepository $actualitesRepositoryRequest $request): Response
  131.     {
  132.         $imagelink=null;
  133.         $page $request->query->get('page'1);
  134.         $limit 4// number of items per page
  135.         $offset = ($page 1) * $limit;
  136.         $actualites=$actualitesRepository->findBy(['status'=>1], [], $limit$offset);
  137.         
  138.          $totalItems $actualitesRepository->count([]);
  139.          $totalPages ceil($totalItems $limit);
  140.         return $this->render('sousmenu/actualites.html.twig', [
  141.             'menus' => $menuRepository->findBy(array(),
  142.             array('position'=>'ASC')),
  143.            'actualites'=>$actualites,
  144.            'totalItems' => $totalItems,
  145.             'totalPages' => $totalPages,
  146.             'currentPage' => $page,
  147.            'imagelink' => $imagelink
  148.         ]);
  149.     }
  150.     #[Route('/annonces'name'app_sousmenu_annonces'methods: ['GET'])]
  151.     public function annonces(MenuRepository $menuRepositoryAnnoncesRepository $annoncesRepositoryRequest $request): Response
  152.     {
  153.         $imagelink=null;
  154.         $page $request->query->get('page'1);
  155.         $limit 6// number of items per page
  156.         $offset = ($page 1) * $limit;
  157.          $annonces=$annoncesRepository->findBy(['statut'=>1], [], $limit$offset);
  158.         
  159.          $totalItems $annoncesRepository->count([]);
  160.          $totalPages ceil($totalItems $limit);
  161.         return $this->render('sousmenu/annonces.html.twig', [
  162.             'menus' => $menuRepository->findBy(array(),
  163.             array('position'=>'ASC')),
  164.            'annonces'=>$annonces,
  165.            'totalItems' => $totalItems,
  166.             'totalPages' => $totalPages,
  167.             'currentPage' => $page,
  168.            'imagelink' => $imagelink
  169.         ]);
  170.         
  171.         
  172.     }
  173.     /* #[Route('/actualites', name: 'app_sousmenu_actualites', methods: ['GET'])]
  174.     public function actualites(MenuRepository $menuRepository): Response
  175.     {
  176.         return $this->render('sousmenu/actualites.html.twig', [
  177.             'menus'=>$menuRepository->findAll()
  178.         ]);
  179.     } */
  180.    /*  #[Route('/actualites', name: 'app_sousmenu_actualites', methods: ['GET'])]
  181.     public function actualites(MenuRepository $menuRepository, ActualitesRepository $actualitesRepository, Request $request, PaginatorInterface $paginator ): Response
  182.     {
  183.         $imagelink=null;
  184.         $pagination=$paginator->paginate(
  185.              $actualitesRepository->paginationQuery(),
  186.              $request->query->get('page',1),
  187.              6
  188.         );
  189.         return $this->render('sousmenu/actualites.html.twig', [
  190.             'menus'=>$menuRepository->findAll(),
  191.             'pagination' => $pagination,
  192.             'imagelink' => $imagelink
  193.         ]);
  194.     } */
  195.     #[Route('/actualites/{id}/show'name'actualite_show'methods: ['GET'])]
  196.     public function show(MenuRepository $menuRepository,ActualitesRepository $actualitesRepositoryActualites $actualites ):Response
  197.     {
  198.         $imagelink='upload/'.$actualites->getImage()[0];
  199.         return $this->render('sousmenu/actshow.html.twig', [
  200.             'menus' => $menuRepository->findBy(array(),
  201.             array('position'=>'ASC')),
  202.             'actualites' => $actualites,
  203.             'imagelink' => $imagelink
  204.         ]);
  205.     }
  206.     /* #[Route('/annonces', name: 'app_sousmenu_annonces', methods: ['GET'])]
  207.     public function annonces(MenuRepository $menuRepository, AnnoncesRepository $annoncesRepository, Request $request, PaginatorInterface $paginator ): Response
  208.     {
  209.         
  210.         $imagelink=null;
  211.         $pagination=$paginator->paginate(
  212.              $annoncesRepository->paginationQuery(),
  213.              $request->query->get('page',1),
  214.              6,
  215.              
  216.         );
  217.         return $this->render('sousmenu/annonces.html.twig', [
  218.             'menus'=>$menuRepository->findAll(),
  219.             'pagination' => $pagination,
  220.             'imagelink' => $imagelink
  221.         ]);
  222.     } */
  223.     #[Route('annonces/{id}/show'name'annonces_show'methods: ['GET'])]
  224.     public function showan(MenuRepository $menuRepository,AnnoncesRepository $annoncesRepositoryAnnonces $annonces ):Response
  225.     {
  226.         $imagelink='upload/'.$annonces->getImage()[0];
  227.         return $this->render('sousmenu/annshow.html.twig', [
  228.             'menus' => $menuRepository->findBy(array(),
  229.             array('position'=>'ASC')),
  230.             'annonces' => $annonces,
  231.             'imagelink' => $imagelink
  232.         ]);
  233.     }
  234.    
  235.     
  236.     #[Route('/confession'name'app_sousmenu_confession'methods: ['GET'])]
  237.     public function confession(MenuRepository $menuRepositorySlideRepository $slideRepository): Response
  238.     {
  239.         $imagelink=null;
  240.         return $this->render('sousmenu/confession.html.twig', [
  241.             'menus' => $menuRepository->findBy(array(),
  242.             array('position'=>'ASC')),
  243.             'slids'=>$slideRepository->findAll(),
  244.             'imagelink'=>$imagelink
  245.         ]);
  246.     }
  247.     #[Route('/decouvertees'name'app_sousmenu_decouvertees'methods: ['GET'])]
  248.     public function decouvertees(MenuRepository $menuRepositoryProduitRepository $repositoryRequest $request): Response
  249.     {
  250.         $imagelink=null;
  251.         $search = new Search();
  252.         $form $this->createForm(SearchType::class, $search);
  253.         $form->handleRequest($request);
  254.         if ($form->isSubmitted() && $form->isValid()) {
  255.             $products $repository->findBySearch($search);
  256.         } else {
  257.             $products $repository->findAll();
  258.         }
  259.         
  260.         return $this->renderForm('sousmenu/decouverteES.html.twig', [
  261.             'menus' => $menuRepository->findBy(array(),
  262.             array('position'=>'ASC')),
  263.             'products' => $products,
  264.             'form' => $form,
  265.             'imagelink'=>$imagelink
  266.             
  267.         ]);
  268.         return $this->render('sousmenu/decouverteES.html.twig', [
  269.             'menus' => $menuRepository->findBy(array(),
  270.             array('position'=>'ASC')),
  271.             'products'=>$repository->findAll(),
  272.             'imagelink'=>$imagelink
  273.         ]);
  274.     }
  275.     #[Route('decouvertees/{id}/show'name'produit_show'methods: ['GET'])]
  276.     public function detail(MenuRepository $menuRepositoryProduit $produit): Response
  277.     {
  278.         $imagelink=null;
  279.         return $this->render('sousmenu/detailproduit.html.twig', [
  280.             'menus' => $menuRepository->findBy(array(),
  281.             array('position'=>'ASC')),
  282.             'produit' => $produit,
  283.             'imagelink'=>$imagelink
  284.         ]);
  285.     }
  286.     
  287.     #[Route('/reportages'name'app_sousmenu_reportages'methods: ['GET'])]
  288.     public function reportages(MenuRepository $menuRepository): Response
  289.     {
  290.         $imagelink=null;
  291.         return $this->render('sousmenu/reportages.html.twig', [
  292.             'menus' => $menuRepository->findBy(array(),
  293.             array('position'=>'ASC')),
  294.             'imagelink'=>$imagelink
  295.         ]);
  296.     }
  297.     #[Route('/sondages'name'app_sousmenu_sondages'methods: ['GET'])]
  298.     public function sondages    (MenuRepository $menuRepository): Response
  299.     {
  300.         $imagelink=null;
  301.         return $this->render('sousmenu/sondages.html.twig', [
  302.             'menus' => $menuRepository->findBy(array(),
  303.             array('position'=>'ASC')),
  304.             'imagelink'=>$imagelink
  305.         ]);
  306.     }
  307.     #[Route('/formations'name'app_sousmenu_formations'methods: ['GET'])]
  308.     public function formations   (MenuRepository $menuRepository): Response
  309.     {
  310.         $imagelink=null;
  311.         return $this->render('sousmenu/formations.html.twig', [
  312.             'menus' => $menuRepository->findBy(array(),
  313.             array('position'=>'ASC')),
  314.            'imagelink'=>$imagelink
  315.         ]);
  316.     }
  317.     
  318.     #[Route('/telechargements'name'app_sousmenu_telechargements'methods: ['GET'])]
  319.     public function telechargements    (MenuRepository $menuRepository): Response
  320.     {
  321.         $imagelink=null;
  322.         return $this->render('sousmenu/telechargements.html.twig', [
  323.             'menus' => $menuRepository->findBy(array(),
  324.             array('position'=>'ASC')),
  325.             'imagelink'=>$imagelink
  326.         ]);
  327.     }
  328.     #[Route('/espacemembre'name'app_menu_espacemembre'methods: ['GET'])]
  329.     public function espacemembre(MenuRepository $menuRepository): Response
  330.     {
  331.         $imagelink=null;
  332.         return $this->render('sousmenu/espacemembre.html.twig', [
  333.             'menus' => $menuRepository->findBy(array(),
  334.             array('position'=>'ASC')),
  335.             'imagelink'=>$imagelink
  336.         ]);
  337.     }
  338.     #[Route('/devenirmembre'name'app_menu_devenirmembre'methods: ['GET'])]
  339.     public function devenirmembre(MenuRepository $menuRepository): Response
  340.     {
  341.         $imagelink=null;
  342.         return $this->render('sousmenu/devenirmembre.html.twig', [
  343.             'menus' => $menuRepository->findBy(array(),
  344.             array('position'=>'ASC')),
  345.             'imagelink'=>$imagelink
  346.         ]);
  347.     }
  348.     #[Route('/{id}'name'app_sousmenu_show'methods: ['GET'])]
  349.     /* public function show(Sousmenu $sousmenu): Response
  350.     {
  351.         return $this->render('sousmenu/show.html.twig', [
  352.             'sousmenu' => $sousmenu,
  353.         ]);
  354.     } */
  355.     #[Route('sousmenu/edit/{id}'name'app_sousmenu_edit'methods: ['GET''POST'])]
  356.     public function edit(FileUploader $fileUploader,ValidatorInterface $validatorRequest $requestMenuRepository $menuRepositorySousmenu $sousmenu): Response
  357.     {   $imagelink=null;
  358.         $submit $request->request->get('submit');
  359.         /* $oldphoto = $sousmenu->getImage();
  360.         $oldvideo = $sousmenu->getVideo(); */
  361.         $errors null;
  362.         if ($submit) {
  363.             $sousmenu->setMenus($menuRepository->find($request->request->get('menu')));
  364.             $sousmenu->setIntitule($request->request->get('libelle'));
  365.             $sousmenu->setPath($request->request->get('path'));
  366.             $sousmenu->setContent($request->request->get('observation'));
  367.             $menu->setStatut($request->request->get('statut'));
  368.             $tab  null;
  369.             $tabvid  null;
  370.             if ($request->files->get('file')) {
  371.                 // $FileName = $fileUploader->upload($request->files->get('file'));
  372.                 foreach ($request->files->get('file') as  $value) {
  373.                     $FileName $fileUploader->upload($value);
  374.                     $tab[] = $FileName;
  375.                 }
  376.                 $sousmenu->setImage($tab);
  377.             } /* else {
  378.                 if ($oldphoto) {
  379.                     foreach ($oldphoto as  $value) {
  380.                     $tab[] = $fileUploader->upload($value);
  381.                 }
  382.                  $sousmenu->setImage($tab);
  383.                 }
  384.             } */
  385.             if ($request->files->get('video')) {
  386.                 foreach ($request->files->get('video') as  $value) {
  387.                     $FileName $fileUploader->upload($value);
  388.                     $tabvid[] = $FileName;
  389.                 }
  390.                 $sousmenu->setVideo($tabvid);
  391.             }/* else {
  392.                 if ($oldvideo) {
  393.                     foreach ($oldvideo as  $value) {
  394.                     $tabvid[] = $value;
  395.                 }
  396.                  $sousmenu->setVideo($tabvid);
  397.                 }
  398.             } */
  399.             $errors $validator->validate($sousmenu);
  400.             if (count($errors) > 0) {
  401.                 $errorsString = (string) $errors;
  402.             } else {
  403.                 $this->em->persist($sousmenu);
  404.                 $this->em->flush();
  405.                 return $this->redirectToRoute('app_sousmenu_index', [], Response::HTTP_SEE_OTHER);
  406.             }
  407.         }
  408.         return $this->renderForm('sousmenu/edit.html.twig', [
  409.             'idMenu' => $sousmenu->getMenus()->getId(),
  410.             'idSousMenu'=> $sousmenu->getId(),
  411.             'sousmenu' => $sousmenu,
  412.             'menus' => $menuRepository->findAll(),
  413.             'errors' => $errors,
  414.             'imagelink'=>$imagelink
  415.         ]);
  416.     }
  417.     /* #[Route('/{id}', name: 'app_sousmenu_delete', methods: ['POST'])]
  418.     public function delete(Request $request, Sousmenu $sousmenu, SousmenuRepository $sousmenuRepository): Response
  419.     {
  420.         if ($this->isCsrfTokenValid('delete'.$sousmenu->getId(), $request->request->get('_token'))) {
  421.             $sousmenuRepository->remove($sousmenu, true);
  422.         }
  423.         return $this->redirectToRoute('app_sousmenu_index', [], Response::HTTP_SEE_OTHER);
  424.     } */
  425.     #[Route('sousmenu/supprimer/{id}'name'app_sousmenu_delete'methods: ['POST'])]
  426.     public function delete(Request $requestSousmenu $sousmenuMenuRepository $menuRepository): Response
  427.     {   
  428.         //dd( $menu);
  429.         if ($this->isCsrfTokenValid('delete'.$sousmenu->getId(), $request->request->get('_token'))) {
  430.             $this->em->remove($sousmenu);
  431.             $this->em->flush();
  432.         }
  433.         return $this->redirectToRoute('app_sousmenu_index', [], Response::HTTP_SEE_OTHER);
  434.     }
  435.      
  436. }