src/Controller/AdminController.php line 1668

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. #-----------(Tables)ENTITY--------------
  4. use App\Entity\Recrutements;
  5. use App\Entity\Users;
  6. use App\Entity\Partenaires;
  7. use App\Entity\Mentions;
  8. use App\Entity\Equipes;
  9. use App\Entity\Actualites;
  10. use App\Entity\Abouts;
  11. use App\Entity\Valeurs;
  12. use App\Entity\Contacts;
  13. use App\Entity\Centres;
  14. use App\Entity\Galeries;
  15. use App\Entity\Villes;
  16. use App\Entity\Referenceclients;
  17. use App\Entity\Bannieres;
  18. use App\Entity\Thematiques;
  19. use App\Entity\Managements;
  20. use App\Entity\Avis;
  21. use App\Entity\Themes;
  22. use App\Entity\Formations;
  23. use App\Entity\Albums;
  24. use App\Entity\Videos;
  25. #-----------(Formulaires)FORMS--------------
  26. use App\Form\FormationFormType;
  27. use App\Form\ThemeFormType;
  28. use App\Form\EditThemeFormType;
  29. use App\Form\VideoFormType;
  30. use App\Form\AlbumFormType;
  31. use App\Form\GalerieFormType;
  32. use App\Form\ManagementFormType;
  33. use App\Form\ActualiteFormType;
  34. use App\Form\ReferenceclientFormType;
  35. use App\Form\PartenaireFormType;
  36. use App\Form\ContactFormType;
  37. use App\Form\UserFormType;
  38. use App\Form\CentreFormType;
  39. use App\Form\AboutFormType;
  40. use App\Form\ValeurFormType;
  41. use App\Form\BanniereFormType;
  42. use App\Form\EquipeFormType;
  43. use App\Form\VilleFormType;
  44. use App\Form\ThematiqueFormType;
  45. use App\Form\MentionFormType;
  46. use App\Form\AvisFormType;
  47. use App\Form\EditFormationFormType;
  48. use App\Form\EditAvisFormType;
  49. use App\Form\EditMentionFormType;
  50. use App\Form\EditEquipeFormType;
  51. use App\Form\EditPartenaireFormType;
  52. use App\Form\EditReferenceclientFormType;
  53. use App\Form\EditProfilFormType;
  54. use App\Form\EditPassFormType;
  55. use App\Form\EditAboutFormType;
  56. use App\Form\EditValeurFormType;
  57. use App\Form\EditActualiteFormType;
  58. use App\Form\EditUserFormType;
  59. use App\Form\EditCentreFormType;
  60. use App\Form\EditRecrutementFormType;
  61. use App\Form\EditContactFormType;
  62. use App\Form\EditBanniereFormType;
  63. use App\Form\EditVilleFormType;
  64. use App\Form\EditThematiqueFormType;
  65. use App\Form\EditManagementFormType;
  66. #-----------REPOSITORY--------------
  67. use App\Repository\FormationsRepository;
  68. use App\Repository\ThemesRepository;
  69. use App\Repository\ManagementsRepository;
  70. use App\Repository\MentionsRepository;
  71. use App\Repository\ThematiquesRepository;
  72. use App\Repository\BannieresRepository;
  73. use App\Repository\VillesRepository;
  74. use App\Repository\BlogsRepository;
  75. use App\Repository\ReferenceclientsRepository;
  76. use App\Repository\CentresRepository;
  77. use App\Repository\GaleriesRepository;
  78. use App\Repository\EquipesRepository;
  79. use App\Repository\ValeursRepository;
  80. use App\Repository\AboutsRepository;
  81. use App\Repository\ActualitesRepository;
  82. use App\Repository\PartenairesRepository;
  83. use App\Repository\RecrutementsRepository;
  84. use App\Repository\UsersRepository;
  85. use App\Repository\ContactsRepository;
  86. use App\Repository\AvisRepository;
  87. use App\Repository\AlbumsRepository;
  88. use App\Repository\VideosRepository;
  89. #-------------------------------
  90. use Doctrine\ORM\EntityManagerInterface;
  91. use Symfony\Component\HttpFoundation\Request;
  92. use Symfony\Component\HttpFoundation\Response;
  93. use Symfony\Component\Routing\Annotation\Route;
  94. use Symfony\Component\String\Slugger\SluggerInterface;
  95. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  96. use Symfony\Component\HttpFoundation\File\Exception\FileException;
  97. use Symfony\Component\PasswordHasher\Hasher\UserPasswordHasherInterface;
  98. use App\Entity\Certificats;
  99. use App\Form\CertificatFormType;
  100. use App\Form\EditCertificatFormType;
  101. use App\Repository\CertificatsRepository;
  102. use App\Entity\Expertises;
  103. use App\Form\ExpertiseFormType;
  104. use App\Form\EditExpertiseFormType;
  105. use App\Repository\ExpertisesRepository;
  106. use App\Entity\Certyous;
  107. use App\Form\CertyouFormType;
  108. use App\Form\EditCertyouFormType;
  109. use App\Repository\CertyousRepository;
  110. use App\Entity\Sessions;
  111. use App\Form\SessionFormType;
  112. use App\Form\EditSessionFormType;
  113. use App\Repository\SessionsRepository;
  114. class AdminController extends AbstractController
  115. {
  116.  
  117.     #[Route('admin/tableau-de-bord'name'admin.dashboard')]
  118.     public function dashboard(): Response
  119.     {
  120.         return $this->render('admin/admin-index.html.twig', [
  121.             'controller_name' => 'AdminController',
  122.         ]);
  123.     }    
  124.     public function retour(Request $request)
  125.     {
  126.         $referer $request->headers->get('referer');
  127.     
  128.         return $this->redirect($referer ?? $this->generateUrl('admin.dashboard'));
  129.     }
  130.     
  131.     #[Route('admin/del/certificats/personnalises/{id}'name'admin.del.certificat.certyou'methods:['GET'])]
  132.     public function delete_certyou(
  133.         $id,
  134.         CertyousRepository $certyousRepository,
  135.         EntityManagerInterface $entityManager
  136.     ){ 
  137.         $select_certyou $certyousRepository->find($id);
  138.         if (!$select_certyou) {
  139.             $this->addFlash('warning''Certificat introuvable');
  140.         }
  141.         $entityManager->remove($select_certyou);
  142.         $entityManager->flush();
  143.         $this->addFlash(
  144.             'danger',
  145.             'Ce certificat bien supprimé');
  146.         return $this->redirectToRoute('admin.certificat.certyou');
  147.     }
  148.     #[Route('admin/del/certificats/personnalises/date/{id}'name'admin.del.certificat.certyou.date'methods:['GET'])]
  149.     public function delete_certyou_date(
  150.         $id,
  151.         SessionsRepository $sessionRepository,
  152.         EntityManagerInterface $entityManager
  153.     ){ 
  154.         $session $sessionRepository->find($id);
  155.         if (!$session) {
  156.             $this->addFlash('warning''Session introuvable');
  157.         }
  158.         $entityManager->remove($session);
  159.         $entityManager->flush();
  160.         $this->addFlash(
  161.             'danger',
  162.             'Cette date a été bien supprimée');
  163.         return $this->redirectToRoute('admin.edit.certificat.certyou',['id' => $id]);
  164.     }
  165.     #[Route('admin/edit/certificats/personnalises/{id}'name'admin.edit.certificat.certyou'methods:['GET','POST'])]
  166.     public function edit_certificat_certyou(
  167.         $id,
  168.         Request $request,
  169.         SluggerInterface $slugger
  170.         VillesRepository $villeRepository,
  171.         SessionsRepository $sessionRepository,
  172.         CertyousRepository $certyousRepository,
  173.         EntityManagerInterface $entityManager
  174.     ): Response
  175.     {
  176.         $user $this->getUser();
  177.         $editcertyou $certyousRepository->findOneBy(array('id' => $id));
  178.         //dd($editcertyou);
  179.         $type $editcertyou->getType();
  180.         //dd($type);
  181.         $queryBuilder $entityManager->createQueryBuilder();
  182.         $queryBuilder
  183.         ->select('ses')
  184.         ->from(Sessions::class, 'ses')
  185.         ->where('ses.certyou = :id')
  186.         ->setParameter('id'$id);
  187.         $dates $queryBuilder->getQuery()->getResult();
  188.         if($user){
  189.             $certyou = new Certyous();
  190.             $editcertyouForm $this->createForm(EditCertyouFormType::class, $editcertyou);
  191.             $editcertyouForm->handleRequest($request);
  192.             if ($editcertyouForm->isSubmitted()) {
  193.                 $userId $user->getId();
  194.                 
  195.                 $theme $editcertyouForm->get('theme')->getData();
  196.                 $slug $slugger->slug($theme)->lower()->toString();
  197.                 $type $editcertyouForm->get('type')->getData();
  198.                 $prixpresentiel $editcertyouForm->get('prixpresentiel')->getData();
  199.                 $prixvituelle $editcertyouForm->get('prixvirtuelle')->getData();
  200.                 $devise $editcertyouForm->get('devise')->getData();
  201.                 
  202.                 $editcertyou->setTheme($theme);
  203.                 $editcertyou->setSlug($slug);
  204.                 $editcertyou->setType($type);
  205.                 
  206.                 $editcertyou->setAdminsId($userId);
  207.                 $entityManager->flush();
  208.                 $this->addFlash('success','La modification a été bien effectuée');
  209.                 return $this->redirectToRoute('admin.certificat.certyou');
  210.             }
  211.         }else{
  212.             return $this->redirectToRoute('login.connexion');
  213.         }
  214.         return $this->render('admin/edit/edit-admin-certyou.html.twig', [
  215.             'dates' => $dates,
  216.             'type' => $type,
  217.             'editcertyou' => $editcertyou,
  218.             'editcertyouForm' => $editcertyouForm->createView(),
  219.         ]);
  220.     } 
  221.     //------------------------------------------------------------------------------------------------------
  222.     #[Route('admin/certificats/personnalises/{id}/sessions'name'admin.certificat.certyou.session'methods:['POST'])]
  223.     public function certificat_certyou_session(
  224.         int $id,
  225.         Request $request,
  226.         CertyousRepository $certyousRepository,
  227.         EntityManagerInterface $entityManager
  228.     ): Response
  229.     {
  230.         $user $this->getUser();
  231.         $userId $user->getId();
  232.         $certyou $certyousRepository->find($id);
  233.         if (!$certyou) {
  234.             throw $this->createNotFoundException('Certificat introuvable');
  235.         }
  236.         $session = new Sessions();
  237.         $session->setCertyou($certyou);
  238.         $form $this->createForm(SessionFormType::class, $session);
  239.         $form->handleRequest($request);
  240.         if ($form->isSubmitted() && $form->isValid()) {
  241.             $session->setAdminsId($userId);
  242.             $entityManager->persist($session);
  243.             $entityManager->flush();
  244.     
  245.             $this->addFlash('success''Session ajoutée avec succès');
  246.     
  247.             return $this->redirectToRoute('admin.certificat.certyou');
  248.         }
  249.         return $this->render('admin/show/admin-certyou.html.twig', [
  250.             'certyou' => $certyou,
  251.             'addcertyouForm' => $form->createView(),
  252.         ]);
  253.     }
  254.     //-------------------------------------------------------------------------------------------------
  255.     #[Route('admin/certificats/personnalises'name'admin.certificat.certyou'methods:['GET','POST'])]
  256.     public function certificat_certyou(
  257.         Request $request,
  258.         SluggerInterface $slugger,
  259.         CertyousRepository $certyousRepository,
  260.         EntityManagerInterface $entityManager
  261.     ): Response
  262.     {
  263.         $certyou = new Certyous();
  264.         $addcertyouForm $this->createForm(CertyouFormType::class, $certyou);
  265.         $addcertyouForm->handleRequest($request);
  266.         $queryBuilder $entityManager->createQueryBuilder();
  267.         $queryBuilder
  268.             ->select(
  269.                 'cert.id','cert.prixpresentiel','cert.prixvirtuelle',
  270.                 'cert.devise','cert.theme','cert.duree','cert.slug',
  271.                 'cert.type','cert.createdat'
  272.             )
  273.             ->from(Certyous::class, 'cert');
  274.         $certyous $queryBuilder->getQuery()->getResult();
  275.         $date = [];
  276.         if (!empty($certyous)) {
  277.             $queryBuilder $entityManager->createQueryBuilder();
  278.             $queryBuilder
  279.                 ->select(
  280.                     'cert.id AS cert_id',
  281.                     'ses.session'
  282.                 )
  283.                 ->from(Sessions::class, 'ses')
  284.                 ->innerJoin(Certyous::class, 'cert''WITH''ses.certyou = cert.id')
  285.                 ->orderBy('ses.createdat''DESC');
  286.     
  287.             $sessions $queryBuilder->getQuery()->getResult();
  288.     
  289.             foreach ($sessions as $row) {
  290.                 $date[$row['cert_id']][] = $row['session'];
  291.             }
  292.         }
  293.         $sessionForms = [];
  294.         foreach ($certyous as $cert) {
  295.             $session = new Sessions();
  296.     
  297.             $form $this->createForm(SessionFormType::class, $session, [
  298.                 'action' => $this->generateUrl('admin.certificat.certyou.session', [
  299.                     'id' => $cert['id']
  300.                 ])
  301.             ]);
  302.     
  303.             $sessionForms[$cert['id']] = $form->createView();
  304.         }
  305.         if ($addcertyouForm->isSubmitted() && $addcertyouForm->isValid()) {
  306.             $user $this->getUser();
  307.             if ($user) {
  308.                 $theme $addcertyouForm->get('theme')->getData();
  309.                 $slug $slugger->slug($theme)->lower();
  310.                 $type $addcertyouForm->get('type')->getData();
  311.                 
  312.                 $certyou->setTheme($theme);
  313.                 $certyou->setSlug($slug);
  314.                 $certyou->setType($type);
  315.                 $certyou->setAdminsId($user->getId());
  316.                 $entityManager->persist($certyou);
  317.                 $entityManager->flush();
  318.     
  319.                 $this->addFlash('success''Certificat ajouté avec succès');
  320.                 return $this->redirectToRoute('admin.certificat.certyou');
  321.             }
  322.         }
  323.         return $this->render('admin/show/admin-certyou.html.twig', [
  324.             'certyou' => $certyous,
  325.             'date' => $date,
  326.             'sessionForms' => $sessionForms,
  327.             'addcertyouForm' => $addcertyouForm->createView(),
  328.         ]);
  329.     }
  330.     
  331.     /*
  332.     #[Route('admin/certificats/certyou', name: 'admin.certificat.certyou', methods:['GET','POST'])]
  333.     public function certificat_certyou(
  334.         Request $request, 
  335.         SluggerInterface $slugger, 
  336.         CertyousRepository $certyousRepository, 
  337.         EntityManagerInterface $entityManager
  338.     ): Response
  339.     {
  340.         $certyou = new Certyous();
  341.         $addcertyouForm = $this->createForm(CertyouFormType::class,$certyou);
  342.         $addcertyouForm->handleRequest($request);
  343.         
  344.         $session = new Sessions();
  345.         $addsessionForm = $this->createForm(SessionFormType::class, $session);
  346.         $addsessionForm->handleRequest($request);
  347.   
  348.         $queryBuilder = $entityManager->createQueryBuilder();
  349.         $queryBuilder
  350.             ->select(
  351.                 'cert.id','cert.prixpresentiel','cert.prixvirtuelle','cert.slug',
  352.                 'cert.devise','cert.theme','cert.duree','vil.nom AS vilnom',
  353.                 'vil.pays','cert.createdat'
  354.             )
  355.             ->from(Certyous::class, 'cert')
  356.             ->leftJoin(Villes::class, 'vil', 'WITH', 'cert.ville = vil.id');
  357.             //->leftJoin(Sessions::class, 'ses', 'WITH', 'cert.id = ses.certyou');
  358.         $certyous = $queryBuilder->getQuery()->getResult();
  359.         if($certyous != null){
  360.             $queryBuilder = $entityManager->createQueryBuilder();
  361.             $queryBuilder
  362.                 ->select(
  363.                     'cert.id','cert.prixpresentiel','cert.prixvirtuelle','cert.slug',
  364.                     'cert.devise','cert.theme','cert.duree','vil.nom AS vilnom',
  365.                     'vil.pays','cert.createdat','ses.session'
  366.                 )
  367.                 ->from(Certyous::class, 'cert')
  368.                 ->leftJoin(Villes::class, 'vil', 'WITH', 'cert.ville = vil.id')
  369.                 ->leftJoin(Sessions::class, 'ses', 'WITH', 'cert.id = ses.certyou')
  370.                 ->orderBy('ses.createdat', 'DESC');
  371.             $date = $queryBuilder->getQuery()->getResult();
  372.         }
  373.         
  374.         $user = $this->getUser();
  375.         if ($addcertyouForm->isSubmitted()) {
  376.             if ($user) {
  377.                 $userId = $user->getId();
  378.                 $theme = $addcertyouForm->get('theme')->getData();
  379.                 $slug = $slugger->slug($theme)->lower()->toString();
  380.                 $ville = $addcertyouForm->get('ville')->getData();
  381.                 $prixpresentiel = $addcertyouForm->get('prixpresentiel')->getData();
  382.                 $prixvituelle = $addcertyouForm->get('prixvirtuelle')->getData();
  383.                 $devise = $addcertyouForm->get('devise')->getData();
  384.                 $certyou = $addcertyouForm->getData();
  385.                 if($ville){
  386.                     $certyou->setVille($ville);
  387.                 }else{
  388.                     $certyou->setVille(null);
  389.                 }
  390.                 $certyou->setTheme($theme);
  391.                 $certyou->setSlug($slug);
  392.                 $certyou->setPrixvirtuelle($prixvituelle);
  393.                 $certyou->setPrixpresentiel($prixpresentiel);
  394.                 $certyou->setDevise($devise);
  395.                 
  396.                 $certyou->setAdminsId($userId);
  397.                 $entityManager->persist($certyou);
  398.                 $entityManager->flush();
  399.                 $this->addFlash(
  400.                     'success',
  401.                     'Ce certificat a été bien enrégistré');
  402.                     return $this->redirectToRoute('admin.certificat.certyou');
  403.             } else {
  404.                 $this->addFlash('danger', 'Erreur survenue lors de l\'enregistrement de l\'information');
  405.             }
  406.         }
  407.         return $this->render('admin/show/admin-certyou.html.twig', [
  408.             'certyou' => $certyous,
  409.             'date' => $date,
  410.             'addsessionForm' => $addsessionForm->createView(),
  411.             'addcertyouForm' => $addcertyouForm->createView(),
  412.         ]);
  413.     }
  414.     */
  415.     //-------------------------------------------------------------------------------------------
  416.     #[Route('admin/certificats/internationaux'name'admin.certificat'methods:['GET','POST'])]
  417.     public function certificat(
  418.         Request $request
  419.         SluggerInterface $slugger
  420.         CertificatsRepository $certificatRepository
  421.         EntityManagerInterface $entityManager
  422.     ): Response
  423.     {
  424.         $certificat = new Certificats();
  425.         $addcertificatForm $this->createForm(CertificatFormType::class,$certificat);
  426.         $addcertificatForm->handleRequest($request);
  427.         //$certificats = $certificatRepository->findAll();
  428.         $queryBuilder $entityManager->createQueryBuilder();
  429.         $queryBuilder
  430.             ->select(
  431.                 'cert.id','cert.session','cert.prix','cert.slug',
  432.                 'cert.devise','cert.theme','vil.nom AS vilnom',
  433.                 'vil.pays','cert.createdat','cert.type'
  434.             )
  435.             ->from(Certificats::class, 'cert')
  436.             ->innerJoin(Villes::class, 'vil''WITH''cert.ville = vil.id');
  437.         $certificats $queryBuilder->getQuery()->getResult();
  438.         $user $this->getUser();
  439.         
  440.         if ($addcertificatForm->isSubmitted()) {
  441.  
  442.             if ($user) {
  443.                 $userId $user->getId();
  444.                 $theme $addcertificatForm->get('theme')->getData();
  445.                 $slug $slugger->slug($theme);
  446.                 $ville $addcertificatForm->get('ville')->getData();
  447.                 $session $addcertificatForm->get('session')->getData();
  448.                 $type $addcertificatForm->get('type')->getData();
  449.                 $prix $addcertificatForm->get('prix')->getData();
  450.                 $devise $addcertificatForm->get('devise')->getData();
  451.                 $certificat $addcertificatForm->getData();
  452.                 
  453.                 $idVille $ville->getId();
  454.                 
  455.                 $verify $certificatRepository->findOneBy(array(
  456.                     'theme' => $theme,
  457.                     'slug' => $slug,
  458.                     'ville' => $idVille,
  459.                     'session' => $session,
  460.                     'type' => $type,
  461.                     'prix' => $session,
  462.                     'devise' => $type,
  463.                 ));
  464.                 
  465.                 if($verify){
  466.                     $this->addFlash('danger''Ce certificat a déjà été enrégistré');
  467.                     return $this->redirectToRoute('admin.certificat');
  468.                 }
  469.                 $certificat->setTheme($theme);
  470.                 $certificat->setSlug($slug);
  471.                 $certificat->setVille($ville);
  472.                 $certificat->setSession($session);
  473.                 $certificat->setType($type);
  474.                 $certificat->setPrix($prix);
  475.                 $certificat->setDevise($devise);
  476.                 
  477.                 $certificat->setAdminsId($userId);
  478.                 $entityManager->persist($certificat);
  479.                 $entityManager->flush();
  480.                 $this->addFlash(
  481.                     'success',
  482.                     'Ce certificat a été bien enrégistré');
  483.                     return $this->redirectToRoute('admin.certificat');
  484.             } else {
  485.                 $this->addFlash('danger''Erreur survenue lors de l\'enregistrement de l\'information');
  486.             }
  487.         }
  488.         return $this->render('admin/show/admin-certificat.html.twig', [
  489.             'certificat' => $certificats,
  490.             'addcertificatForm' => $addcertificatForm->createView(),
  491.         ]);
  492.     }
  493.     #-----------------SUPPERIMER UN CERTIFICAT-----------------------
  494.     #[Route('admin/del/certificats/internationaux/{id}'name'admin.del.certificat'methods:['GET'])]
  495.     public function delete_certificat(
  496.         $id,
  497.         CertificatsRepository $certificatsRepository,
  498.         EntityManagerInterface $entityManager
  499.     ){ 
  500.         $select_certificat $certificatsRepository->find(array('id' => $id));
  501.         $entityManager->remove($select_certificat);
  502.         $entityManager->flush();
  503.         $this->addFlash(
  504.             'danger',
  505.             'Ce certificat bien supprimé');
  506.         return $this->redirectToRoute('admin.certificat');
  507.     }
  508.     #[Route('admin/edit/certificats/internationaux/{id}'name'admin.edit.certificat'methods:['GET','POST'])]
  509.     public function edit_certificat(
  510.         $id,
  511.         Request $request,
  512.         SluggerInterface $slugger
  513.         VillesRepository $villeRepository,
  514.         CertificatsRepository $certificatRepository,
  515.         EntityManagerInterface $entityManager
  516.     ): Response
  517.     {
  518.         $user $this->getUser();
  519.         $certificats $certificatRepository->findOneBy(array('id' => $id));
  520.         $idVille $certificats->getVille();
  521.         $getville $villeRepository->findOneBy(array('id' => $idVille));
  522.         $nomVille $getville->getNom();
  523.         //dd($nomVille);
  524.         if($user){
  525.             $certificat = new Certificats();
  526.             $editcertificatForm $this->createForm(EditCertificatFormType::class, $certificat);
  527.             $editcertificatForm->handleRequest($request);
  528.             if ($editcertificatForm->isSubmitted()) {
  529.                 $userId $user->getId();
  530.                 $theme $editcertificatForm->get('theme')->getData();
  531.                 $slug $slugger->slug($theme);
  532.                 $ville $editcertificatForm->get('ville')->getData();
  533.                 $session $editcertificatForm->get('session')->getData();
  534.                 $type $editcertificatForm->get('type')->getData();
  535.                 $prix $editcertificatForm->get('prix')->getData();
  536.                 $devise $editcertificatForm->get('devise')->getData();
  537.                 
  538.                 $idVille $ville->getId();
  539.                 
  540.                 //dd($idVille);
  541.                 
  542.                 $verify $certificatRepository->findOneBy(array(
  543.                     'theme' => $theme,
  544.                     'slug' => $slug,
  545.                     'ville' => $idVille,
  546.                     'session' => $session,
  547.                     'type' => $type,
  548.                     'prix' => $session,
  549.                     'devise' => $type,
  550.                 ));
  551.                 $certificats->setTheme($theme);
  552.                 $certificats->setSlug($slug);
  553.                 $certificats->setVille($ville);
  554.                 $certificats->setSession($session);
  555.                 $certificats->setType($type);
  556.                 $certificats->setPrix($prix);
  557.                 $certificats->setDevise($devise);
  558.                 
  559.                 $certificats->setAdminsId($userId);
  560.                 $entityManager->flush();
  561.                 $this->addFlash('success','La modification a été bien effectuée');
  562.                 return $this->redirectToRoute('admin.certificat');
  563.             }
  564.         }else{
  565.             return $this->redirectToRoute('login.connexion');
  566.         }
  567.         return $this->render('admin/edit/edit-admin-certificat.html.twig', [
  568.         'nomVille' => $nomVille,
  569.         'certificats' => $certificats,
  570.         'editcertificatForm' => $editcertificatForm->createView(),
  571.         ]);
  572.     } 
  573.     //----------------------------------------------------------------------------------------------
  574.     #[Route('admin/notre-expertises'name'admin.expertise'methods:['GET','POST'])]
  575.     public function expertise(
  576.         Request $request
  577.         SluggerInterface $slugger
  578.         ExpertisesRepository $expertiseRepository,
  579.         EntityManagerInterface $entityManager
  580.     ): Response
  581.     {
  582.         $expertise = new Expertises();
  583.         $Data_expert $expertiseRepository->findAll();
  584.         $user $this->getUser();
  585.         $userId $user->getId();
  586.         $expertiseForm $this->createForm(ExpertiseFormType::class, $expertise);
  587.         $editexpertiseForm $this->createForm(EditExpertiseFormType::class, $expertise);
  588.         if ($user) {           
  589.             if($Data_expert == null){
  590.                 $expertiseForm $this->createForm(ExpertiseFormType::class, $expertise);
  591.                 $expertiseForm->handleRequest($request);
  592.                 if($expertiseForm->isSubmitted() && $expertiseForm->isValid()){  
  593.                     $userId $user->getId();
  594.                     $statut $expertiseForm->get('statut')->getData();
  595.                     $texte $expertiseForm->get('texte')->getData();
  596.                     $expertise->setTexte($texte);
  597.                     $expertise->setAdminsId($userId);
  598.                     $expertise->setStatut($statut);
  599.                     $entityManager->persist($expertise);
  600.                     $entityManager->flush();
  601.                     $this->addFlash('success','Notre expertise a été bien enrégistrée');
  602.                 }
  603.             }else{
  604.                 $editexpertiseForm $this->createForm(EditExpertiseFormType::class, $expertise);
  605.                 $editexpertiseForm->handleRequest($request);
  606.                 $data $editexpertiseForm->getData();           
  607.                 if ($editexpertiseForm->isSubmitted() && $editexpertiseForm->isValid()) {
  608.                     $userId $user->getId();
  609.                     $data $expertiseRepository->find(1);
  610.                     $statut $editexpertiseForm->get('statut')->getData();
  611.                     $texte $editexpertiseForm->get('texte')->getData();
  612.                     $data->setTexte($texte);
  613.                     $data->setAdminsId($userId);
  614.                     $data->setStatut($statut);
  615.                     $entityManager->flush();
  616.                     $this->addFlash('success','Notre expertise a été bien modifiée');
  617.                 }
  618.             }
  619.         }else{
  620.             return $this->redirectToRoute('login.connexion');
  621.         }
  622.         return $this->render('admin/show/admin-expertise.html.twig', [
  623.             'Databout' => $Data_expert,
  624.             'aboutForm' => $expertiseForm->createView(),
  625.             'editaboutForm' => $editexpertiseForm->createView(),
  626.         ]);
  627.     }
  628.     //---------------------------------------------------------------------------------------------
  629.     #[Route('admin/video'name'admin.video'methods:['GET','POST'])]
  630.     public function video(
  631.         Request $request
  632.         SluggerInterface $slugger
  633.         VideosRepository $videoRepository,
  634.         EntityManagerInterface $entityManager
  635.     ): Response
  636.     {
  637.         $video = new Videos();
  638.         $listvideo $videoRepository->findAll();
  639.         $user $this->getUser();
  640.         $videoForm $this->createForm(VideoFormType::class, $listvideo);
  641.         $videoForm->handleRequest($request);
  642.         if($user){
  643.             $userId $user->getId();
  644.             //dd($userId);
  645.             if($videoForm->isSubmitted()){  
  646.                 $titre $videoForm->get('titre')->getData();
  647.                 $lien $videoForm->get('lien')->getData();
  648.                 $statut $videoForm->get('statut')->getData();
  649.                 //$album = $albumForm->getData();
  650.                 $video->setTitre($titre);
  651.                 $video->setLien($lien);
  652.                 $video->setStatut($statut);
  653.                 $video->setAdminsId($userId);
  654.                 $entityManager->persist($video);
  655.                 $entityManager->flush();
  656.                 $this->addFlash('success','La vidéo a été bien enrégistrée');
  657.                 return $this->redirectToRoute('admin.album');
  658.             }
  659.         }
  660.         return $this->render('admin/show/admin-video.html.twig', [
  661.             'listvideo' => $listvideo,
  662.             'videoForm' => $videoForm->createView(),
  663.             'controller_name' => 'AdminController',
  664.         ]);
  665.     }   
  666.     #-----------------SUPPERIMER UN GALERIE-----------------------
  667.     #[Route('admin/del/video/{id}'name'admin.del.video'methods:['GET'])]
  668.     public function delete_video(
  669.         // $slug,
  670.         $id,
  671.         VideosRepository $videosRepository,
  672.         EntityManagerInterface $entityManager
  673.     ){
  674.         $select_video $videosRepository->findOneBy(['id' => $id]);
  675.         
  676.         if(!$select_video) {
  677.             throw $this->createNotFoundException('Vidéo introuvable');
  678.         }
  679.         $entityManager->remove($select_video);
  680.         $entityManager->flush();
  681.         $this->addFlash(
  682.             'danger',
  683.             'La vidéos a été bien supprimée avec succès');
  684.         return $this->redirectToRoute('admin.video');
  685.     }
  686.     #[Route('admin/album'name'admin.album'methods:['GET','POST'])]
  687.     public function album(
  688.         Request $request
  689.         SluggerInterface $slugger
  690.         AlbumsRepository $albumRepository,
  691.         EntityManagerInterface $entityManager
  692.     ): Response
  693.     {
  694.         $album = new Albums();
  695.         $Datalbum $albumRepository->findAll();
  696.         $user $this->getUser();
  697.         $albumForm $this->createForm(AlbumFormType::class, $album);
  698.         $albumForm->handleRequest($request);
  699.         if($user){
  700.             $userId $user->getId();
  701.             //dd($userId);
  702.             if($albumForm->isSubmitted()){  
  703.                 $nom $albumForm->get('nom')->getData();
  704.                 $slug $slugger->slug($nom);
  705.                 $statut $albumForm->get('statut')->getData();
  706.                 $img_gal $albumForm->get('image')->getData();
  707.                 //$album = $albumForm->getData();
  708.                 if ($img_gal) {
  709.                     foreach ($img_gal as $img) {
  710.                         $newFilename uniqid().'.'.$img->guessExtension();
  711.                         $img->move(
  712.                             $this->getParameter('photo_galerie'),
  713.                             $newFilename
  714.                         );
  715.                         // Exemple : si tu as une entité Galerie
  716.                         $galerie = new Galeries();
  717.                         $galerie->setImage($newFilename);
  718.                         $galerie->setNom($slug);
  719.                         $entityManager->persist($galerie);
  720.                     }
  721.                 }
  722.                 $album->setNom($nom);
  723.                 $album->setSlug($slug);
  724.                 $album->setStatut($statut);
  725.                 $album->setAdminsId($userId);
  726.                 $entityManager->persist($album);
  727.                 $entityManager->flush();
  728.                 return $this->redirectToRoute('admin.album');
  729.             }
  730.         }
  731.         return $this->render('admin/show/admin-album.html.twig', [
  732.             'albums' => $Datalbum,
  733.             'albumForm' => $albumForm->createView(),
  734.             'controller_name' => 'AdminController',
  735.         ]);
  736.     }    
  737.     #[Route('admin/galeries/{slug}'name'admin.galerie'methods:['GET','POST'])]
  738.     public function GaleriesImg(
  739.         string $slug,
  740.         Request $request,
  741.         GaleriesRepository $galerieRepository,
  742.         AlbumsRepository $albumRepository,
  743.         EntityManagerInterface $entityManager
  744.     ): Response
  745.     {
  746.         $user $this->getUser();
  747.         // 🔹 Récupération d'une SEULE galerie
  748.         $galerie $galerieRepository->findBy(['nom' => $slug]);
  749.         $Datalbum $albumRepository->findOneBy(['nom' => $slug]);
  750.         //dd($galerie);
  751.         // 🔹 Formulaire lié à l'entité
  752.         $galerieForm $this->createForm(GalerieFormType::class, $galerie);
  753.         $galerieForm->handleRequest($request);
  754.         if ($user && $galerieForm->isSubmitted()) {
  755.             $img_gal $galerieForm->get('image')->getData();
  756.             //dd($img_gal);
  757.             if ($img_gal) {
  758.                 // dd($img_gal);
  759.                 foreach ($img_gal as $img) {
  760.                     $newFilename uniqid().'.'.$img->guessExtension();
  761.                     $img->move(
  762.                         $this->getParameter('photo_galerie'),
  763.                         $newFilename
  764.                     );
  765.                     // 🔹 Mise à jour de l'entité EXISTANTE
  766.                     //$galerie = New Galeries();
  767.                         $galerie = new Galeries();
  768.                         $galerie->setImage($newFilename);
  769.                         $galerie->setNom($slug);
  770.                         $entityManager->persist($galerie);
  771.                 }
  772.             }
  773.             // 🔹 Enregistrement réel en base
  774.             $entityManager->flush();
  775.             $this->addFlash(
  776.                 'success',
  777.                 'Album a été bien enrégistré');
  778.             return $this->redirectToRoute('admin.galerie', ['slug' => $slug]);
  779.         }
  780.         return $this->render('admin/show/admin-galerie.html.twig', [
  781.             'slug' => $slug,
  782.             'galeries' => $galerie,
  783.             'galerieForm' => $galerieForm->createView(),
  784.         ]);
  785.     }
  786.     #-----------------SUPPERIMER UN GALERIE-----------------------
  787.     #[Route('admin/del/galerie/{id}'name'admin.del.galerie'methods:['GET'])]
  788.     public function delete_gal(
  789.         // $slug,
  790.         $id,
  791.         GaleriesRepository $galeriesRepository,
  792.         EntityManagerInterface $entityManager
  793.     ){
  794.         $select_gal $galeriesRepository->findOneBy(['id' => $id]);
  795.         
  796.         if(!$select_gal) {
  797.             throw $this->createNotFoundException('Galerie introuvable');
  798.         }
  799.         $slug $select_gal->getCentre();
  800.         $entityManager->remove($select_gal);
  801.         $entityManager->flush();
  802.         $this->addFlash(
  803.             'danger',
  804.             'L\'image a été bien supprimée de la galerie');
  805.         return $this->redirectToRoute('admin.galerie',['slug' => $slug]);
  806.     }
  807.     #-----------------SUPPERIMER UN GALERIE-----------------------
  808.     #[Route('admin/del/album/{slug}'name'admin.del.album'methods:['GET'])]
  809.     public function delete_album(
  810.         $slug,
  811.         GaleriesRepository $galeriesRepository,
  812.         AlbumsRepository $albumRepository,
  813.         EntityManagerInterface $entityManager
  814.     ) {
  815.         // 🔹 Récupération de l'album
  816.         $select_album $albumRepository->findOneBy(['slug' => $slug]);
  817.         /*
  818.         $gal = $galeriesRepository->findOneBy(['nom' => $slug]);
  819.         if($gal){
  820.             
  821.         }
  822.         $entityManager->remove($select_album);
  823.         $entityManager->flush();
  824.         $this->addFlash('danger', 'L\'album a été bien supprimé');
  825.         return $this->redirectToRoute('admin.album');*/
  826.         
  827.         //dd($select_album);
  828.         if (!$select_album) {
  829.             $this->addFlash('danger''Album introuvable');
  830.             return $this->redirectToRoute('admin.album');
  831.         }
  832.         $gal $galeriesRepository->findOneBy(['nom' => $slug]);
  833.         if($gal){
  834.             // 🔹 Récupération de la galerie liée à l'album
  835.             $select_gal $select_album->getNom();
  836.             if (!$select_gal) {
  837.                 $this->addFlash('danger''Galerie introuvable pour cet album');
  838.                 return $this->redirectToRoute('admin.album');
  839.             }
  840.     
  841.             // 🔹 Suppression
  842.             $entityManager->remove($select_album);
  843.             $entityManager->flush();
  844.     
  845.             //$this->addFlash('danger', 'Les images a été bien supprimée de la galerie');
  846.             return $this->redirectToRoute('admin.album');
  847.         }else{
  848.             $entityManager->remove($select_album);
  849.             $entityManager->flush();
  850.             $this->addFlash('danger''L\'album a été bien supprimé');
  851.             return $this->redirectToRoute('admin.album');
  852.         }
  853.     }
  854.     #[Route('admin/galerie-centres/{slug}'name'admin.galerie.centres'methods:['GET','POST'])]
  855.     public function galeries(
  856.         $slug,
  857.         Request $request
  858.         SluggerInterface $slugger
  859.         GaleriesRepository $galRepository
  860.         EntityManagerInterface $entityManager
  861.     ): Response
  862.     {
  863.         $user $this->getUser();
  864.         if (!$user) {
  865.             return $this->redirectToRoute('login.connexion');
  866.         }
  867.         
  868.         $queryBuilder $entityManager->createQueryBuilder();
  869.         $queryBuilder
  870.         ->select('gal.id''gal.imgal''gal.nom')
  871.         ->from(Galeries::class, 'gal')
  872.         ->where('gal.nom = :nom')
  873.         ->setParameter('nom'$slug);
  874.         $galeries $queryBuilder->getQuery()->getResult();
  875.         
  876.         return $this->render('admin/show/admin-galerie.html.twig', [
  877.             'slug' => $slug,
  878.             'galeries' => $galeries
  879.         ]);
  880.     }
  881.     #-----------------SUPPERIMER UN GALERIE-----------------------
  882.     #[Route('admin/del/galerie-centres/{nom}/{id}'name'admin.del.galerie'methods:['GET'])]
  883.     public function delete_galerie(
  884.         $nom,
  885.         $id,
  886.         GaleriesRepository $GA,
  887.         EntityManagerInterface $entityManager
  888.     ){ 
  889.         $slug $nom;
  890.         $select_galerie $GA->findOneBy(array('id' => $id));
  891.         $entityManager->remove($select_galerie);
  892.         $entityManager->flush();
  893.         $this->addFlash(
  894.             'danger',
  895.             'Image bien supprimée de la galerie');
  896.         return $this->redirectToRoute('admin.galerie',['slug' => $slug]);
  897.     }
  898.     //-MENTION      ---------------------------------------------------------------------------------------------
  899.     #[Route('admin/mentions'name'admin.mention'methods:['GET','POST'])]
  900.     public function mention(
  901.         Request $request
  902.         SluggerInterface $slugger
  903.         MentionsRepository $mentionRepository
  904.         EntityManagerInterface $entityManager
  905.     ): Response
  906.     {
  907.         $mention = new Mentions();
  908.         $mentions $mentionRepository->findAll();
  909.         // dd($presentations);
  910.         $addmentionForm $this->createForm(MentionFormType::class,$mention);
  911.         $addmentionForm->handleRequest($request);
  912.         $user $this->getUser();
  913.         
  914.         if ($addmentionForm->isSubmitted() && $addmentionForm->isValid()) {
  915.  
  916.             if ($user) {
  917.                 $userId $user->getId();
  918.                 $titre $addmentionForm->get('titremen')->getData();
  919.                 $slug $slugger->slug($titre);
  920.                 $texte $addmentionForm->get('detailmen')->getData();
  921.                 $statut $addmentionForm->get('statutmen')->getData();
  922.                 $mention $addmentionForm->getData();
  923.              
  924.                 $verify $mentionRepository->findOneBy(array(
  925.                     'slug' => $slug
  926.                 ));
  927.                 if($verify){
  928.                     $this->addFlash('danger''Ce titre é déjà été enrégistré');
  929.                     return $this->redirectToRoute('admin.mention');
  930.                 }
  931.                 if(empty($texte)){
  932.                     $mention->setDetailMen('...');
  933.                 }else{
  934.                     $mention->setDetailMen($texte);
  935.                 }
  936.                 $mention->setTitreMen($titre);
  937.                 $mention->setSlug($slug);
  938.                 $mention->setStatutMen($statut);
  939.                 $mention->setAdminsId($userId);
  940.                 $entityManager->persist($mention);
  941.                 $entityManager->flush();
  942.                 $this->addFlash(
  943.                     'success',
  944.                     'Le sous menu a été bien enrégistré');
  945.                     return $this->redirectToRoute('admin.mention');
  946.             } else {
  947.                 $this->addFlash('danger''Erreur survenue lors de l\'enregistrement de l\'information');
  948.             }
  949.         }
  950.         return $this->render('admin/show/admin-mention.html.twig', [
  951.             'mentions' => $mentions,
  952.             'addmentionForm' => $addmentionForm->createView(),
  953.         ]);
  954.     }
  955.     //-EDITER MENTION    ---------------------------------------------------------------------------------------------
  956.     #[Route('admin/mention/{slug}'name'admin.edit.mention'methods:['GET','POST'])]
  957.     public function edit_mention(
  958.         $slug,
  959.         Request $request,
  960.         SluggerInterface $slugger
  961.         MentionsRepository $mentionRepository,
  962.         EntityManagerInterface $entityManager
  963.     ): Response
  964.     {
  965.         $user $this->getUser();
  966.         $infomention $mentionRepository->findOneBy(array(
  967.             'slug' => $slug
  968.         ));
  969.         
  970.         if($user){
  971.             $mention = new Mentions();
  972.             $editmentionForm $this->createForm(EditMentionFormType::class, $mention);
  973.             $editmentionForm->handleRequest($request);
  974.             if ($editmentionForm->isSubmitted()) {
  975.                 $userId $user->getId();
  976.                 $titre $editmentionForm->get('titremen')->getData();
  977.                 $slug $slugger->slug($titre);
  978.                 $detail $editmentionForm->get('detailmen')->getData();
  979.                 $statut $editmentionForm->get('statutmen')->getData();
  980.                 $entreprise $editmentionForm->getData();
  981.                 if(empty($detail)){
  982.                     $infomention->setDetailMen('...');
  983.                 }else{
  984.                     $infomention->setDetailMen($detail);
  985.                 }
  986.                 $infomention->setTitreMen($titre);
  987.                 $infomention->setSlug($slug);
  988.                 $infomention->setDetailMen($detail);
  989.                 $infomention->setStatutMen($statut);
  990.                 $infomention->setAdminsId($userId);
  991.                 $entityManager->flush();
  992.                 $this->addFlash('success','La modification a été bien effectuée');
  993.                 return $this->redirectToRoute('admin.mention');
  994.             }
  995.         }else{
  996.             return $this->redirectToRoute('login.connexion');
  997.         }
  998.         return $this->render('admin/edit/edit-admin-mention.html.twig', [
  999.         'infomention' => $infomention,
  1000.         'editmentionForm' => $editmentionForm->createView(),
  1001.         ]);
  1002.     } 
  1003.     
  1004.     #[Route('admin/del/mention/{slug}'name'admin.del.mention'methods:['GET'])]
  1005.     public function delete_mention(
  1006.         $slug,
  1007.         MentionsRepository $MEN,
  1008.         EntityManagerInterface $entityManager
  1009.     ){
  1010.         $select_mention $MEN->findOneBy(array('slug' => $slug));
  1011.         $entityManager->remove($select_mention);
  1012.         $entityManager->flush();
  1013.         $this->addFlash(
  1014.             'danger',
  1015.             'L\'information a été bien supprimée');
  1016.         return $this->redirectToRoute('admin.mention');
  1017.     }
  1018.     //----------------------------------------------------------------------------------------------
  1019.     #[Route('admin/presentation/qui-sommes-nous'name'admin.qui-sommes-nous'methods:['GET','POST'])]
  1020.     public function about(
  1021.         Request $request
  1022.         SluggerInterface $slugger
  1023.         AboutsRepository $aboutRepository,
  1024.         EntityManagerInterface $entityManager
  1025.     ): Response
  1026.     {
  1027.         $about = new Abouts();
  1028.         $Databout $aboutRepository->findAll();
  1029.         $user $this->getUser();
  1030.         $aboutForm $this->createForm(AboutFormType::class, $about);
  1031.         $editaboutForm $this->createForm(EditAboutFormType::class, $about);
  1032.         if ($user) {           
  1033.             if($Databout == null){
  1034.                 $aboutForm $this->createForm(AboutFormType::class, $about);
  1035.                 $aboutForm->handleRequest($request);
  1036.                 if($aboutForm->isSubmitted() && $aboutForm->isValid()){  
  1037.                     $userId $user->getId();
  1038.                     $texte $aboutForm->get('texte')->getData();
  1039.                     $imageFile $aboutForm->get('image')->getData();
  1040.                     if ($imageFile) {
  1041.                         $originalFilename pathinfo($imageFile->getClientOriginalName(), PATHINFO_FILENAME);
  1042.                         // this is needed to safely include the file name as part of the URL
  1043.                         $safeFilename $slugger->slug($originalFilename);
  1044.                         $newFilename $safeFilename.'-'.uniqid().'.'.$imageFile->guessExtension();
  1045.                         try {
  1046.                             $imageFile->move(
  1047.                                 $this->getParameter('photo_apropos'),
  1048.                                 $newFilename
  1049.                             );
  1050.                         } catch (FileException $e) {
  1051.                             // ... handle exception if something happens during file upload
  1052.                         }
  1053.                         $about->setImage($newFilename);
  1054.                     }else{
  1055.                         $about->setImage("no-file");
  1056.                     }
  1057.                 
  1058.                     $about->setTexte($texte);
  1059.                     $about->setAdminsId($userId);
  1060.                     $entityManager->persist($about);
  1061.                     $entityManager->flush();
  1062.                     $this->addFlash('success','Le texte de présentation a été bien enrégistré');
  1063.                 }
  1064.             }else{
  1065.                 $editaboutForm $this->createForm(EditAboutFormType::class, $about);
  1066.                 $editaboutForm->handleRequest($request);
  1067.                 $data $editaboutForm->getData();           
  1068.                 if ($editaboutForm->isSubmitted() && $editaboutForm->isValid()) {
  1069.                     //dd($editaboutForm);
  1070.                     $userId $user->getId();
  1071.                     $data $aboutRepository->find(1);
  1072.                     $imageFile $editaboutForm->get('image')->getData();
  1073.                     // dd($imageFile);
  1074.                     if ($imageFile) {
  1075.                         $originalFilename pathinfo($imageFile->getClientOriginalName(), PATHINFO_FILENAME);
  1076.                         $safeFilename $slugger->slug($originalFilename);
  1077.                         $newFilename $safeFilename.'-'.uniqid().'.'.$imageFile->guessExtension();
  1078.                         try {
  1079.                             $imageFile->move(
  1080.                                 $this->getParameter('photo_apropos'),
  1081.                                 $newFilename
  1082.                             );
  1083.                         } catch (FileException $e) {}
  1084.                         $data->setImage($newFilename);
  1085.                     }  
  1086.                     $data->setTexte($editaboutForm->get('texte')->getData());
  1087.                     $entityManager->flush();
  1088.                     $this->addFlash('success','Le texte de présentation a été bien modifié');
  1089.                 }
  1090.             }
  1091.         }else{
  1092.             return $this->redirectToRoute('login.connexion');
  1093.         }
  1094.         return $this->render('admin/show/admin-qui-sommes-nous.html.twig', [
  1095.             'Databout' => $Databout,
  1096.             'aboutForm' => $aboutForm->createView(),
  1097.             'editaboutForm' => $editaboutForm->createView(),
  1098.         ]);
  1099.     }
  1100.     #[Route('admin/presentation/nos-valeurs'name'admin.valeur'methods:['GET','POST'])]
  1101.     public function valeur(
  1102.         Request $request
  1103.         SluggerInterface $slugger
  1104.         ValeursRepository $valeurRepository,
  1105.         EntityManagerInterface $entityManager
  1106.     ): Response
  1107.     {
  1108.         $valeur = new Valeurs();
  1109.         $Datavaleur $valeurRepository->findAll();
  1110.         $user $this->getUser();
  1111.         $valeurForm $this->createForm(ValeurFormType::class, $valeur);
  1112.         $editvaleurForm $this->createForm(ValeurFormType::class, $valeur);
  1113.         if ($user) {           
  1114.             if($Datavaleur == null){
  1115.                 $valeurForm $this->createForm(ValeurFormType::class, $valeur);
  1116.                 $valeurForm->handleRequest($request);
  1117.                 if($valeurForm->isSubmitted() && $valeurForm->isValid()){  
  1118.                     $userId $user->getId();
  1119.                     $texte $valeurForm->get('texte')->getData();
  1120.                     $imageFile $valeurForm->get('image')->getData();
  1121.                     $valeur->setTexte($texte);
  1122.                     if ($imageFile) {
  1123.                         $originalFilename pathinfo($imageFile->getClientOriginalName(), PATHINFO_FILENAME);
  1124.                         // this is needed to safely include the file name as part of the URL
  1125.                         $safeFilename $slugger->slug($originalFilename);
  1126.                         $newFilename $safeFilename.'-'.uniqid().'.'.$imageFile->guessExtension();
  1127.                         try {
  1128.                             $imageFile->move(
  1129.                                 $this->getParameter('photo_valeur'),
  1130.                                 $newFilename
  1131.                             );
  1132.                         } catch (FileException $e) {
  1133.                             // ... handle exception if something happens during file upload
  1134.                         }
  1135.                         $valeur->setImage($newFilename);
  1136.                     }else{
  1137.                         $valeur->setImage("no-file");
  1138.                     }
  1139.                     $valeur->setAdminsId($userId);
  1140.                     $entityManager->persist($valeur);
  1141.                     $entityManager->flush();
  1142.                     $this->addFlash('success','Le texte de présentation a été bien enrégistré');
  1143.                 }
  1144.             }else{
  1145.                 $editvaleurForm $this->createForm(EditValeurFormType::class, $valeur);
  1146.                 $editvaleurForm->handleRequest($request);
  1147.                 $data $editvaleurForm->getData();  
  1148.                 if ($editvaleurForm->isSubmitted() && $editvaleurForm->isValid()) {
  1149.                     $userId $user->getId();
  1150.                     $data $valeurRepository->find(1);
  1151.                     $imageFile $editvaleurForm->get('image')->getData();
  1152.                     if ($imageFile) {
  1153.                         $originalFilename pathinfo($imageFile->getClientOriginalName(), PATHINFO_FILENAME);
  1154.                         $safeFilename $slugger->slug($originalFilename);
  1155.                         $newFilename $safeFilename.'-'.uniqid().'.'.$imageFile->guessExtension();
  1156.                         try {
  1157.                             $imageFile->move(
  1158.                                 $this->getParameter('photo_valeur'),
  1159.                                 $newFilename
  1160.                             );
  1161.                         } catch (FileException $e) {}
  1162.                         $data->setImage($newFilename);
  1163.                     } 
  1164.                     // dd($data);
  1165.                     $data->setTexte($editvaleurForm->get('texte')->getData());
  1166.                     $data->setAdminsId($userId);
  1167.                     $entityManager->flush();
  1168.                     $this->addFlash('success','Le texte de présentation a été bien modifié');
  1169.                 }
  1170.             }
  1171.         }else{
  1172.             return $this->redirectToRoute('login.connexion');
  1173.         }
  1174.         return $this->render('admin/show/admin-valeur.html.twig', [
  1175.             'data' => $Datavaleur,
  1176.             'valeurForm' => $valeurForm->createView(),
  1177.             'editvaleurForm' => $editvaleurForm->createView(),
  1178.         ]);
  1179.     } 
  1180.     //----------------------------------------------------------------------------------------------
  1181.     #[Route('admin/edit/emploi/{id}'name'admin.edit.recrutement'methods:['GET','POST'])]
  1182.     public function edit_job(
  1183.         $id,
  1184.         Request $request,
  1185.         RecrutementsRepository $jobRepository,
  1186.     ): Response
  1187.     {
  1188.         $infoalerte $jobRepository->find($id);
  1189.         $alerte = new Recrutements();
  1190.         $editalerteForm $this->createForm(EditRecrutementFormType::class, $alerte);
  1191.         $editalerteForm->handleRequest($request);
  1192.         // dd($infoalerte);
  1193.         if($infoalerte != null){
  1194.             return $this->render('admin/edit/edit-admin-alerte.html.twig', [
  1195.             'infoalerte' => $infoalerte,
  1196.             'editalerteForm' => $editalerteForm->createView(),
  1197.             ]);
  1198.         }
  1199.         return $this->render('admin/edit/edit-admin-alerte.html.twig', [
  1200.         'infoalerte' => $infoalerte,
  1201.         'editalerteForm' => $editalerteForm->createView(),
  1202.         ]);
  1203.     } 
  1204.     #[Route('admin/nos-centres'name'admin.centres'methods:['GET','POST'])]
  1205.     public function centres(
  1206.         Request $request
  1207.         SluggerInterface $slugger
  1208.         VillesRepository $centreRepository
  1209.         EntityManagerInterface $entityManager,
  1210.     ): Response
  1211.     {
  1212.         $centre = new Villes();
  1213.         $centres $centreRepository->findAll();
  1214.         $addcentreForm $this->createForm(VilleFormType::class, $centre);
  1215.         $addcentreForm->handleRequest($request);
  1216.         $user $this->getUser();
  1217.         
  1218.         if ($addcentreForm->isSubmitted()) {
  1219.             if ($user) {
  1220.                 $userId $user->getId();
  1221.                 $nom $addcentreForm->get('nom')->getData();
  1222.                 $slug $slugger->slug($nompart);
  1223.                 $pays $addcentreForm->get('pays')->getData();
  1224.                 $texte $addcentreForm->get('texte')->getData();
  1225.                 $longitude $addcentreForm->get('longitude')->getData();
  1226.                 $latitude $addcentreForm->get('latitude')->getData();
  1227.                 $centre $addcentreForm->getData();
  1228.                 $imageFile $addcentreForm->get('image')->getData();
  1229.                 $img_gal $addcentreForm->get('img_gal')->getData();
  1230.                 if ($imageFile) {
  1231.                     $originalFilename pathinfo($imageFile->getClientOriginalName(), PATHINFO_FILENAME);
  1232.                     // this is needed to safely include the file name as part of the URL
  1233.                     $safeFilename $slugger->slug($originalFilename);
  1234.                     $newFilename $safeFilename.'-'.uniqid().'.'.$imageFile->guessExtension();
  1235.                     try {
  1236.                         $imageFile->move(
  1237.                             $this->getParameter('photo_centre'),
  1238.                             $newFilename
  1239.                         );
  1240.                     } catch (FileException $e) {
  1241.                         // ... handle exception if something happens during file upload
  1242.                     }
  1243.                     $centre->setImage($newFilename);
  1244.                 }else{
  1245.                     $centre->setImage("no-file");
  1246.                 }
  1247.                 if ($img_gal) {
  1248.                     foreach ($img_gal as $image) {
  1249.                         $newFilename uniqid().'.'.$image->guessExtension();
  1250.                         $image->move(
  1251.                             $this->getParameter('photo_centre'),
  1252.                             $newFilename
  1253.                         );
  1254.                         // Exemple : si tu as une entité Galerie
  1255.                         $galerie = new Galeries();
  1256.                         $galerie->setImage($newFilename);
  1257.                         $galerie->setNom($nom);
  1258.                         $entityManager->persist($galerie);
  1259.                     }
  1260.                 }
  1261.                 $centre->setNom($nom);
  1262.                 $centre->setSlug($slug);
  1263.                 $centre->setPays($pays);
  1264.                 
  1265.                 $centre->setLongitude($longitude);
  1266.                 $centre->setLatitude($latitude);
  1267.                 
  1268.                 $centre->setTexte($texte);
  1269.                 $centre->setAdminsId($userId);
  1270.                 $entityManager->persist($centre);
  1271.                 $entityManager->flush();
  1272.                 $this->addFlash(
  1273.                     'success',
  1274.                     'L\'article a été bien enrégistré');
  1275.                     return $this->redirectToRoute('admin.centres');
  1276.             } else {
  1277.                 $this->addFlash('danger''Erreur survenue lors de l\'enregistrement du centre');
  1278.             }
  1279.         }
  1280.         return $this->render('admin/show/admin-centre.html.twig', [
  1281.             'centres' => $centres,
  1282.             'addcentreForm' => $addcentreForm->createView(),
  1283.         ]);
  1284.     }
  1285.     
  1286.     #[Route('/admin/centre/{slug}'name'admin.edit.centre'methods: ['GET','POST'])]
  1287.     public function edit_centre(
  1288.         string $slug,
  1289.         Request $request,
  1290.         SluggerInterface $slugger,
  1291.         VillesRepository $villesRepository,
  1292.         EntityManagerInterface $entityManager
  1293.     ): Response
  1294.     {
  1295.         $user $this->getUser();
  1296.         if (!$user) {
  1297.             return $this->redirectToRoute('login.connexion');
  1298.         }
  1299.     
  1300.         $infocentre $villesRepository->findOneBy(['slug' => $slug]);
  1301.     
  1302.         if (!$infocentre) {
  1303.             throw $this->createNotFoundException('Centre introuvable');
  1304.         }
  1305.     
  1306.         // âœÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ… on édite l’existant
  1307.         $form $this->createForm(EditVilleFormType::class, $infocentre);
  1308.         $form->handleRequest($request);
  1309.     
  1310.         if ($form->isSubmitted()) {
  1311.             // dd( $form->get('img_gal')->getData());
  1312.             /** IMAGE PRINCIPALE **/
  1313.             $imageFile $form->get('image')->getData();
  1314.             if ($imageFile) {
  1315.                 $originalFilename pathinfo($imageFile->getClientOriginalName(), PATHINFO_FILENAME);
  1316.                 $safeFilename $slugger->slug($originalFilename);
  1317.                 $newFilename $safeFilename.'-'.uniqid().'.'.$imageFile->guessExtension();
  1318.     
  1319.                 $imageFile->move(
  1320.                     $this->getParameter('photo_centre'),
  1321.                     $newFilename
  1322.                 );
  1323.     
  1324.                 $infocentre->setImage($newFilename);
  1325.             }
  1326.     
  1327.             /** GALERIE **/
  1328.             $imagesGalerie $form->get('img_gal')->getData();
  1329.             if ($imagesGalerie) {
  1330.                 foreach ($imagesGalerie as $image) {
  1331.                     $filename uniqid().'.'.$image->guessExtension();
  1332.                     $image->move($this->getParameter('photo_centre'), $filename);
  1333.     
  1334.                     $galerie = new Galeries();
  1335.                     $galerie->setImage($filename);
  1336.                     $galerie->setNom($slugger->slug($form->get('nom')->getData())); // âœÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ… ENTITÉ
  1337.                     $entityManager->persist($galerie);
  1338.                 }
  1339.             }
  1340.     
  1341.             $infocentre->setAdminsId($user->getId());
  1342.     
  1343.             $entityManager->flush();
  1344.     
  1345.             $this->addFlash('success''La modification a été effectuée avec succès');
  1346.             return $this->redirectToRoute('admin.centres');
  1347.         }
  1348.     
  1349.         return $this->render('admin/edit/edit-admin-centre.html.twig', [
  1350.             'infocentre' => $infocentre,
  1351.             'editcentreForm' => $form->createView(),
  1352.         ]);
  1353.     }
  1354.     #-----------------CREER UN PARTENAIRE-----------------------
  1355.     #[Route('admin/nos-partenaires'name'admin.nos-partenaires'methods:['POST','GET'])]
  1356.     public function create_partenaires(
  1357.         Request $request
  1358.         PartenairesRepository $partenaireRepository
  1359.         SluggerInterface $slugger,
  1360.         EntityManagerInterface $entityManager
  1361.     ): Response
  1362.     {
  1363.         $partenaire = new Partenaires();
  1364.         $listpartenaire $partenaireRepository->findAll();
  1365.         $addPartenaireForm $this->createForm(PartenaireFormType::class, $partenaire);
  1366.         $addPartenaireForm->handleRequest($request);
  1367.         $user $this->getUser();
  1368.         if($user){
  1369.             if ($addPartenaireForm->isSubmitted() && $addPartenaireForm->isValid()) {
  1370.                 if ($user) {
  1371.                     $userId $user->getId();
  1372.                     $nom $addPartenaireForm->get('nompart')->getData();
  1373.                     $slug $slugger->slug($nom);
  1374.                     $pays $addPartenaireForm->get('payspart')->getData();
  1375.                     $partenaire $addPartenaireForm->getData();
  1376.                     $imageFile $addPartenaireForm->get('imagepart')->getData();
  1377.     
  1378.                     if ($imageFile) {
  1379.                         $originalFilename pathinfo($imageFile->getClientOriginalName(), PATHINFO_FILENAME);
  1380.                         // this is needed to safely include the file name as part of the URL
  1381.                         $safeFilename $slugger->slug($originalFilename);
  1382.                         $newFilename $safeFilename.'-'.uniqid().'.'.$imageFile->guessExtension();
  1383.                         try {
  1384.                             $imageFile->move(
  1385.                                 $this->getParameter('photo_partenaire'),
  1386.                                 $newFilename
  1387.                             );
  1388.                         } catch (FileException $e) {
  1389.                             // ... handle exception if something happens during file upload
  1390.                         }
  1391.                         $partenaire->setImagePart($newFilename);
  1392.                     }else{
  1393.                         $imageFile "no-file";
  1394.                     }
  1395.                     $partenaire->setNomPart($nom);
  1396.                     $partenaire->setSlug($slug);
  1397.                     $partenaire->setPaysPart($pays);
  1398.                     $partenaire->setAdminsId($userId);
  1399.                     $entityManager->persist($partenaire);
  1400.                     $entityManager->flush();
  1401.                     $this->addFlash(
  1402.                         'success',
  1403.                         'Le nouveau partenaire a été bien enrégistré');
  1404.                         return $this->redirectToRoute('admin.nos-partenaires');
  1405.     
  1406.                 } else {
  1407.                     $this->addFlash(
  1408.                     'warning',
  1409.                     'Erreur survenu lors de l\'enrégistrement');
  1410.                     return $this->render('admin/show/admin-nos-partenaires.html.twig', [
  1411.                         'partenaires' => $listpartenaire,
  1412.                         'addPartenaireForm' => $addPartenaireForm->createView(),
  1413.                     ]);
  1414.                 }
  1415.             }
  1416.         }else{
  1417.             return $this->redirectToRoute('login.connexion');
  1418.         }        
  1419.         return $this->render('admin/show/admin-nos-partenaires.html.twig', [
  1420.             'partenaires' => $listpartenaire,
  1421.             'addPartenaireForm' => $addPartenaireForm->createView(),
  1422.         ]);
  1423.     }
  1424.     #-----------------EDITER UN PARTENAIRE-----------------------
  1425.     #[Route('admin/edit/nos-partenaires/{slug}'name'admin.edit.partenaires'methods:['GET','POST'])]
  1426.     public function edit_partenaires(
  1427.         $slug,
  1428.         Request $request,
  1429.         SluggerInterface $slugger,   
  1430.         PartenairesRepository $PR,
  1431.         EntityManagerInterface $entityManager
  1432.     ): Response 
  1433.     {
  1434.         $partenaire = new Partenaires();
  1435.         $editPartenaireForm $this->createForm(EditPartenaireFormType::class, $partenaire);
  1436.         $infos_par $PR->findOneBy(array('slug' => $slug));
  1437.         $editPartenaireForm->handleRequest($request);
  1438.         
  1439.         $user $this->getUser();
  1440.         if($user == null){
  1441.             return $this->redirectToRoute('login.connexion');
  1442.         }
  1443.     
  1444.         if ($editPartenaireForm->isSubmitted()) {
  1445.             
  1446.             $userId $user->getId();
  1447.             $nompart $editPartenaireForm->get('nompart')->getData();
  1448.             $slug $slugger->slug($nompart);
  1449.             $payspart $editPartenaireForm->get('payspart')->getData();
  1450.             $lienpart $editPartenaireForm->get('lienpart')->getData();
  1451.             $imageFile $editPartenaireForm->get('imagepart')->getData();
  1452.             if ($imageFile) {
  1453.                 $originalFilename pathinfo($imageFile->getClientOriginalName(), PATHINFO_FILENAME);
  1454.                 // this is needed to safely include the file name as part of the URL
  1455.                 $safeFilename $slugger->slug($originalFilename);
  1456.                 $newFilename $safeFilename.'-'.uniqid().'.'.$imageFile->guessExtension();
  1457.                 try {
  1458.                     $imageFile->move(
  1459.                         $this->getParameter('photo_partenaire'),
  1460.                         $newFilename
  1461.                     );
  1462.                 } catch (FileException $e) {
  1463.                     // ... handle exception if something happens during file upload
  1464.                 }
  1465.                 $infos_par->setImagePart($newFilename);
  1466.             }
  1467.             $infos_par->setNomPart($nompart);
  1468.             $infos_par->setSlug($slug); 
  1469.             $infos_par->setPaysPart($payspart);
  1470.             $infos_par->setLienPart($lienpart);
  1471.             $infos_par->setAdminsId($userId);
  1472.             $entityManager->flush();
  1473.             $this->addFlash('success','Modification bien effectuée.');
  1474.             return $this->redirectToRoute('admin.nos-partenaires');
  1475.         } 
  1476.         return $this->render('admin/edit/edit-admin-nos-partenaire.html.twig', [
  1477.         'ipart' => $infos_par,
  1478.         'editPartenaireForm' => $editPartenaireForm->createView(),
  1479.         ]);
  1480.     }
  1481.     #-----------------SUPPERIMER UN PARTENAIRE-----------------------
  1482.     #[Route('admin/del/nos-partenaires/{slug}'name'admin.del.partenaires'methods:['GET'])]
  1483.     public function delete_partenaires(
  1484.         $slug,
  1485.         PartenairesRepository $PR,
  1486.         EntityManagerInterface $entityManager
  1487.     ){
  1488.         $select_partner $PR->findOneBy(array('slug' => $slug));
  1489.         $entityManager->remove($select_partner);
  1490.         $entityManager->flush();
  1491.         $this->addFlash(
  1492.             'danger',
  1493.             'Le partenaire a été bien supprimé');
  1494.         return $this->redirectToRoute('admin.nos-partenaires');
  1495.     }
  1496.     #-----------------------------------------------------------------------
  1497.     #[Route('admin/themes'name'admin.theme'methods:['POST','GET'])]
  1498.     public function create_theme(
  1499.         Request $request
  1500.         ThemesRepository $themeRepository
  1501.         SluggerInterface $slugger,
  1502.         EntityManagerInterface $entityManager
  1503.     ): Response
  1504.     {
  1505.         $theme = new Themes();
  1506.         $listheme $themeRepository->findAll();
  1507.         $addthemeForm $this->createForm(ThemeFormType::class, $theme);
  1508.         $addthemeForm->handleRequest($request);
  1509.         $user $this->getUser();
  1510.         if($user){
  1511.             if ($addthemeForm->isSubmitted()) {
  1512.                 if ($user) {
  1513.                     $userId $user->getId();
  1514.                     $thematiqueid $addthemeForm->get('thematique')->getData();
  1515.                     $nom $addthemeForm->get('nom')->getData();
  1516.                     $slug $slugger->slug($nom);
  1517.                     $texte $addthemeForm->get('description')->getData();
  1518.                     $search $themeRepository->findOneBy(array('nom' => $nom));
  1519.                     if($search){
  1520.                         $this->addFlash('danger','Ce thème est déjà enrégistré');
  1521.                         return $this->redirectToRoute('admin.theme');
  1522.                     }
  1523.                     
  1524.                     if(!$texte){
  1525.                         $description "...";
  1526.                     }else{
  1527.                         $description $addthemeForm->get('description')->getData();
  1528.                     } 
  1529.                     
  1530.                     $thematique $addthemeForm->getData();
  1531.                     $theme->setThematique($thematiqueid);
  1532.                     $theme->setNom($nom);
  1533.                     $theme->setSlug($slug);
  1534.                     $theme->setDescription($description);
  1535.                     $entityManager->persist($theme);
  1536.                     $entityManager->flush();
  1537.                     $this->addFlash(
  1538.                         'success',
  1539.                         'Le nouveau thème a été bien enrégistré');
  1540.                         return $this->redirectToRoute('admin.theme');
  1541.     
  1542.                 } else {
  1543.                     $this->addFlash(
  1544.                     'warning',
  1545.                     'Erreur survenu lors de l\'enrégistrement');
  1546.                     return $this->render('admin/show/admin-theme.html.twig', [
  1547.                         'listheme' => $listheme,
  1548.                         'addthemeForm' => $addthemeForm->createView(),
  1549.                     ]);
  1550.                 }
  1551.             }
  1552.         }else{
  1553.             return $this->redirectToRoute('login.connexion');
  1554.         }        
  1555.         return $this->render('admin/show/admin-theme.html.twig', [
  1556.             'listheme' => $listheme,
  1557.             'addthemeForm' => $addthemeForm->createView(),
  1558.         ]);
  1559.     }
  1560.     #---------------------------------------------------------------------
  1561.     #[Route('admin/edit/theme/{slug}'name'admin.edit.theme'methods:['GET','POST'])]
  1562.     public function edit_theme(
  1563.         $slug,
  1564.         Request $request,
  1565.         SluggerInterface $slugger,   
  1566.         ThemesRepository $themeRepository,
  1567.         EntityManagerInterface $entityManager
  1568.     ): Response {
  1569.     
  1570.         $infos_them $themeRepository->findOneBy(['slug' => $slug]);
  1571.     
  1572.         if (!$infos_them) {
  1573.             throw $this->createNotFoundException('Thème introuvable');
  1574.         }
  1575.     
  1576.         $editThemeForm $this->createForm(EditThemeFormType::class, $infos_them);
  1577.         $editThemeForm->handleRequest($request);
  1578.     
  1579.         $them $infos_them->getThematique()?->getNom();
  1580.     
  1581.         $user $this->getUser();
  1582.         if (!$user) {
  1583.             return $this->redirectToRoute('login.connexion');
  1584.         }
  1585.     
  1586.         if ($editThemeForm->isSubmitted() && $editThemeForm->isValid()) {
  1587.     
  1588.             $nom $editThemeForm->get('nom')->getData();
  1589.             $slug $slugger->slug($nom)->lower();
  1590.     
  1591.             $infos_them->setSlug($slug);
  1592.     
  1593.             $entityManager->flush();
  1594.     
  1595.             $this->addFlash('success''Modification bien effectuée.');
  1596.             return $this->redirectToRoute('admin.theme');
  1597.         }
  1598.     
  1599.         return $this->render('admin/edit/edit-admin-theme.html.twig', [
  1600.             'infos_them' => $infos_them,
  1601.             'them' => $them,
  1602.             'editThemeForm' => $editThemeForm->createView(),
  1603.         ]);
  1604.     }
  1605.     /*
  1606.     #[Route('admin/edit/theme/{slug}', name: 'admin.edit.theme', methods:['GET','POST'])]
  1607.     public function edit_theme(
  1608.         $slug,
  1609.         Request $request,
  1610.         SluggerInterface $slugger,   
  1611.         ThemesRepository $themeRepository,
  1612.         EntityManagerInterface $entityManager
  1613.     ): Response 
  1614.     {
  1615.         $infos_them = $themeRepository->findOneBy(array('slug' => $slug));
  1616.         $editThemeForm = $this->createForm(EditThemeFormType::class, $infos_them);
  1617.         $editThemeForm->handleRequest($request);
  1618.         
  1619.         $user = $this->getUser();
  1620.         if($user == null){
  1621.             return $this->redirectToRoute('login.connexion');
  1622.         }
  1623.     
  1624.         if ($editThemeForm->isSubmitted()) {
  1625.             
  1626.             $userId = $user->getId();
  1627.             $thematiqueid = $editThemeForm->get('thematique')->getData();
  1628.             $nom = $editThemeForm->get('nom')->getData();
  1629.             $slug = $slugger->slug($nom);
  1630.             $description = $editThemeForm->get('description')->getData();
  1631.             $theme = $editThemeForm->getData();
  1632.             $infos_them->setThematique($thematiqueid);
  1633.             $infos_them->setNom($nom);
  1634.             $infos_them->setSlug($slug); 
  1635.             $infos_them->setDescription($description);
  1636.             $entityManager->flush();
  1637.             $this->addFlash('success','Modification bien effectuée.');
  1638.             return $this->redirectToRoute('admin.theme');
  1639.         } 
  1640.         return $this->render('admin/edit/edit-admin-theme.html.twig', [
  1641.         'infos_them' => $infos_them,
  1642.         'editThemeForm' => $editThemeForm->createView(),
  1643.         ]);
  1644.     }*/
  1645.     
  1646.     
  1647.     #[Route('admin/del/theme/{slug}'name'admin.del.theme'methods:['GET'])]
  1648.     public function delete_theme(
  1649.         $slug,
  1650.         ThemesRepository $themeRepository,
  1651.         EntityManagerInterface $entityManager
  1652.     ){
  1653.         $select_them $themeRepository->findOneBy(array('slug' => $slug));
  1654.         $entityManager->remove($select_them);
  1655.         $entityManager->flush();
  1656.         $this->addFlash(
  1657.             'danger',
  1658.             'Le thème a été bien supprimé');
  1659.         return $this->redirectToRoute('admin.theme');
  1660.     }
  1661.     #-----------------------------------------------------------------------
  1662.     #[Route('admin/thematiques'name'admin.thematique'methods:['POST','GET'])]
  1663.     public function create_thematique(
  1664.         Request $request
  1665.         ThematiquesRepository $thematiqueRepository
  1666.         SluggerInterface $slugger,
  1667.         EntityManagerInterface $entityManager
  1668.     ): Response
  1669.     {
  1670.         $thematique = new Thematiques();
  1671.         $listhematique $thematiqueRepository->findAll();
  1672.         $addthematiqueForm $this->createForm(ThematiqueFormType::class, $thematique);
  1673.         $addthematiqueForm->handleRequest($request);
  1674.         $user $this->getUser();
  1675.         if($user){
  1676.             if ($addthematiqueForm->isSubmitted()) {
  1677.                 if ($user) {
  1678.                     $userId $user->getId();
  1679.                     $nom $addthematiqueForm->get('nom')->getData();
  1680.                     $slug $slugger->slug($nom);
  1681.                     $description $addthematiqueForm->get('description')->getData();
  1682.                     $thematique $addthematiqueForm->getData();
  1683.                     $thematique->setNom($nom);
  1684.                     $thematique->setSlug($slug);
  1685.                     $thematique->setDescription($description);
  1686.                     $entityManager->persist($thematique);
  1687.                     $entityManager->flush();
  1688.                     $this->addFlash(
  1689.                         'success',
  1690.                         'La nouvelle thématique a été bien enrégistré');
  1691.                         return $this->redirectToRoute('admin.thematique');
  1692.     
  1693.                 } else {
  1694.                     $this->addFlash(
  1695.                     'warning',
  1696.                     'Erreur survenu lors de l\'enrégistrement');
  1697.                     return $this->render('admin/show/admin-thematique.html.twig', [
  1698.                         'listhematique' => $listhematique,
  1699.                         'addthematiqueForm' => $addthematiqueForm->createView(),
  1700.                     ]);
  1701.                 }
  1702.             }
  1703.         }else{
  1704.             return $this->redirectToRoute('login.connexion');
  1705.         }        
  1706.         return $this->render('admin/show/admin-thematique.html.twig', [
  1707.             'listhematique' => $listhematique,
  1708.             'addthematiqueForm' => $addthematiqueForm->createView(),
  1709.         ]);
  1710.     }
  1711.     #---------------------------------------------------------------------
  1712.     #[Route('admin/edit/thematique/{slug}'name'admin.edit.thematique'methods:['GET','POST'])]
  1713.     public function edit_thematique(
  1714.         $slug,
  1715.         Request $request,
  1716.         SluggerInterface $slugger,   
  1717.         ThematiquesRepository $PR,
  1718.         EntityManagerInterface $entityManager
  1719.     ): Response 
  1720.     {
  1721.         $thematique = new Thematiques();
  1722.         $editThematiqueForm $this->createForm(EditThematiqueFormType::class, $thematique);
  1723.         $infos_them $PR->findOneBy(array('slug' => $slug));
  1724.         $editThematiqueForm->handleRequest($request);
  1725.         
  1726.         $user $this->getUser();
  1727.         if($user == null){
  1728.             return $this->redirectToRoute('login.connexion');
  1729.         }
  1730.     
  1731.         if ($editThematiqueForm->isSubmitted()) {
  1732.             
  1733.             $userId $user->getId();
  1734.             $nom $editThematiqueForm->get('nom')->getData();
  1735.             $slug $slugger->slug($nom);
  1736.             $description $editThematiqueForm->get('description')->getData();
  1737.             $thematique $editThematiqueForm->getData();
  1738.             $infos_them->setNom($nom);
  1739.             $infos_them->setSlug($slug); 
  1740.             $infos_them->setDescription($description);
  1741.             $entityManager->flush();
  1742.             $this->addFlash('success','Modification bien effectuée.');
  1743.             return $this->redirectToRoute('admin.thematique');
  1744.         } 
  1745.         return $this->render('admin/edit/edit-admin-thematique.html.twig', [
  1746.         'infos_them' => $infos_them,
  1747.         'editThematiqueForm' => $editThematiqueForm->createView(),
  1748.         ]);
  1749.     }
  1750.     #-----------------SUPPERIMER UN PARTENAIRE-----------------------
  1751.     #[Route('admin/del/thematique/{slug}'name'admin.del.thematique'methods:['GET'])]
  1752.     public function delete_thematique(
  1753.         $slug,
  1754.         ThematiquesRepository $thematiqueRepository,
  1755.         EntityManagerInterface $entityManager
  1756.     ){
  1757.         $select_them $thematiqueRepository->findOneBy(array('slug' => $slug));
  1758.         $entityManager->remove($select_them);
  1759.         $entityManager->flush();
  1760.         $this->addFlash(
  1761.             'danger',
  1762.             'La thématique a été bien supprimée');
  1763.         return $this->redirectToRoute('admin.thematique');
  1764.     }
  1765.     #-----------------------------------------------------------------------
  1766.     #[Route('admin/formations'name'admin.formation'methods:['POST','GET'])]
  1767.     public function create_formation(
  1768.         Request $request
  1769.         FormationsRepository $formationRepository
  1770.         SluggerInterface $slugger,
  1771.         EntityManagerInterface $entityManager
  1772.     ): Response
  1773.     {
  1774.         $formation = new Formations();
  1775.         //$listformation = $formationRepository->findAll();
  1776.         $queryBuilder $entityManager->createQueryBuilder();
  1777.         $queryBuilder
  1778.         ->select(
  1779.             'for.id''for.dates_session''for.prix''for.devise''th.nom'
  1780.             'thm.nom AS thmnom','vil.nom AS vilnom','vil.pays','for.created_at','th.slug',
  1781.             'th.description','for.devise'
  1782.             )
  1783.         ->from(Formations::class, 'for')
  1784.         ->innerJoin(Themes::class,'th''WITH''for.theme = th.id')
  1785.         ->innerJoin(Villes::class, 'vil''WITH''for.ville = vil.id')
  1786.         ->innerJoin(Thematiques::class, 'thm''WITH''th.thematique = thm.id');
  1787.         $listformation $queryBuilder->getQuery()->getResult();
  1788.         $addformationForm $this->createForm(FormationFormType::class, $formation);
  1789.         $addformationForm->handleRequest($request);
  1790.         $user $this->getUser();
  1791.         if($user){
  1792.             if ($addformationForm->isSubmitted()) {
  1793.                 if ($user) {
  1794.                     //$userId = $user->getId();
  1795.                    
  1796.                     $theme $addformationForm->get('theme')->getData();
  1797.                     $ville $addformationForm->get('ville')->getData();
  1798.                     $datesSession $addformationForm->get('dates_session')->getData();
  1799.                     $price $addformationForm->get('prix')->getData();
  1800.                     $devise $addformationForm->get('devise')->getData();
  1801.                     $formation $addformationForm->getData();
  1802.                     $imageFile $addformationForm->get('image')->getData();
  1803.                     $themeId $theme $theme->getId() : null;
  1804.                     $villeId $ville $ville->getId() : null;
  1805.                     
  1806.                     // Supprimer les espaces
  1807.                     $prix str_replace(' '''$price);
  1808.                     
  1809.                     $count $formationRepository->count([
  1810.                         'theme'         => $themeId,
  1811.                         'ville'         => $villeId,
  1812.                         'prix'          => $prix,
  1813.                         'dates_session' => $datesSession,
  1814.                     ]);
  1815.                     //dd($themeId,$villeId, $prix,$datesSession);
  1816.                     if ($count 0) {
  1817.                         $this->addFlash('danger''Cette formation existe déjà.');
  1818.                         return $this->redirectToRoute('admin.formation');
  1819.                     }
  1820.                     
  1821.                     if ($imageFile) {
  1822.                         $originalFilename pathinfo($imageFile->getClientOriginalName(), PATHINFO_FILENAME);
  1823.                         // this is needed to safely include the file name as part of the URL
  1824.                         $safeFilename $slugger->slug($originalFilename);
  1825.                         $newFilename $safeFilename.'-'.uniqid().'.'.$imageFile->guessExtension();
  1826.                         try {
  1827.                             $imageFile->move(
  1828.                                 $this->getParameter('photo_formation'),
  1829.                                 $newFilename
  1830.                             );
  1831.                         } catch (FileException $e) {
  1832.                             // ... handle exception if something happens during file upload
  1833.                         }
  1834.                         $formation->setImage($newFilename);
  1835.                     }else{
  1836.                         $formation->setImage("no-file");
  1837.                     }
  1838.                     
  1839.                     $formation->setTheme($theme);
  1840.                     $formation->setVille($ville);
  1841.                     $formation->setDatesSession($addformationForm->get('dates_session')->getData());
  1842.                     $formation->setPrix($prix);
  1843.                     $formation->setDevise($devise);                   
  1844.                     $entityManager->persist($formation);
  1845.                     $entityManager->flush();
  1846.                     $this->addFlash(
  1847.                         'success',
  1848.                         'La nouvelle formation a été bien enrégistrée');
  1849.                         return $this->redirectToRoute('admin.formation');
  1850.     
  1851.                 } else {
  1852.                     $this->addFlash(
  1853.                     'warning',
  1854.                     'Erreur survenu lors de l\'enrégistrement');
  1855.                     return $this->render('admin/show/admin-formations.html.twig', [
  1856.                         'listformation' => $listformation,
  1857.                         'addformationForm' => $addformationForm->createView(),
  1858.                     ]);
  1859.                 }
  1860.             }
  1861.         }else{
  1862.             return $this->redirectToRoute('login.connexion');
  1863.         }        
  1864.         return $this->render('admin/show/admin-formations.html.twig', [
  1865.             'listformation' => $listformation,
  1866.             'addformationForm' => $addformationForm->createView(),
  1867.         ]);
  1868.     }
  1869.     #---------------------------------------------------------------------
  1870.     #[Route('admin/edit/formation/{id}'name'admin.edit.formation'methods:['GET','POST'])]
  1871.     public function edit_formation(
  1872.         $id,
  1873.         Request $request,
  1874.         SluggerInterface $slugger,   
  1875.         FormationsRepository $formationsRepository,
  1876.         EntityManagerInterface $entityManager
  1877.     ): Response 
  1878.     {
  1879.         $formations = new Formations();
  1880.         $formation $formationsRepository->find($id);
  1881.         $editFormationForm $this->createForm(EditFormationFormType::class, $formation);
  1882.         $editFormationForm->handleRequest($request);
  1883.         
  1884.         $user $this->getUser();
  1885.         if($user == null){
  1886.             return $this->redirectToRoute('login.connexion');
  1887.         }
  1888.     
  1889.         if ($editFormationForm->isSubmitted()) {
  1890.             
  1891.             $theme $editFormationForm->get('theme')->getData();
  1892.             $ville $editFormationForm->get('ville')->getData();
  1893.             $session $editFormationForm->get('dates_session')->getData();
  1894.             $price $editFormationForm->get('prix')->getData();
  1895.             $devise $editFormationForm->get('devise')->getData();
  1896.             $infos_form $editFormationForm->getData();
  1897.             $imageFile $editFormationForm->get('image')->getData();
  1898.             
  1899.             $themeId $theme $theme->getId() : null;
  1900.             $villeId $ville $ville->getId() : null;
  1901.             
  1902.             // Supprimer les espaces
  1903.             $prix str_replace(' '''$price);
  1904.             $count $formationsRepository->count([
  1905.                 'theme'         => $themeId,
  1906.                 'ville'         => $villeId,
  1907.                 'prix'          => $prix,
  1908.                 'dates_session' => $session,
  1909.             ]);
  1910.             //dd($themeId,$villeId, $prix,$datesSession);
  1911.             /*if ($count > 0) {
  1912.                 $this->addFlash('danger', 'Cette formation existe déjà.');
  1913.                 return $this->redirectToRoute('admin.formation');
  1914.             }*/
  1915.             if ($imageFile != null) {
  1916.                 $originalFilename pathinfo($imageFile->getClientOriginalName(), PATHINFO_FILENAME);
  1917.                 // this is needed to safely include the file name as part of the URL
  1918.                 $safeFilename $slugger->slug($originalFilename);
  1919.                 $newFilename $safeFilename.'-'.uniqid().'.'.$imageFile->guessExtension();
  1920.                 try {
  1921.                     $imageFile->move(
  1922.                         $this->getParameter('photo_formation'),
  1923.                         $newFilename
  1924.                     );
  1925.                 } catch (FileException $e) {
  1926.                     // ... handle exception if something happens during file upload
  1927.                 }
  1928.                 $formation->setImage($newFilename);
  1929.             }
  1930.             $date $session;
  1931.             
  1932.             // Supprimer les espaces
  1933.             $prix str_replace(' '''$prix);
  1934.             
  1935.             // Remplacer la virgule par un point si nécessaire
  1936.             $prix str_replace(',''.'$prix);
  1937.             //dd($dates_session);
  1938.             $formation->setTheme($theme);
  1939.             $formation->setVille($ville);
  1940.             $formation->setDatesSession($editFormationForm->get('dates_session')->getData());
  1941.             $formation->setPrix($prix);
  1942.             $formation->setDevise($devise);
  1943.             $entityManager->flush();
  1944.             $this->addFlash('success','Modification bien effectuée.');
  1945.             return $this->redirectToRoute('admin.formation');
  1946.         } 
  1947.         return $this->render('admin/edit/edit-admin-formation.html.twig', [
  1948.         'infos_form' => $formation,
  1949.         'editFormationForm' => $editFormationForm->createView(),
  1950.         ]);
  1951.     }
  1952.     #[Route('admin/del/formation/{id}'name'admin.del.formation'methods:['GET'])]
  1953.     public function delete_formation(
  1954.         $id,
  1955.         FormationsRepository $formationRepository,
  1956.         EntityManagerInterface $entityManager
  1957.     ){
  1958.         $select_form $formationRepository->findOneBy(array('id' => $id));
  1959.         $entityManager->remove($select_form);
  1960.         $entityManager->flush();
  1961.         $this->addFlash(
  1962.             'danger',
  1963.             'La formation a été bien supprimée');
  1964.         return $this->redirectToRoute('admin.formation');
  1965.     }
  1966.     #-----------------CREER UN PARTENAIRE-----------------------
  1967.     #[Route('admin/notre-equipe'name'admin.equipe'methods:['POST','GET'])]
  1968.     public function create_equipe(
  1969.         Request $request
  1970.         EquipesRepository $equipeRepository
  1971.         SluggerInterface $slugger,
  1972.         EntityManagerInterface $entityManager
  1973.     ): Response
  1974.     {
  1975.         $equipe = new Equipes();
  1976.         $listequipe $equipeRepository->findAll();
  1977.         $addEquipeForm $this->createForm(EquipeFormType::class, $equipe);
  1978.         $addEquipeForm->handleRequest($request);
  1979.         $user $this->getUser();
  1980.         if($user){
  1981.             if ($addEquipeForm->isSubmitted()) {
  1982.                 if ($user) {
  1983.                     $userId $user->getId();
  1984.                     $nom $addEquipeForm->get('nom')->getData();
  1985.                     $slug $slugger->slug($nom);
  1986.                     $titre $addEquipeForm->get('titre')->getData();
  1987.                     $face $addEquipeForm->get('face')->getData() ?? '#';
  1988.                     $twit $addEquipeForm->get('titre')->getData() ?? '#';
  1989.                     $link $addEquipeForm->get('link')->getData() ?? '#';
  1990.                     $imageFile $addEquipeForm->get('image')->getData();
  1991.                     $equipe $addEquipeForm->getData();
  1992.     
  1993.                     if ($imageFile) {
  1994.                         $originalFilename pathinfo($imageFile->getClientOriginalName(), PATHINFO_FILENAME);
  1995.                         // this is needed to safely include the file name as part of the URL
  1996.                         $safeFilename $slugger->slug($originalFilename);
  1997.                         $newFilename $safeFilename.'-'.uniqid().'.'.$imageFile->guessExtension();
  1998.                         try {
  1999.                             $imageFile->move(
  2000.                                 $this->getParameter('photo_equipe'),
  2001.                                 $newFilename
  2002.                             );
  2003.                         } catch (FileException $e) {
  2004.                             // ... handle exception if something happens during file upload
  2005.                         }
  2006.                         $equipe->setImage($newFilename);
  2007.                     }else{
  2008.                         $equipe->setImage("no-file");
  2009.                     }
  2010.                     $equipe->setNom($nom);
  2011.                     $equipe->setSlug($slug);
  2012.                     $equipe->setTitre($titre);
  2013.                     $equipe->setFace($face);
  2014.                     $equipe->setTwit($twit);
  2015.                     $equipe->setLink($link);
  2016.                     $equipe->setAdminsId($userId);
  2017.                     //$entityManager->persist($equipe);
  2018.                     $entityManager->flush();
  2019.                     $this->addFlash(
  2020.                         'success',
  2021.                         'Le membre a été bien enrégistré');
  2022.                         return $this->redirectToRoute('admin.equipe');
  2023.     
  2024.                 } else {
  2025.                     $this->addFlash(
  2026.                     'warning',
  2027.                     'Erreur survenu lors de l\'enrégistrement');
  2028.                     return $this->render('admin/show/admin-equipe.html.twig', [
  2029.                         'listequipe' => $listequipe,
  2030.                         'addEquipeForm' => $addEquipeForm->createView(),
  2031.                     ]);
  2032.                 }
  2033.             }
  2034.         }else{
  2035.             return $this->redirectToRoute('login.connexion');
  2036.         }        
  2037.         return $this->render('admin/show/admin-equipe.html.twig', [
  2038.             'listequipe' => $listequipe,
  2039.             'addEquipeForm' => $addEquipeForm->createView(),
  2040.         ]);
  2041.     }
  2042.     #-----------------EDITER UN PARTENAIRE-----------------------
  2043.     #[Route('admin/edit/notre-equipe/{slug}'name'admin.edit.equipe'methods:['GET','POST'])]
  2044.     public function edit_equipe(
  2045.         $slug,
  2046.         Request $request,
  2047.         SluggerInterface $slugger,   
  2048.         EquipesRepository $PR,
  2049.         EntityManagerInterface $entityManager
  2050.     ): Response 
  2051.     {
  2052.         $equipe = new Equipes();
  2053.         $editEquipeForm $this->createForm(EditEquipeFormType::class, $equipe);
  2054.         $infos_equi $PR->findOneBy(array('slug' => $slug));
  2055.         $editEquipeForm->handleRequest($request);
  2056.         
  2057.         $user $this->getUser();
  2058.         if($user == null){
  2059.             return $this->redirectToRoute('login.connexion');
  2060.         }
  2061.     
  2062.         if ($editEquipeForm->isSubmitted()) {
  2063.             
  2064.             $userId $user->getId();
  2065.             $nom $editEquipeForm->get('nom')->getData();
  2066.             $slug $slugger->slug($nom);
  2067.             $titre $editEquipeForm->get('titre')->getData();
  2068.             $face $editEquipeForm->get('face')->getData() ?? '#';
  2069.             $twit $editEquipeForm->get('titre')->getData() ?? '#';
  2070.             $link $editEquipeForm->get('link')->getData() ?? '#';
  2071.             $imageFile $editEquipeForm->get('image')->getData();
  2072.             if ($imageFile) {
  2073.                 $originalFilename pathinfo($imageFile->getClientOriginalName(), PATHINFO_FILENAME);
  2074.                 // this is needed to safely include the file name as part of the URL
  2075.                 $safeFilename $slugger->slug($originalFilename);
  2076.                 $newFilename $safeFilename.'-'.uniqid().'.'.$imageFile->guessExtension();
  2077.                 try {
  2078.                     $imageFile->move(
  2079.                         $this->getParameter('photo_partenaire'),
  2080.                         $newFilename
  2081.                     );
  2082.                 } catch (FileException $e) {
  2083.                     // ... handle exception if something happens during file upload
  2084.                 }
  2085.                 $infos_equi->setImage($newFilename);
  2086.             }
  2087.             $infos_equi->setNom($nom);
  2088.             $infos_equi->setSlug($slug);
  2089.             $infos_equi->setTitre($titre);
  2090.             $infos_equi->setFace($face);
  2091.             $infos_equi->setTwit($twit);
  2092.             $infos_equi->setLink($link);
  2093.             $infos_equi->setAdminsId($userId);
  2094.             $entityManager->flush();
  2095.             $this->addFlash('success','Modification bien effectuée.');
  2096.             return $this->redirectToRoute('admin.equipe');
  2097.         } 
  2098.         return $this->render('admin/edit/edit-admin-equipe.html.twig', [
  2099.         'infos_equi' => $infos_equi,
  2100.         'editEquipeForm' => $editEquipeForm->createView(),
  2101.         ]);
  2102.     }
  2103.     #-----------------SUPPERIMER UN PARTENAIRE-----------------------
  2104.     #[Route('admin/del/equipe/{slug}'name'admin.del.equipe'methods:['GET'])]
  2105.     public function delete_equipe(
  2106.         $slug,
  2107.         EquipesRepository $PR,
  2108.         EntityManagerInterface $entityManager
  2109.     ){
  2110.         $select_equipe $PR->findOneBy(array('slug' => $slug));
  2111.         $entityManager->remove($select_equipe);
  2112.         $entityManager->flush();
  2113.         $this->addFlash(
  2114.             'danger',
  2115.             'Le membre a été bien supprimé');
  2116.         return $this->redirectToRoute('admin.equipe');
  2117.     }
  2118.     #-----------------CREER UN PARTENAIRE-----------------------
  2119.     #[Route('admin/nos-references'name'admin.references'methods:['POST','GET'])]
  2120.     public function create_references(
  2121.         Request $request
  2122.         ReferenceclientsRepository $referenceRepository
  2123.         SluggerInterface $slugger,
  2124.         EntityManagerInterface $entityManager
  2125.     ): Response
  2126.     {
  2127.         $references = new Referenceclients();
  2128.         $listreference $referenceRepository->findAll();
  2129.         $addReferenceForm $this->createForm(ReferenceclientFormType::class, $references);
  2130.         $addReferenceForm->handleRequest($request);
  2131.         $user $this->getUser();
  2132.         if($user){
  2133.             if ($addReferenceForm->isSubmitted() && $addReferenceForm->isValid()) {
  2134.                 if ($user) {
  2135.                     $userId $user->getId();
  2136.                     $nom $addReferenceForm->get('nom')->getData();
  2137.                     $slug $slugger->slug($nom);
  2138.                     
  2139.                     $imageFile $addReferenceForm->get('image')->getData();
  2140.                     $references $addReferenceForm->getData();
  2141.     
  2142.                     if ($imageFile) {
  2143.                         $originalFilename pathinfo($imageFile->getClientOriginalName(), PATHINFO_FILENAME);
  2144.                         // this is needed to safely include the file name as part of the URL
  2145.                         $safeFilename $slugger->slug($originalFilename);
  2146.                         $newFilename $safeFilename.'-'.uniqid().'.'.$imageFile->guessExtension();
  2147.                         try {
  2148.                             $imageFile->move(
  2149.                                 $this->getParameter('photo_reference'),
  2150.                                 $newFilename
  2151.                             );
  2152.                         } catch (FileException $e) {
  2153.                             // ... handle exception if something happens during file upload
  2154.                         }
  2155.                         $references->setImage($newFilename);
  2156.                     }else{
  2157.                         $references->setImage("no-file");
  2158.                     }
  2159.                     $references->setNom($nom);
  2160.                     $references->setSlug($slug);
  2161.                     $references->setAdminsId($userId);
  2162.                     $entityManager->persist($references);
  2163.                     $entityManager->flush();
  2164.                     $this->addFlash(
  2165.                         'success',
  2166.                         'La nouvelle référence a été bien enrégistré');
  2167.                         return $this->redirectToRoute('admin.references');
  2168.     
  2169.                 } else {
  2170.                     $this->addFlash(
  2171.                     'warning',
  2172.                     'Erreur survenu lors de l\'enrégistrement');
  2173.                     return $this->render('admin/show/admin-nos-references.html.twig', [
  2174.                         'listreference' => $listreference,
  2175.                         'addPartenaireForm' => $addReferenceForm->createView(),
  2176.                     ]);
  2177.                 }
  2178.             }
  2179.         }else{
  2180.             return $this->redirectToRoute('login.connexion');
  2181.         }        
  2182.         return $this->render('admin/show/admin-nos-references.html.twig', [
  2183.             'listreference' => $listreference,
  2184.             'addReferenceForm' => $addReferenceForm->createView(),
  2185.         ]);
  2186.     }
  2187.     #-----------------EDITER UN PARTENAIRE-----------------------
  2188.     #[Route('admin/edit/nos-references/{slug}'name'admin.edit.reference'methods:['GET','POST'])]
  2189.     public function edit_references(
  2190.         $slug,
  2191.         Request $request,
  2192.         SluggerInterface $slugger,   
  2193.         ReferenceclientsRepository $REF,
  2194.         EntityManagerInterface $entityManager
  2195.     ): Response 
  2196.     {
  2197.         $references = new Referenceclients();
  2198.         $editReferenceForm $this->createForm(EditReferenceclientFormType::class, $references);
  2199.         $infos_ref $REF->findOneBy(array('slug' => $slug));
  2200.         $editReferenceForm->handleRequest($request);
  2201.         
  2202.         $user $this->getUser();
  2203.         if($user == null){
  2204.             return $this->redirectToRoute('login.connexion');
  2205.         }
  2206.         if ($editReferenceForm->isSubmitted()) {
  2207.             
  2208.             $userId $user->getId();
  2209.             $nom $editReferenceForm->get('nom')->getData();
  2210.             $slug $slugger->slug($nom);
  2211.             $imageFile $editReferenceForm->get('image')->getData();
  2212.             if ($imageFile) {
  2213.                 $originalFilename pathinfo($imageFile->getClientOriginalName(), PATHINFO_FILENAME);
  2214.                 // this is needed to safely include the file name as part of the URL
  2215.                 $safeFilename $slugger->slug($originalFilename);
  2216.                 $newFilename $safeFilename.'-'.uniqid().'.'.$imageFile->guessExtension();
  2217.                 try {
  2218.                     $imageFile->move(
  2219.                         $this->getParameter('photo_reference'),
  2220.                         $newFilename
  2221.                     );
  2222.                 } catch (FileException $e) {
  2223.                     // ... handle exception if something happens during file upload
  2224.                 }
  2225.                 $infos_ref->setImage($newFilename);
  2226.             }
  2227.             $infos_ref->setNom($nom);
  2228.             $infos_ref->setSlug($slug); 
  2229.             $infos_ref->setAdminsId($userId);
  2230.             $entityManager->flush();
  2231.             $this->addFlash('success','Modification bien effectuée.');
  2232.             return $this->redirectToRoute('admin.references');
  2233.         } 
  2234.         return $this->render('admin/edit/edit-admin-nos-references.html.twig', [
  2235.         'info_ref' => $infos_ref,
  2236.         'editReferenceForm' => $editReferenceForm->createView(),
  2237.         ]);
  2238.     }
  2239.     #-----------------SUPPERIMER UN PARTENAIRE-----------------------
  2240.     #[Route('admin/del/nos-references/{slug}'name'admin.del.reference'methods:['GET'])]
  2241.     public function delete_referent(
  2242.         $slug,
  2243.         ReferenceclientsRepository $REF,
  2244.         EntityManagerInterface $entityManager
  2245.     ){
  2246.         $select_ref $REF->findOneBy(array('slug' => $slug));
  2247.         $entityManager->remove($select_ref);
  2248.         $entityManager->flush();
  2249.         $this->addFlash(
  2250.             'danger',
  2251.             'La référence a été bien supprimé');
  2252.         return $this->redirectToRoute('admin.references');
  2253.     }
  2254.     //--------------------------------------------------------------------------------------
  2255.     #[Route('admin/actualite'name'admin.actualite'methods:['GET','POST'])]
  2256.     public function actualite(
  2257.         Request $request
  2258.         SluggerInterface $slugger
  2259.         ActualitesRepository $actualiteRepository
  2260.         EntityManagerInterface $entityManager
  2261.     ): Response
  2262.     {
  2263.         $actualite = new Actualites();
  2264.         $listactualite $actualiteRepository->findAll();
  2265.         $addactualiteForm $this->createForm(ActualiteFormType::class, $actualite);
  2266.         $addactualiteForm->handleRequest($request);
  2267.         $user $this->getUser();
  2268.         
  2269.         if($user){
  2270.             if ($addactualiteForm->isSubmitted()) {
  2271.             // dd('OK');
  2272.                 $userId $user->getId();
  2273.                 $titre $addactualiteForm->get('titre')->getData();
  2274.                 $slug $slugger->slug($titre);
  2275.                 $resume $addactualiteForm->get('resume')->getData();
  2276.                 $texte $addactualiteForm->get('texte')->getData();
  2277.                 $statut $addactualiteForm->get('statut')->getData();
  2278.                 
  2279.                 if(!$texte){
  2280.                     $description "...";
  2281.                 }else{
  2282.                     $description $addactualiteForm->get('texte')->getData();
  2283.                 }
  2284.                 $actualite $addactualiteForm->getData();
  2285.                 $imageFile $addactualiteForm->get('image')->getData();
  2286.                 if ($imageFile) {
  2287.                     $originalFilename pathinfo($imageFile->getClientOriginalName(), PATHINFO_FILENAME);
  2288.                     // this is needed to safely include the file name as part of the URL
  2289.                     $safeFilename $slugger->slug($originalFilename);
  2290.                     $newFilename $safeFilename.'-'.uniqid().'.'.$imageFile->guessExtension();
  2291.                     try {
  2292.                         $imageFile->move(
  2293.                             $this->getParameter('photo_actualite'),
  2294.                             $newFilename
  2295.                         );
  2296.                     } catch (FileException $e) {
  2297.                         // ... handle exception if something happens during file upload
  2298.                     }
  2299.                     $actualite->setImage($newFilename);
  2300.                 }else{
  2301.                     $imageFile "no-file";
  2302.                 }
  2303.                 
  2304.                 $actualite->setTitre($titre);
  2305.                 $actualite->setSlug($slug);
  2306.                 $actualite->setResume($resume);
  2307.                 $actualite->setTexte($description);
  2308.                 $actualite->setStatut($statut);
  2309.                 $actualite->setAdminsId($userId);
  2310.                 $entityManager->persist($actualite);
  2311.                 $entityManager->flush();
  2312.                 $this->addFlash(
  2313.                     'success',
  2314.                     'L\'article a été bien enrégistré');
  2315.                     return $this->redirectToRoute('admin.actualite');
  2316.             }
  2317.         }else{
  2318.             return $this->redirectToRoute('login.connexion');
  2319.         }
  2320.         return $this->render('admin/show/admin-actualite.html.twig', [
  2321.             'actualites' => $listactualite,
  2322.             'addactualiteForm' => $addactualiteForm->createView(),
  2323.         ]);
  2324.     }
  2325.     
  2326.     #[Route('admin/edit/actualite/{slug}'name'admin.edit.actualite'methods:['GET','POST'])]
  2327.     public function edit_actualite(
  2328.         $slug,
  2329.         Request $request,
  2330.         SluggerInterface $slugger
  2331.         EntityManagerInterface $entityManager,
  2332.         ActualitesRepository $actualiteRepository
  2333.     ): Response
  2334.     {
  2335.         $actualite = new Actualites();
  2336.         $user $this->getUser();
  2337.         $infoactu $actualiteRepository->findOneBy(array(
  2338.             'slug' => $slug
  2339.         ));
  2340.         $editactualiteForm $this->createForm(EditActualiteFormType::class, $infoactu);
  2341.         $editactualiteForm->handleRequest($request);
  2342.         if($user){
  2343.             if ($editactualiteForm->isSubmitted()) {
  2344.                 $userId $user->getId();
  2345.                 $titre $editactualiteForm->get('titre')->getData();
  2346.                 $slug $slugger->slug($titre);
  2347.                 $resume $editactualiteForm->get('resume')->getData();
  2348.                 $texte $editactualiteForm->get('texte')->getData();
  2349.                 $statut $editactualiteForm->get('statut')->getData();
  2350.                 // $actualite = $editactualiteForm->getData();
  2351.                 $imageFile $editactualiteForm->get('image')->getData();
  2352.                 // dd($imageFile);
  2353.                 
  2354.                 if ($imageFile != null) {
  2355.                     $originalFilename pathinfo($imageFile->getClientOriginalName(), PATHINFO_FILENAME);
  2356.                     // this is needed to safely include the file name as part of the URL
  2357.                     $safeFilename $slugger->slug($originalFilename);
  2358.                     $newFilename $safeFilename.'-'.uniqid().'.'.$imageFile->guessExtension();
  2359.                     try {
  2360.                         $imageFile->move(
  2361.                             $this->getParameter('photo_actualite'),
  2362.                             $newFilename
  2363.                         );
  2364.                     } catch (FileException $e) {
  2365.                         // ... handle exception if something happens during file upload
  2366.                     }
  2367.                     $infoactu->setImage($newFilename);
  2368.                 }
  2369.                 $infoactu->setTitre($titre);
  2370.                 $infoactu->setSlug($slug);
  2371.                 $infoactu->setResume($resume);
  2372.                 $infoactu->setTexte($texte);
  2373.                 $infoactu->setStatut($statut);
  2374.                 $infoactu->setAdminsId($userId);
  2375.                 $entityManager->flush();
  2376.                 $this->addFlash('success','La modification a étét bien effectuée');
  2377.                 return $this->redirectToRoute('admin.actualite');
  2378.            
  2379.             }
  2380.         }else{
  2381.             return $this->redirectToRoute('login.connexion');
  2382.         }
  2383.         return $this->render('admin/edit/edit-admin-actualite.html.twig', [
  2384.         'infoactu' => $infoactu,
  2385.         'editactualiteForm' => $editactualiteForm->createView(),
  2386.         ]);
  2387.     }  
  2388.     #-----------------SUPPERIMER UN ACTUALITE-----------------------
  2389.     #[Route('admin/del/actualite/{slug}'name'admin.del.actualite'methods:['GET'])]
  2390.     public function delete_actualite(
  2391.         $slug,
  2392.         ActualitesRepository $AC,
  2393.         EntityManagerInterface $entityManager
  2394.     ){
  2395.         $select_actu $AC->findOneBy(array('slug' => $slug));
  2396.         $entityManager->remove($select_actu);
  2397.         $entityManager->flush();
  2398.         $this->addFlash(
  2399.             'danger',
  2400.             'Le post a été bien supprimé');
  2401.         return $this->redirectToRoute('admin.actualite');
  2402.     }
  2403.     //--
  2404.     //--------------------------------------------------------------------------------------
  2405.     #[Route('admin/banniere'name'admin.banniere'methods:['GET','POST'])]
  2406.     public function create_banniere(
  2407.         Request $request
  2408.         SluggerInterface $slugger
  2409.         BannieresRepository $banniereRepository
  2410.         EntityManagerInterface $entityManager
  2411.     ): Response
  2412.     {
  2413.         $slide = new Bannieres();
  2414.         $countSlide $banniereRepository->count();
  2415.         $listslides $banniereRepository->findAll();
  2416.         $addbanniereForm $this->createForm(BanniereFormType::class, $slide);
  2417.         $addbanniereForm->handleRequest($request);
  2418.         $user $this->getUser();
  2419.         if ($user) {
  2420.             if($addbanniereForm->isSubmitted() && $addbanniereForm->isValid()){
  2421.                 $listslides $banniereRepository->findAll();
  2422.                 $userId $user->getId();
  2423.                 $slide $addbanniereForm->getData();
  2424.                 $texte $addbanniereForm->get('texte')->getData();
  2425.                 $imageFile $addbanniereForm->get('image')->getData();
  2426.                 if ($imageFile) {
  2427.                     $originalFilename pathinfo($imageFile->getClientOriginalName(), PATHINFO_FILENAME);
  2428.                     // this is needed to safely include the file name as part of the URL
  2429.                     $safeFilename $slugger->slug($originalFilename);
  2430.                     $newFilename $safeFilename.'-'.uniqid().'.'.$imageFile->guessExtension();
  2431.                     try {
  2432.                         $imageFile->move(
  2433.                             $this->getParameter('photo_banniere'),
  2434.                             $newFilename
  2435.                         );
  2436.                     } catch (FileException $e) {
  2437.                         // ... handle exception if something happens during file upload
  2438.                     }
  2439.                     $slide->setImage($newFilename);
  2440.                 }else{
  2441.                     $slide "no-file";
  2442.                 }
  2443.                 $slide->setTexte($texte);
  2444.                 $slide->setAdminsId($userId);
  2445.                 $entityManager->persist($slide);
  2446.                 $entityManager->flush();
  2447.                 $this->addFlash(
  2448.                     'success',
  2449.                     'La bannière a été bien enrégistré');
  2450.                     return $this->redirectToRoute('admin.banniere');
  2451.             }
  2452.         }else{
  2453.             return $this->redirectToRoute('login.connexion');
  2454.         }
  2455.         return $this->render('admin/show/admin-banniere.html.twig', [
  2456.             'listslide' => $listslides,
  2457.             'countSlide' => $countSlide,
  2458.             'addbanniereForm' => $addbanniereForm->createView(),
  2459.         ]);
  2460.     }
  2461.     #[Route('admin/edit/banniere/{id}'name'admin.edit.banniere'methods:['GET','POST'])]
  2462.     public function edit_banniere(
  2463.         $id,
  2464.         Request $request,
  2465.         SluggerInterface $slugger
  2466.         BannieresRepository $banniereRepository,
  2467.         EntityManagerInterface $entityManager
  2468.     ): Response
  2469.     {
  2470.         $user $this->getUser();
  2471.         $infos $banniereRepository->find($id);
  2472.         // dd($infos);
  2473.         $banniere = new Bannieres();
  2474.         $editSlideForm $this->createForm(EditBanniereFormType::class, $banniere);
  2475.         $editSlideForm->handleRequest($request);
  2476.         $data $editSlideForm->getData(); 
  2477.         
  2478.         if($user){
  2479.             if ($editSlideForm->isSubmitted()) {
  2480.                 // dd($editSlideForm);
  2481.                 $userId $user->getId();
  2482.                 $data $banniereRepository->find(1);
  2483.                 $texte $editSlideForm->get('texte')->getData();
  2484.                 $imageFile $editSlideForm->get('image')->getData();
  2485.     
  2486.                 if ($imageFile) {
  2487.                     $originalFilename pathinfo($imageFile->getClientOriginalName(), PATHINFO_FILENAME);
  2488.                     // this is needed to safely include the file name as part of the URL
  2489.                     $safeFilename $slugger->slug($originalFilename);
  2490.                     $newFilename $safeFilename.'-'.uniqid().'.'.$imageFile->guessExtension();
  2491.                     try {
  2492.                         $imageFile->move(
  2493.                             $this->getParameter('photo_banniere'),
  2494.                             $newFilename
  2495.                         );
  2496.                     } catch (FileException $e) {
  2497.                         // ... handle exception if something happens during file upload
  2498.                     }
  2499.                     $infos->setImage($newFilename);
  2500.                 }
  2501.                 $infos->setTexte($texte);
  2502.                 $infos->setAdminsId($userId);
  2503.                 $entityManager->flush();
  2504.                 $this->addFlash('success','Les informations concernant la bannières ont été bien modifiées');
  2505.                         return $this->redirectToRoute('admin.banniere');
  2506.             }
  2507.         }else{
  2508.             return $this->redirectToRoute('login.connexion');
  2509.         }
  2510.         return $this->render('admin/edit/edit-admin-banniere.html.twig', [
  2511.         'infos' => $infos,
  2512.         'editSlideForm' => $editSlideForm->createView(),
  2513.         ]);
  2514.     }
  2515.     #[Route('admin/del/banniere/{id}'name'admin.del.banniere'methods:['GET'])]
  2516.     public function delete_banniere(
  2517.         $slug,
  2518.         BannieresRepository $BAR,
  2519.         EntityManagerInterface $entityManager
  2520.     ){
  2521.         $select_ban $BAR->findOneBy(array('id' => $id));
  2522.         $entityManager->remove($select_ban);
  2523.         $entityManager->flush();
  2524.         $this->addFlash(
  2525.             'danger',
  2526.             'La bannière a été bien supprimé');
  2527.         return $this->redirectToRoute('admin.banniere');
  2528.     }
  2529.     #[Route('admin/utilisateurs'name'admin.users'methods:['POST','GET'])]
  2530.     public function create_utilisateur(
  2531.         Request $request
  2532.         SluggerInterface $slugger
  2533.         UsersRepository $UR
  2534.         EntityManagerInterface $entityManager,
  2535.         UserPasswordHasherInterface $passwordHasher
  2536.     ): Response
  2537.     {
  2538.         // if (!$this->isGranted('ROLE_ADMIN')) {
  2539.         //     $error ="Vous n'avez pas accès à cette page.";
  2540.         //     return $this->render('admin/error/page-erreur.html.twig', [
  2541.         //         'error' => $error,
  2542.         //     ]);
  2543.             
  2544.         //     //throw $this->createAccessDeniedException('No access for you!');
  2545.         // }
  2546.         $listuser $UR->findAll();
  2547.         $user = new Users();
  2548.         $addUserForm $this->createForm(UserFormType::class, $user);
  2549.         $addUserForm->handleRequest($request);
  2550.         if ($addUserForm->isSubmitted() && $addUserForm->isValid()) {
  2551.             if ($user) {
  2552.                 $user $addUserForm->getData();
  2553.                 $imageFile $addUserForm->get('image')->getData();
  2554.                 if ($imageFile) {
  2555.                     $originalFilename pathinfo($imageFile->getClientOriginalName(), PATHINFO_FILENAME);
  2556.                     // this is needed to safely include the file name as part of the URL
  2557.                     $safeFilename $slugger->slug($originalFilename);
  2558.                     $newFilename $safeFilename.'-'.uniqid().'.'.$imageFile->guessExtension();
  2559.                     try {
  2560.                         $imageFile->move(
  2561.                             $this->getParameter('photo_user'),
  2562.                             $newFilename
  2563.                         );
  2564.                     } catch (FileException $e) {
  2565.                         // ... handle exception if something happens during file upload
  2566.                     }
  2567.                     $user->setImage($newFilename);
  2568.                 }else{
  2569.                     $user->setImage('no-file');
  2570.                 }
  2571.                 $plaintextPassword $addUserForm->get('password')->getData();
  2572.                 $hashedPassword $passwordHasher->hashPassword(
  2573.                     $user,
  2574.                     $plaintextPassword
  2575.                 );
  2576.                 $user->setPassword($hashedPassword);
  2577.                 $entityManager->persist($user);
  2578.                 $entityManager->flush();
  2579.                 $this->addFlash(
  2580.                     'success',
  2581.                     'Votre compte a été créé.'
  2582.                 );
  2583.                 return $this->redirectToRoute('admin.users');
  2584.             } else {
  2585.                 // Handle the case where the user is not authenticated
  2586.             }
  2587.         }
  2588.         return $this->render('admin/show/admin-utilisateur.html.twig', [
  2589.             'users' => $listuser,
  2590.             'addUserForm' => $addUserForm->createView(),
  2591.         ]);
  2592.     }
  2593.     // //Lien avec paramètre
  2594.     #[Route('admin/edit/utilisateurs/{id}'name'admin.edit.users'methods:['GET','POST'])]
  2595.     public function edit_utilisateur(
  2596.         $id,
  2597.         Request $request,
  2598.         UsersRepository $UR,
  2599.     ): Response
  2600.     {
  2601.         $infos $UR->find($id);
  2602.         $user = new Users();
  2603.         $editUserForm $this->createForm(EditUserFormType::class, $user);
  2604.         $editUserForm->handleRequest($request);
  2605.         return $this->render('admin/edit/edit-admin-utilisateur.html.twig', [
  2606.         'infos' => $infos,
  2607.         ]);
  2608.     }
  2609.     #[Route('admin/del/utilisateurs/{id}'name'admin.del.users'methods:['GET'])]
  2610.     public function delete_users(
  2611.         $id,
  2612.         UsersRepository $usersRepository,
  2613.         EntityManagerInterface $entityManager,
  2614.     ): Response{
  2615.         $select_user $usersRepository->findOneBy(array('id' => $id));
  2616.         $id $select_user->getId();
  2617.         $entityManager->remove($select_user);
  2618.         $entityManager->flush();
  2619.         $this->addFlash(
  2620.             'danger',
  2621.             'Cet utilisateur a été bien supprimé');
  2622.             return $this->redirectToRoute('admin.users');
  2623.     }
  2624.     #[Route('admin/refresh/utilisateurs/{id}'name'admin.refresh.users'methods:['GET','POST'])]
  2625.     public function refresh_users(
  2626.         $id,
  2627.         usersRepository $UR,
  2628.         EntityManagerInterface $entityManager,
  2629.     ): Response
  2630.     {
  2631.         // get EntityManager
  2632.         $select_user $UR->findOneBy(array('id' => $id));
  2633.         $statut $select_user->getStatut();
  2634.         // dd($select_user);
  2635.         $user $this->getUser();
  2636.         $actif "Actif";
  2637.         $inactif "Inactif";
  2638.         if($statut == "Actif"){
  2639.             $select_user->setStatut($inactif);
  2640.             $entityManager->flush();
  2641.             $this->addFlash(
  2642.                 'warning',
  2643.                 'Le compte de l\'utilisateur a été bien désactivé');
  2644.                 return $this->redirectToRoute('admin.users');
  2645.         }else{
  2646.             $select_user->setStatut($actif);
  2647.             $entityManager->flush();
  2648.             $this->addFlash(
  2649.                 'success',
  2650.                 'Le compte de l\'utilisateur a été bien résactivé');
  2651.                 return $this->redirectToRoute('admin.users');
  2652.         }
  2653.     }
  2654.     //------------------------------------------------------------------------------------
  2655.     #[Route('admin/contact'name'admin.contact'methods:['GET','POST'])]
  2656.     public function contact(
  2657.         Request $request
  2658.         ContactsRepository $contactRepository
  2659.         EntityManagerInterface $entityManager,
  2660.     ): Response
  2661.     {
  2662.         $contact = new Contacts();
  2663.         $user $this->getUser();
  2664.         $listcont $contactRepository->findAll();
  2665.         if (empty($user)) {
  2666.             return $this->redirectToRoute('login.connexion');
  2667.         }
  2668.         // Cas où aucun contact n'existe : création
  2669.         if (empty($listcont)) {
  2670.             $contact = new Contacts();
  2671.             $contactForm $this->createForm(ContactFormType::class, $contact);
  2672.             $contactForm->handleRequest($request);
  2673.             if ($contactForm->isSubmitted() && $contactForm->isValid()) {
  2674.                 $contact->setUsersId($user);
  2675.                 $entityManager->persist($contact);
  2676.                 $entityManager->flush();
  2677.                 $this->addFlash('success''Les informations ont été enregistrées avec succès.');
  2678.                 return $this->redirectToRoute('admin.contact');
  2679.             }
  2680.             return $this->render('admin/show/admin-contact.html.twig', [
  2681.                 'listcont' => [],
  2682.                 'contactForm' => $contactForm->createView(),
  2683.                 'editcontactForm' => null,
  2684.             ]);
  2685.         }  else {
  2686.             // Cas où un contact existe : édition
  2687.             $editcontact $listcont[0]; // On prend le premier (ou tu peux filtrer par utilisateur si nécessaire)
  2688.             $editcontactForm $this->createForm(EditContactFormType::class, $editcontact);
  2689.             $editcontactForm->handleRequest($request);
  2690.             if ($editcontactForm->isSubmitted() && $editcontactForm->isValid()) {
  2691.                 $editcontact->setUsersId($user);
  2692.                 $entityManager->flush();
  2693.                 $this->addFlash('success''Les informations ont été mises à jour avec succès.');
  2694.                 return $this->redirectToRoute('admin.contact');
  2695.             }
  2696.             return $this->render('admin/show/admin-contact.html.twig', [
  2697.                 'listcont' => $listcont,
  2698.                 'contactForm' => null,
  2699.                 'editcontactForm' => $editcontactForm->createView(),
  2700.             ]);
  2701.         }
  2702.     }
  2703.     #[Route('admin/edit/mot-de-passe/{id}'name'admin.edit.passe'methods:['GET','POST'])]
  2704.     public function edit_passe(
  2705.         $id,
  2706.         Request $request,
  2707.         UsersRepository $UR,
  2708.         UserPasswordHasherInterface $passwordHasher,
  2709.         EntityManagerInterface $entityManager
  2710.     ): Response
  2711.     {
  2712.         $infos $UR->find($id);
  2713.         // $user = new Users();
  2714.         $user $this->getUser();
  2715.         $role $user $user->getRole() : [];
  2716.         $editUserPassForm $this->createForm(EditPassFormType::class, $infos);
  2717.         $editUserPassForm->handleRequest($request);
  2718.         // dd($editUserProfilForm);
  2719.         
  2720.         if($user){
  2721.             if($infos != null){
  2722.                 if($editUserPassForm->isSubmitted()){ 
  2723.                     $userId $user->getId();
  2724.                     $plaintextPassword $editUserPassForm->get('password')->getData();
  2725.                     $hashedPassword $passwordHasher->hashPassword(
  2726.                         $user,
  2727.                         $plaintextPassword
  2728.                     );
  2729.                     $infos->setPassword($hashedPassword);
  2730.                     $entityManager->flush();
  2731.                     $this->addFlash('success','La modification a étét bien effectuée');
  2732.                 }
  2733.             }
  2734.         }else{
  2735.             return $this->redirectToRoute('login.connexion');
  2736.         }
  2737.         return $this->render('admin/edit/edit-admin-pass.html.twig', [
  2738.             'infos' => $infos,
  2739.             'editUserPassForm' => $editUserPassForm->createView(),
  2740.         ]);
  2741.     }
  2742.     
  2743.     
  2744.        //--------------------------------------------------------------------------------------
  2745.     #[Route('admin/top-management'name'admin.managements'methods:['GET','POST'])]
  2746.     public function management(
  2747.         Request $request
  2748.         SluggerInterface $slugger
  2749.         ManagementsRepository $managementRepository
  2750.         EntityManagerInterface $entityManager
  2751.     ): Response
  2752.     {
  2753.         $management = new Managements();
  2754.         $managements $managementRepository->findAll();
  2755.         $addmanagementForm $this->createForm(ManagementFormType::class, $management);
  2756.         $addmanagementForm->handleRequest($request);
  2757.         $user $this->getUser();
  2758.         
  2759.         if($user){
  2760.             if ($addmanagementForm->isSubmitted()) {
  2761.             // dd('OK');
  2762.                 $userId $user->getId();
  2763.                 $theme $addmanagementForm->get('theme')->getData();
  2764.                 $slug $slugger->slug($theme);
  2765.                 $ville $addmanagementForm->get('ville')->getData();
  2766.                 $prix $addmanagementForm->get('prix')->getData();
  2767.                 $devise $addmanagementForm->get('devise')->getData();
  2768.                 $texte $addmanagementForm->get('texte')->getData();
  2769.                 $debut $addmanagementForm->get('datedebut')->getData();
  2770.                 $fin $addmanagementForm->get('datefin')->getData();
  2771.                 
  2772.                 if(!$texte){
  2773.                     $description "...";
  2774.                 }else{
  2775.                     $description $addmanagementForm->get('texte')->getData();
  2776.                 }
  2777.                 $management $addmanagementForm->getData();
  2778.                 $imageFile $addmanagementForm->get('image')->getData();
  2779.                 if ($imageFile) {
  2780.                     $originalFilename pathinfo($imageFile->getClientOriginalName(), PATHINFO_FILENAME);
  2781.                     // this is needed to safely include the file name as part of the URL
  2782.                     $safeFilename $slugger->slug($originalFilename);
  2783.                     $newFilename $safeFilename.'-'.uniqid().'.'.$imageFile->guessExtension();
  2784.                     try {
  2785.                         $imageFile->move(
  2786.                             $this->getParameter('photo_management'),
  2787.                             $newFilename
  2788.                         );
  2789.                     } catch (FileException $e) {
  2790.                         // ... handle exception if something happens during file upload
  2791.                     }
  2792.                     $management->setImage($newFilename);
  2793.                 }else{
  2794.                     $management "no-file";
  2795.                 }
  2796.                 
  2797.                 $management->setTheme($theme);
  2798.                 $management->setSlug($slug);
  2799.                 $management->setVille($ville);
  2800.                 $management->setPrix($prix);
  2801.                 $management->setDevise($devise);
  2802.                 $management->setTexte($description);
  2803.                 $management->setDateDebut($debut);
  2804.                 $management->setDateFin($fin);
  2805.                 $management->setAdminsId($userId);
  2806.                 $entityManager->persist($management);
  2807.                 $entityManager->flush();
  2808.                 $this->addFlash(
  2809.                     'success',
  2810.                     'La rencontre a été bien enrégistrée');
  2811.                     return $this->redirectToRoute('admin.managements');
  2812.             }
  2813.         }else{
  2814.             return $this->redirectToRoute('login.connexion');
  2815.         }
  2816.         return $this->render('admin/show/admin-management.html.twig', [
  2817.             'managements' => $managements,
  2818.             'addmanagementForm' => $addmanagementForm->createView(),
  2819.         ]);
  2820.     }
  2821.     
  2822.     #[Route('admin/edit/top-management/{slug}'name'admin.edit.management'methods:['GET','POST'])]
  2823.     public function edit_managemente(
  2824.         $slug,
  2825.         Request $request,
  2826.         SluggerInterface $slugger
  2827.         EntityManagerInterface $entityManager,
  2828.         ManagementsRepository $managementRepository
  2829.     ): Response
  2830.     {
  2831.         $management = new Managements();
  2832.         $user $this->getUser();
  2833.         $infoman $managementRepository->findOneBy(array(
  2834.             'slug' => $slug
  2835.         ));
  2836.         $editmanagementForm $this->createForm(EditManagementFormType::class, $infoman);
  2837.         $editmanagementForm->handleRequest($request);
  2838.         if($user){
  2839.             if ($editmanagementForm->isSubmitted()) {
  2840.                 $userId $user->getId();
  2841.                 $theme $editmanagementForm->get('theme')->getData();
  2842.                 $slug $slugger->slug($theme);
  2843.                 $ville $editmanagementForm->get('ville')->getData();
  2844.                 $prix $editmanagementForm->get('prix')->getData();
  2845.                 $devise $editmanagementForm->get('devise')->getData();
  2846.                 $texte $editmanagementForm->get('texte')->getData();
  2847.                 $debut $editmanagementForm->get('datedebut')->getData();
  2848.                 $fin $editmanagementForm->get('datefin')->getData();
  2849.                 $imageFile $editmanagementForm->get('image')->getData();
  2850.                 if(!$texte){
  2851.                     $description "...";
  2852.                 }else{
  2853.                     $description $editmanagementForm->get('texte')->getData();
  2854.                 }
  2855.                 
  2856.                 if ($imageFile != null) {
  2857.                     $originalFilename pathinfo($imageFile->getClientOriginalName(), PATHINFO_FILENAME);
  2858.                     // this is needed to safely include the file name as part of the URL
  2859.                     $safeFilename $slugger->slug($originalFilename);
  2860.                     $newFilename $safeFilename.'-'.uniqid().'.'.$imageFile->guessExtension();
  2861.                     try {
  2862.                         $imageFile->move(
  2863.                             $this->getParameter('photo_management'),
  2864.                             $newFilename
  2865.                         );
  2866.                     } catch (FileException $e) {
  2867.                         // ... handle exception if something happens during file upload
  2868.                     }
  2869.                     $infoman->setImage($newFilename);
  2870.                 }
  2871.                 $infoman->setTheme($theme);
  2872.                 $infoman->setSlug($slug);
  2873.                 $infoman->setVille$ville);
  2874.                 $infoman->setPrix($prix);
  2875.                 $infoman->setDevise($devise);
  2876.                 $infoman->setTexte($description);
  2877.                 $infoman->setDateDebut($debut);
  2878.                 $infoman->setDateFin($fin);
  2879.                 $infoman->setAdminsId($userId);
  2880.                 $entityManager->flush();
  2881.                 $this->addFlash('success','La modification a été bien effectuée');
  2882.                 return $this->redirectToRoute('admin.managements');
  2883.            
  2884.             }
  2885.         }else{
  2886.             return $this->redirectToRoute('login.connexion');
  2887.         }
  2888.         return $this->render('admin/edit/edit-admin-management.html.twig', [
  2889.         'infoman' => $infoman,
  2890.         'editmanagementForm' => $editmanagementForm->createView(),
  2891.         ]);
  2892.     }  
  2893.     #-----------------SUPPERIMER UN ACTUALITE-----------------------
  2894.     #[Route('admin/del/top-management/{slug}'name'admin.del.management'methods:['GET'])]
  2895.     public function delete_management(
  2896.         $slug,
  2897.         ManagementsRepository $managenentRepository,
  2898.         EntityManagerInterface $entityManager
  2899.     ){
  2900.         $select_management $managenentRepository->findOneBy(array('slug' => $slug));
  2901.         $entityManager->remove($select_management);
  2902.         $entityManager->flush();
  2903.         $this->addFlash(
  2904.             'danger',
  2905.             'La rencontre a été bien supprimée');
  2906.         return $this->redirectToRoute('admin.managements');
  2907.     }
  2908.     #[Route('admin/avis-des-clients'name'admin.avis-des-clients'methods:['GET','POST'])]
  2909.     public function avis(
  2910.         Request $request
  2911.         AvisRepository $avisRepository
  2912.         EntityManagerInterface $entityManager,
  2913.     ): Response
  2914.     {
  2915.         $avis = new Avis();
  2916.         $Listavis $avisRepository->findAll();
  2917.         $user $this->getUser();
  2918.         $addavisForm $this->createForm(AvisFormType::class, $avis);
  2919.         if ($user) {           
  2920.             $addavisForm $this->createForm(AvisFormType::class, $avis);
  2921.             $addavisForm->handleRequest($request);
  2922.             if($addavisForm->isSubmitted() && $addavisForm->isValid()){  
  2923.                 $userId $user->getId();
  2924.                 $nom htmlspecialchars($addavisForm->get('nom')->getData());
  2925.                 $fonction htmlspecialchars($addavisForm->get('titre')->getData());
  2926.                 $note htmlspecialchars($addavisForm->get('note')->getData());
  2927.                 $statut htmlspecialchars($addavisForm->get('statut')->getData());
  2928.                 $commentaire $addavisForm->get('commentaire')->getData();
  2929.                 $avis->setNom($nom);
  2930.                 $avis->setTitre($fonction);
  2931.                 $avis->setNote($note);
  2932.                 $avis->setCommentaire($commentaire);
  2933.                 $avis->setStatut($statut);
  2934.                 $avis->setAdminsId($userId);
  2935.                 $entityManager->persist($avis);
  2936.                 $entityManager->flush();
  2937.                 $this->addFlash('success','Le commentaire à été bien enrégistrer');
  2938.             }
  2939.         }else{
  2940.             return $this->redirectToRoute('login.connexion');
  2941.         }
  2942.         return $this->render('admin/show/admin-avis-client.html.twig', [
  2943.             'liste' => $Listavis,
  2944.             'controller_name' => 'AdminController',
  2945.             'avisForm' => $addavisForm->createView(),
  2946.         ]);
  2947.     }
  2948.     #[Route('admin/edit/avis-des-clients/{id}'name'admin.edit.avis-des-clients'methods:['GET','POST'])]
  2949.     public function edit_avis(
  2950.         $id,
  2951.         Request $request
  2952.         AvisRepository $avisRepository
  2953.         EntityManagerInterface $entityManager,
  2954.     ): Response
  2955.     {
  2956.         $avis = new Avis();
  2957.         $comment $avisRepository->findOneBy(array('id' => $id));
  2958.         $editAvisForm $this->createForm(EditAvisFormType::class, $avis);
  2959.         $editAvisForm->handleRequest($request);
  2960.         $users $this->getUser();
  2961.         if ($users) {           
  2962.             if($editAvisForm->isSubmitted()){  
  2963.                 $userId $users->getId();
  2964.                 $nom htmlspecialchars($editAvisForm->get('nom')->getData());
  2965.                 $fonction htmlspecialchars($editAvisForm->get('titre')->getData());
  2966.                 $note htmlspecialchars($editAvisForm->get('note')->getData());
  2967.                 $statut htmlspecialchars($editAvisForm->get('statut')->getData());
  2968.                 $texte $editAvisForm->get('commentaire')->getData();
  2969.                 $comment->setNom($nom);
  2970.                 $comment->setTitre($fonction);
  2971.                 $comment->setNote($note);
  2972.                 $comment->setCommentaire($texte);
  2973.                 $avis->setStatut($statut);
  2974.                 $comment->setAdminsId($userId);
  2975.                 $entityManager->flush();
  2976.                 $this->addFlash('success','Le commentaire à été bien modifié');
  2977.                 return $this->redirectToRoute('admin.avis-des-clients');
  2978.             }
  2979.         }else{
  2980.             return $this->redirectToRoute('login.connexion');
  2981.         }
  2982.         return $this->render('admin/edit/edit-admin-avis.html.twig', [
  2983.             'infos' => $comment,
  2984.             'editAvisForm' => $editAvisForm->createView(),
  2985.         ]);
  2986.     }
  2987.     #[Route('admin/del/avis-des-clients/{id}'name'admin.del.avis-des-clients'methods:['GET'])]
  2988.     public function delete_avis(
  2989.         $id,
  2990.         AvisRepository $avisRepository,
  2991.         EntityManagerInterface $entityManager
  2992.     ){
  2993.         $select_avis $avisRepository->findOneBy(array('id' => $id));
  2994.         $entityManager->remove($select_avis);
  2995.         $entityManager->flush();
  2996.         $this->addFlash(
  2997.             'danger',
  2998.             'Le commentaire a été bien supprimé');
  2999.         return $this->redirectToRoute('admin.avis-des-clients');
  3000.     }
  3001.     
  3002.     
  3003.     
  3004.     
  3005.     
  3006.     
  3007.     
  3008. }