src/Controller/FrontController.php line 160

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Cv;
  4. use App\Entity\Post;
  5. use App\Form\CvType;
  6. use App\Entity\Agora;
  7. use App\Entity\Droit;
  8. use App\Entity\Agenda;
  9. use App\Form\PostType;
  10. use App\Entity\Domaine;
  11. use App\Form\AgoraType;
  12. use App\Form\DroitType;
  13. use App\Entity\Rubrique;
  14. use App\Entity\Actualite;
  15. use App\Entity\Categorie;
  16. use App\Entity\Sousrubrique;
  17. use App\Service\AgoraFilter;
  18. use App\Service\CodeManager;
  19. use App\Service\DroitFilter;
  20. use App\Service\SlugManager;
  21. use App\Entity\Configuration;
  22. use App\Form\AgoraFilterType;
  23. use App\Form\DroitFilterType;
  24. use App\Service\EmailManager;
  25. use App\Service\ArchiveFilter;
  26. use App\Form\ArchiveFilterType;
  27. use App\Service\ReferentFilter;
  28. use App\Form\ReferentFilterType;
  29. use App\Repository\CvRepository;
  30. use App\Service\ActualiteFilter;
  31. use App\Service\JuridiqueFilter;
  32. use App\Service\RubriqueManager;
  33. use App\Form\ActualiteFilterType;
  34. use App\Form\JuridiqueFilterType;
  35. use App\Service\ConferenceFilter;
  36. use App\Service\InitiativeFilter;
  37. use App\Form\ConferenceFilterType;
  38. use App\Form\InitiativeFilterType;
  39. use App\Repository\PostRepository;
  40. use App\Repository\AgoraRepository;
  41. use App\Repository\DroitRepository;
  42. use App\Repository\AgendaRepository;
  43. use App\Repository\ArchiveRepository;
  44. use App\Repository\DomaineRepository;
  45. use App\Repository\ReferentRepository;
  46. use App\Repository\RubriqueRepository;
  47. use App\Repository\ActualiteRepository;
  48. use App\Repository\CategorieRepository;
  49. use App\Repository\JuridiqueRepository;
  50. use App\Repository\ConferenceRepository;
  51. use App\Repository\InitiativeRepository;
  52. use Doctrine\ORM\EntityManagerInterface;
  53. use App\Repository\SousrubriqueRepository;
  54. use App\Repository\ConfigurationRepository;
  55. use App\Repository\SouscategorieRepository;
  56. use Knp\Component\Pager\PaginatorInterface;
  57. use Symfony\Component\HttpFoundation\Request;
  58. use Symfony\Component\HttpFoundation\Response;
  59. use Symfony\Component\Routing\Annotation\Route;
  60. use Symfony\Component\HttpFoundation\JsonResponse;
  61. use Symfony\Component\HttpFoundation\BinaryFileResponse;
  62. use Symfony\Component\HttpFoundation\Session\SessionInterface;
  63. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  64. class FrontController extends AbstractController
  65. {
  66.     private ConfigurationRepository $configurationRepository;
  67.     private RubriqueRepository $rubriqueRepository;
  68.     private JuridiqueRepository $juridiqueRepository;
  69.     private RubriqueManager $rubriqueManager;
  70.     private SousrubriqueRepository $sousrubriqueRepository;
  71.     private InitiativeRepository $initiativeRepository;
  72.     private ReferentRepository $referentRepository;
  73.     private ArchiveRepository $archiveRepository;
  74.     private ConferenceRepository $conferenceRepository;
  75.     private CategorieRepository $categorieRepository;
  76.     private SouscategorieRepository $souscategorieRepository;
  77.     private AgoraRepository $agoraRepository;
  78.     private PostRepository $postRepository;
  79.     private EntityManagerInterface $em;
  80.     private CodeManager $codeManager
  81.     private SlugManager $slugManager
  82.     private EmailManager $emailManager;
  83.     private CvRepository $cvRepository;
  84.     private DroitRepository $droitRepository;
  85.     private $fileUploadParameters;
  86.     private DomaineRepository $domaineRepository;
  87.     public function __construct(
  88.         ConfigurationRepository $configurationRepository,
  89.         RubriqueRepository $rubriqueRepository,
  90.         JuridiqueRepository $juridiqueRepository,
  91.         RubriqueManager $rubriqueManager,
  92.         SousrubriqueRepository $sousrubriqueRepository,
  93.         InitiativeRepository $initiativeRepository,
  94.         ReferentRepository $referentRepository,
  95.         ArchiveRepository $archiveRepository,
  96.         ConferenceRepository $conferenceRepository,
  97.         CategorieRepository $categorieRepository,
  98.         SouscategorieRepository $souscategorieRepository,
  99.         AgoraRepository $agoraRepository,
  100.         PostRepository $postRepository,
  101.         EntityManagerInterface $em,
  102.         CodeManager $codeManager
  103.         SlugManager $slugManager
  104.         EmailManager $emailManager,
  105.         CvRepository $cvRepository,
  106.         DroitRepository $droitRepository,
  107.         array $fileUploadParameters,
  108.         DomaineRepository $domaineRepository
  109.     )
  110.     {
  111.         $this->configurationRepository $configurationRepository;
  112.         $this->rubriqueRepository $rubriqueRepository;
  113.         $this->juridiqueRepository $juridiqueRepository;
  114.         $this->rubriqueManager $rubriqueManager;
  115.         $this->sousrubriqueRepository $sousrubriqueRepository;
  116.         $this->initiativeRepository $initiativeRepository;
  117.         $this->referentRepository $referentRepository;
  118.         $this->archiveRepository $archiveRepository;
  119.         $this->conferenceRepository $conferenceRepository;
  120.         $this->categorieRepository $categorieRepository;
  121.         $this->souscategorieRepository $souscategorieRepository;
  122.         $this->agoraRepository $agoraRepository;
  123.         $this->postRepository $postRepository;
  124.         $this->em $em;
  125.         $this->codeManager $codeManager;
  126.         $this->slugManager $slugManager;
  127.         $this->emailManager $emailManager;
  128.         $this->cvRepository $cvRepository;
  129.         $this->droitRepository $droitRepository;
  130.         $this->fileUploadParameters $fileUploadParameters;
  131.         $this->domaineRepository $domaineRepository;
  132.     }
  133.     public function getActualite(): Rubrique
  134.     {
  135.         return $this->rubriqueRepository->findOneBy(['uuid' => Rubrique::ACTUALITE]);
  136.     }
  137.     /**
  138.      * Récupère l'objet Configuration en bdd
  139.      *
  140.      * @return Configuration
  141.      */
  142.     public function getConfiguration(): Configuration
  143.     {
  144.         return $this->configurationRepository->findOneBy(['uuid' => Configuration::UNIQUE_UUID]);
  145.     }
  146.     /**
  147.      * @return Response
  148.      * ---------------------- PAGE PRINCIPALE 
  149.      * @Route("", name="home", methods={"GET","POST"})
  150.      */
  151.     public function index(ActualiteRepository $actualiteRepository,RubriqueRepository $rubriqueRepository): Response
  152.     {
  153.         $rubriques $rubriqueRepository->findRubriques($this->getActualite());
  154.         $actualite $actualiteRepository->findOneBy(['avant' => true]);
  155.         return $this->render('front/index.html.twig', [
  156.             'actualite' => $actualite,
  157.             'rubriques' => $rubriques
  158.         ]);
  159.     }
  160.     /**
  161.      * @return Response
  162.      * ---------------------- LES RUBRIQUES
  163.      * @Route("/rubrique/{slug}", name="rubriques", methods={"GET","POST"})
  164.      */
  165.     public function rubrique(Rubrique $rubriqueSousrubriqueRepository $sousrubriqueRepository): Response
  166.     {
  167.         if ($rubrique->isStatut()) {
  168.             $ssrubriques $sousrubriqueRepository->findSousrubriques($rubrique);
  169.             return $this->render('front/rubriques.html.twig', [
  170.                 'ssr' => $ssrubriques,
  171.                 'r' => $rubrique
  172.             ]);
  173.         } else {
  174.            throw $this->createNotFoundException();
  175.         }
  176.         
  177.     }
  178.     /**
  179.      * @return Response
  180.      * ---------------------- LES SOUS-RUBRIQUES
  181.      * @Route("/rubrique/{slug}/{slug2}", name="ssrubriques", methods={"GET","POST"})
  182.      */
  183.     public function ssrubrique(Rubrique $rubrique$slug2Request $requestPaginatorInterface $paginator): Response
  184.     {
  185.         $user $this->getUser();
  186.         $sousrubrique $this->sousrubriqueRepository->findOneBy(['slug' => $slug2]);
  187.         if (($sousrubrique == $this->rubriqueManager->getRubrique35() && $this->rubriqueManager->getRubrique35()->isStatut()) || ($rubrique->isStatut() && $sousrubrique->isStatut()) ) {
  188.             // Nous vous accompagnons
  189.             if ($sousrubrique == $this->rubriqueManager->getRubrique11()) {
  190.                  
  191.                 return $this->render('front/sousrubriques.html.twig', [
  192.                     'ssr' => $sousrubrique,
  193.                     'r' => $rubrique
  194.                 ]);
  195.             } 
  196.             
  197.             // SICARDI recueille vos compétences
  198.             elseif ($sousrubrique == $this->rubriqueManager->getRubrique12()) {
  199.                  
  200.                 return $this->render('front/sousrubriques.html.twig', [
  201.                     'ssr' => $sousrubrique,
  202.                     'r' => $rubrique
  203.                 ]);
  204.             } 
  205.             
  206.             
  207.             
  208.             // 14 - Les recruteurs s’intéressent à vous
  209.             elseif ($sousrubrique == $this->rubriqueManager->getRubrique14()) {
  210.                 $page $request->query->get('page',1);
  211.                 if(!is_numeric($page) OR $page OR is_float($page)){
  212.                     return $this->redirectToRoute('ssrubriques', ['slug' => $rubrique->getSlug(), 'slug2' => $sousrubrique->getSlug()], Response::HTTP_SEE_OTHER);
  213.                 }
  214.                 $recherche $request->get('recherche');
  215.                 $ordre $request->get('ordre');
  216.                 $droits $this->droitRepository->findByFilterPagination($recherche$ordre,true$page);
  217.                 $count count($droits['data']);
  218.                 if($request->get('ajax')){
  219.                     
  220.                     return new JsonResponse([
  221.                         'content' => $this->renderView('front/_ssr14_droits.html.twig', [
  222.                             'ssr' => $sousrubrique,
  223.                             'r' => $rubrique,
  224.                             'items' => $droits,
  225.                             'count' => $count,
  226.                             'page' => $page,
  227.                             
  228.                         ])
  229.                     ]);
  230.                 }
  231.                 $droit = new Droit();
  232.                 $form $this->createForm(DroitType::class, $droit);
  233.                 $form->handleRequest($request);
  234.                 if ($form->isSubmitted() && $form->isValid()) {
  235.                     // function supprimerPrefixe($lien) {
  236.                     //     $prefixes = array("http://", "https://");
  237.                     
  238.                     //     foreach ($prefixes as $prefixe) {
  239.                     //         if (strpos($lien, $prefixe) === 0) {
  240.                     //             $lien = substr($lien, strlen($prefixe));
  241.                     //             break;
  242.                     //         }
  243.                     //     }
  244.                     
  245.                     //     return $lien;
  246.                     // }
  247.                     
  248.                     // $lienSansPrefixe = supprimerPrefixe($droit->getLien());
  249.                     // $droit->setLien($lienSansPrefixe);
  250.                     $droit->setToken($this->codeManager->getCode());
  251.                     $slug $this->slugManager->getSlug($droit->getTitre());
  252.                     $droit->setSlug($droit->getToken() . '-' $slug);
  253.                     $droit->setCreatedAt(new \DateTimeImmutable('now'));
  254.                     $droit->setUser($user);
  255.                     $this->em->persist($droit);
  256.                     $this->em->flush();
  257.                     $subject 'Nouveau post dans ' $sousrubrique->getNom();
  258.                     $template 'new_droit.html.twig';
  259.                     $data = [
  260.                         'user' => $user,
  261.                     ];
  262.                     $this->emailManager->getSendMail($user$subject$template$data);
  263.                     $this->addFlash('success'sprintf('Le post <strong>%s</strong> a bien été enregistré et sera traité dans les plus brefs délais'$droit->getTitre()));
  264.         
  265.                     return $this->redirectToRoute('ssrubriques', ['slug' => $rubrique->getSlug(), 'slug2' => $sousrubrique->getSlug()], Response::HTTP_SEE_OTHER);
  266.                 }
  267.                 return $this->render('front/ssr14.html.twig', [
  268.                     'ssr' => $sousrubrique,
  269.                     'r' => $rubrique,
  270.                     'items' => $droits,
  271.                     'count' => $count,
  272.                     'form2' => $form->createView(),
  273.                     'page' => $page
  274.                     
  275.                 ]);
  276.             } 
  277.             
  278.             // 15 - Banque de CV
  279.             elseif ($sousrubrique == $this->rubriqueManager->getRubrique15()) {
  280.                 $user $this->getUser();
  281.                 $page $request->query->get('page',1);
  282.                 if(!is_numeric($page) OR $page OR is_float($page)){
  283.                     return $this->redirectToRoute('ssrubriques', ['slug' => $rubrique->getSlug(), 'slug2' => $sousrubrique->getSlug()], Response::HTTP_SEE_OTHER);
  284.                 }
  285.                 $recherche $request->get('recherche');
  286.                 $ordre $request->get('ordre');
  287.                 $cvs $this->cvRepository->findByFilterPagination($recherche$ordre,true$page$user);
  288.              
  289.                 $count count($cvs['data']);
  290.                 
  291.                 $cvsUser $this->cvRepository->findBy(['user' => $user]);
  292.                 if($request->get('ajax')){
  293.                     
  294.                     return new JsonResponse([
  295.                         'content' => $this->renderView('front/_ssr15_cv.html.twig', [
  296.                             'ssr' => $sousrubrique,
  297.                             'r' => $rubrique,
  298.                             'items' => $cvs,
  299.                             'count' => $count,
  300.                             'page' => $page,
  301.                             
  302.                         ])
  303.                     ]);
  304.                 }
  305.                 if ($cvsUser) {
  306.                     $cv $cvsUser[0];
  307.                     $exist true;
  308.                 } else 
  309.                 {
  310.                     $cv = new Cv();
  311.                     $exist false;
  312.                 }
  313.                 if ($exist) {
  314.                     $form $this->createForm(CvType::class, $cv, [
  315.                         'update' => true
  316.                     ]);
  317.                 } else {
  318.                     $form $this->createForm(CvType::class, $cv, [
  319.                         'add' => true
  320.                     ]);
  321.                 }
  322.                 
  323.                 
  324.                 $form->handleRequest($request);
  325.                 if ($form->isSubmitted() && $form->isValid()) {
  326.                     //dd($cv);
  327.                     // $parcoursArray = explode('\r\n', $cv->getParcours());
  328.                     // dd($parcoursArray);
  329.                     $imageFile $form->get('photo')->getData();
  330.                     if ($imageFile) {
  331.                         $nomImage date('YmdHis') . '-' uniqid() . '.' $imageFile->getClientOriginalExtension();
  332.                         $imageFile->move(
  333.                             $this->getParameter('photo'),
  334.                             $nomImage
  335.                         );
  336.                         
  337.                         if ($cv->getPhoto()) {
  338.                             unlink($this->getParameter('photo') . '/' $cv->getPhoto());
  339.                         }
  340.                         $cv->setPhoto($nomImage);
  341.                     }
  342.                     $cvFile $form->get('cv')->getData();
  343.                     if ($cvFile) {
  344.                         $nomImage date('YmdHis') . '-' uniqid() . '.' $cvFile->getClientOriginalExtension();
  345.                         $cvFile->move(
  346.                             $this->fileUploadParameters['base_path'].$this->fileUploadParameters['directories']['cv'],
  347.                             $nomImage
  348.                         );
  349.                         if ($cv->getCv()) {
  350.                             unlink($this->fileUploadParameters['base_path'].$this->fileUploadParameters['directories']['cv'].$cv->getCv());
  351.                         }
  352.                         $cv->setCv($nomImage);
  353.                     }
  354.                     
  355.                     if ($exist) {
  356.                         $slug $this->slugManager->getSlug($cv->getNom());
  357.                         $cv->setSlug($cv->getToken() . '-' $slug);
  358.                         $cv->setUpdatedAt(new \DateTime('now'));
  359.                         $cv->setStatut(false);
  360.                         $cv->setModerate(false);
  361.                         $this->em->flush();
  362.                     } else {
  363.                         $cv->setToken($this->codeManager->getCode());
  364.                         $slug $this->slugManager->getSlug($cv->getNom());
  365.                         $cv->setSlug($cv->getToken() . '-' $slug);
  366.                         $cv->setCreatedAt(new \DateTimeImmutable('now'));
  367.                         $cv->setUser($user);
  368.                         $this->em->persist($cv);
  369.                         $this->em->flush();
  370.                     }
  371.                     
  372.                     
  373.                     $subject 'Nouveau cv dans ' $sousrubrique->getNom();
  374.                     $template 'new_cv.html.twig';
  375.                     $data = [
  376.                         'user' => $user,
  377.                     ];
  378.                     $this->emailManager->getSendMail($user$subject$template$data);
  379.                     $this->addFlash('success''Votre CV a bien été enregistré et sera traité dans les plus brefs délais');
  380.         
  381.                     return $this->redirectToRoute('ssrubriques', ['slug' => $rubrique->getSlug(), 'slug2' => $sousrubrique->getSlug()], Response::HTTP_SEE_OTHER);
  382.                 }
  383.                 return $this->render('front/ssr15.html.twig', [
  384.                     'ssr' => $sousrubrique,
  385.                     'r' => $rubrique,
  386.                     'items' => $cvs,
  387.                     'form' => $form->createView(),
  388.                     'count' => $count,
  389.                     'cv' => $cv,
  390.                     'exist' => $exist
  391.                 ]);
  392.             } 
  393.             
  394.             // Demandez le programme
  395.             elseif ($sousrubrique == $this->rubriqueManager->getRubrique21()) {
  396.                  
  397.                 return $this->render('front/sousrubriques.html.twig', [
  398.                     'ssr' => $sousrubrique,
  399.                     'r' => $rubrique
  400.                 ]);
  401.             } 
  402.             
  403.             // Des conférences pour vous
  404.             elseif ($sousrubrique == $this->rubriqueManager->getRubrique22()) {
  405.                 $page $request->query->get('page',1);
  406.                 if(!is_numeric($page) OR $page OR is_float($page)){
  407.                     return $this->redirectToRoute('ssrubriques', ['slug' => $rubrique->getSlug(), 'slug2' => $sousrubrique->getSlug()], Response::HTTP_SEE_OTHER);
  408.                 }
  409.                 $recherche $request->get('recherche');
  410.                 $ordre $request->get('ordre');
  411.                 $droits $this->conferenceRepository->findByFilterPagination($recherche$ordre,true$page);
  412.                 $count count($droits['data']);
  413.                 if($request->get('ajax')){
  414.                     return new JsonResponse([
  415.                         'content' => $this->renderView('front/_ssr22_conferences.html.twig', [
  416.                             'ssr' => $sousrubrique,
  417.                             'r' => $rubrique,
  418.                             'items' => $droits,
  419.                             'count' => $count,
  420.                             'page' => $page,
  421.                             
  422.                         ])
  423.                     ]);
  424.                 }
  425.                 
  426.                 // $initiativeFilter = new InitiativeFilter();
  427.                 // $form = $this->createForm(InitiativeFilterType::class, $initiativeFilter);
  428.                 // $form->handleRequest($request);
  429.                 // $initiatives = $this->initiativeRepository->findByFilter($initiativeFilter, true);
  430.                 // $count = count($this->initiativeRepository->findByFilter($initiativeFilter, true));
  431.                 return $this->render('front/ssr22.html.twig', [
  432.                     'ssr' => $sousrubrique,
  433.                     'r' => $rubrique,
  434.                     'items' => $droits,
  435.                     'count' => $count,
  436.                     'page' => $page
  437.                 ]);
  438.                  
  439.                 // $conferenceFilter = new ConferenceFilter();
  440.                 // $form = $this->createForm(ConferenceFilterType::class, $conferenceFilter);
  441.                 // $form->handleRequest($request);
  442.                 // $conferences = $this->conferenceRepository->findByFilter($conferenceFilter, true);
  443.                 // $count = count($this->conferenceRepository->findByFilter($conferenceFilter, true));
  444.                 // return $this->render('front/ssr22.html.twig', [
  445.                 //     'ssr' => $sousrubrique,
  446.                 //     'r' => $rubrique,
  447.                 //     'conferences' => $conferences,
  448.                 //     'count' => $count,
  449.                 //     'form' => $form->createView()
  450.                 // ]);
  451.             
  452.             // Retrouvez nos sélections de formation
  453.             elseif ($sousrubrique == $this->rubriqueManager->getRubrique13()) {
  454.                 $page $request->query->get('page',1);
  455.                 if(!is_numeric($page) OR $page OR is_float($page)){
  456.                     return $this->redirectToRoute('ssrubriques', ['slug' => $rubrique->getSlug(), 'slug2' => $sousrubrique->getSlug()], Response::HTTP_SEE_OTHER);
  457.                 }
  458.                 $recherche $request->get('recherche');
  459.                 $ordre $request->get('ordre');
  460.                 $droits $this->archiveRepository->findByFilterPagination($recherche$ordre,true$page);
  461.                 $count count($droits['data']);
  462.                 if($request->get('ajax')){
  463.                     return new JsonResponse([
  464.                         'content' => $this->renderView('front/_ssr13_archives.html.twig', [
  465.                             'ssr' => $sousrubrique,
  466.                             'r' => $rubrique,
  467.                             'items' => $droits,
  468.                             'count' => $count,
  469.                             'page' => $page,
  470.                             
  471.                         ])
  472.                     ]);
  473.                 }
  474.                 return $this->render('front/ssr13.html.twig', [
  475.                     'ssr' => $sousrubrique,
  476.                     'r' => $rubrique,
  477.                     'items' => $droits,
  478.                     'count' => $count,
  479.                     'page' => $page
  480.                 ]);
  481.                 // $archiveFilter = new ArchiveFilter();
  482.                 // $form = $this->createForm(ArchiveFilterType::class, $archiveFilter);
  483.                 // $form->handleRequest($request);
  484.                 // $archives = $this->archiveRepository->findByFilter($archiveFilter, true);
  485.                 // $count = count($this->archiveRepository->findByFilter($archiveFilter, true));
  486.                 // return $this->render('front/ssr13.html.twig', [
  487.                 //     'ssr' => $sousrubrique,
  488.                 //     'r' => $rubrique,
  489.                 //     'items' => $archives,
  490.                 //     'count' => $count,
  491.                 //     'form' => $form->createView()
  492.                 // ]);
  493.             
  494.             
  495.             // Le législateur a pensé à vous
  496.             elseif ($sousrubrique == $this->rubriqueManager->getRubrique31()) {
  497.                 $page $request->query->get('page',1);
  498.                 if(!is_numeric($page) OR $page OR is_float($page)){
  499.                     return $this->redirectToRoute('ssrubriques', ['slug' => $rubrique->getSlug(), 'slug2' => $sousrubrique->getSlug()], Response::HTTP_SEE_OTHER);
  500.                 }
  501.                 $recherche $request->get('recherche');
  502.                 $ordre $request->get('ordre');
  503.                 $droits $this->juridiqueRepository->findByFilterPagination($recherche$ordre,true$page);
  504.                 $count count($droits['data']);
  505.                 if($request->get('ajax')){
  506.                     return new JsonResponse([
  507.                         'content' => $this->renderView('front/_ssr31_juridiques.html.twig', [
  508.                             'ssr' => $sousrubrique,
  509.                             'r' => $rubrique,
  510.                             'items' => $droits,
  511.                             'count' => $count,
  512.                             'page' => $page,
  513.                             
  514.                         ])
  515.                     ]);
  516.                 }
  517.                 // $juridiqueFilter = new JuridiqueFilter();
  518.                 // $form = $this->createForm(JuridiqueFilterType::class, $juridiqueFilter);
  519.                 // $form->handleRequest($request);
  520.                 // $juridiques = $this->juridiqueRepository->findByFilter($juridiqueFilter, true);
  521.                 // $count = count($this->juridiqueRepository->findByFilter($juridiqueFilter, true));
  522.                 return $this->render('front/ssr31.html.twig', [
  523.                     'ssr' => $sousrubrique,
  524.                     'r' => $rubrique,
  525.                     'items' => $droits,
  526.                     'count' => $count,
  527.                     'page' => $page
  528.                     //'form' => $form->createView()
  529.                 ]);
  530.             } 
  531.             
  532.             // Bercy s’occupe de vous
  533.             elseif ($sousrubrique == $this->rubriqueManager->getRubrique32()) {
  534.                 $page $request->query->get('page',1);
  535.                 if(!is_numeric($page) OR $page OR is_float($page)){
  536.                     return $this->redirectToRoute('ssrubriques', ['slug' => $rubrique->getSlug(), 'slug2' => $sousrubrique->getSlug()], Response::HTTP_SEE_OTHER);
  537.                 }
  538.                 $recherche $request->get('recherche');
  539.                 $ordre $request->get('ordre');
  540.                 $droits $this->initiativeRepository->findByFilterPagination($recherche$ordre,true$page);
  541.                 $count count($droits['data']);
  542.                 if($request->get('ajax')){
  543.                     return new JsonResponse([
  544.                         'content' => $this->renderView('front/_ssr32_initiatives.html.twig', [
  545.                             'ssr' => $sousrubrique,
  546.                             'r' => $rubrique,
  547.                             'items' => $droits,
  548.                             'count' => $count,
  549.                             'page' => $page,
  550.                             
  551.                         ])
  552.                     ]);
  553.                 }
  554.                 
  555.                 // $initiativeFilter = new InitiativeFilter();
  556.                 // $form = $this->createForm(InitiativeFilterType::class, $initiativeFilter);
  557.                 // $form->handleRequest($request);
  558.                 // $initiatives = $this->initiativeRepository->findByFilter($initiativeFilter, true);
  559.                 // $count = count($this->initiativeRepository->findByFilter($initiativeFilter, true));
  560.                 return $this->render('front/ssr32.html.twig', [
  561.                     'ssr' => $sousrubrique,
  562.                     'r' => $rubrique,
  563.                     'items' => $droits,
  564.                     'count' => $count,
  565.                     'page' => $page
  566.                 ]);
  567.             } 
  568.             
  569.             // 33 Les référents directionnels
  570.             elseif ($sousrubrique == $this->rubriqueManager->getRubrique33()) {
  571.                 $page $request->query->get('page',1);
  572.                 if(!is_numeric($page) OR $page OR is_float($page)){
  573.                     return $this->redirectToRoute('ssrubriques', ['slug' => $rubrique->getSlug(), 'slug2' => $sousrubrique->getSlug()], Response::HTTP_SEE_OTHER);
  574.                 }
  575.                 $recherche $request->get('recherche');
  576.                 $ordre $request->get('ordre');
  577.                 $droits $this->referentRepository->findByFilterPagination($recherche$ordre,true$page);
  578.                 $count count($droits['data']);
  579.                 if($request->get('ajax')){
  580.                     return new JsonResponse([
  581.                         'content' => $this->renderView('front/_ssr33_referents.html.twig', [
  582.                             'ssr' => $sousrubrique,
  583.                             'r' => $rubrique,
  584.                             'items' => $droits,
  585.                             'count' => $count,
  586.                             'page' => $page,
  587.                             
  588.                         ])
  589.                     ]);
  590.                 }
  591.                 
  592.                 return $this->render('front/ssr33.html.twig', [
  593.                     'ssr' => $sousrubrique,
  594.                     'r' => $rubrique,
  595.                     'items' => $droits,
  596.                     'count' => $count,
  597.                     'page' => $page,
  598.                 ]);
  599.             } 
  600.             
  601.             // --34-- Votre boîtes à astuces
  602.             elseif ($sousrubrique == $this->rubriqueManager->getRubrique34()) {
  603.                 
  604.                 $page $request->query->get('page',1);
  605.                 if(!is_numeric($page) OR $page OR is_float($page)){
  606.                     return $this->redirectToRoute('ssrubriques', ['slug' => $rubrique->getSlug(), 'slug2' => $sousrubrique->getSlug()], Response::HTTP_SEE_OTHER);
  607.                 }
  608.                 $recherche $request->get('recherche');
  609.                 $ordre $request->get('ordre');
  610.                 $posts $this->postRepository->findByFilterPagination($recherche$ordre,true$page);
  611.                 $count count($posts['data']);
  612.                 if($request->get('ajax')){
  613.                     return new JsonResponse([
  614.                         'content' => $this->renderView('front/_ssr34_post.html.twig', [
  615.                             'ssr' => $sousrubrique,
  616.                             'r' => $rubrique,
  617.                             'items' => $posts,
  618.                             'count' => $count,
  619.                             'page' => $page
  620.                             
  621.                         ])
  622.                     ]);
  623.                 }
  624.                 $post = new Post();
  625.                 $form $this->createForm(PostType::class, $post);
  626.                 $form->handleRequest($request);
  627.                 if ($form->isSubmitted() && $form->isValid()) {
  628.                     $uploadFile $form->get('fichier')->getData();
  629.     
  630.     
  631.                     if ($uploadFile) {
  632.     
  633.                         $mimeType explode('/'$uploadFile->getClientMimeType());
  634.     
  635.                         $ext $mimeType[1];
  636.                         if ($mimeType[1] == 'vnd.openxmlformats-officedocument.wordprocessingml.document') {
  637.                             $ext 'docx';
  638.                         }
  639.                         if ($mimeType[1] == 'vnd.openxmlformats-officedocument.spreadsheetml.sheet') {
  640.                             $ext 'xlsx';
  641.                         }
  642.              
  643.                         $nomImage date('YmdHis') . '-' uniqid() . '.' $ext;
  644.     
  645.                         $uploadFile->move(
  646.                             $this->fileUploadParameters['base_path'].$this->fileUploadParameters['directories']['post'],
  647.                             $nomImage
  648.                         );
  649.     
  650.                         $post->setFichier($nomImage);
  651.                         $post->setMime($mimeType[0]);
  652.     
  653.                         
  654.               
  655.                         $post->setExt($ext);
  656.                     }
  657.     
  658.     
  659.     
  660.     
  661.                     $post->setToken($this->codeManager->getCode());
  662.                     $slug $this->slugManager->getSlug($post->getTitre());
  663.                     $post->setSlug($post->getToken() . '-' $slug);
  664.                     $post->setCreatedAt(new \DateTimeImmutable('now'));
  665.                     $post->setUser($user);
  666.                     $this->em->persist($post);
  667.                     $this->em->flush();
  668.     
  669.                     $subject 'Nouveau post dans ' $sousrubrique->getNom();
  670.                     $template 'new_post.html.twig';
  671.                     $data = [
  672.                         'user' => $user,
  673.                     ];
  674.                     $this->emailManager->getSendMail($user$subject$template$data);
  675.     
  676.                     $this->addFlash('success'sprintf('Le post <strong>%s</strong> a bien été enregistré et sera traité dans les plus brefs délais'$post->getTitre()));
  677.         
  678.                     return $this->redirectToRoute('ssrubriques', ['slug' => $rubrique->getSlug(), 'slug2' => $sousrubrique->getSlug()], Response::HTTP_SEE_OTHER);
  679.                 }
  680.                 return $this->render('front/ssr34.html.twig', [
  681.                     'ssr' => $sousrubrique,
  682.                     'r' => $rubrique,
  683.                     'items' => $posts,
  684.                     'count' => $count,
  685.                     'form2' => $form->createView(),
  686.                     'page' => $page
  687.                 ]);
  688.             } 
  689.             
  690.             // --35-- Le carrefour des compétences
  691.             elseif ($sousrubrique == $this->rubriqueManager->getRubrique35()) {
  692.                  
  693.                 $categories $this->categorieRepository->findby(['statut' => true],['listorder' => 'ASC']);
  694.                 return $this->render('front/ssr35.html.twig', [
  695.                     'ssr' => $sousrubrique,
  696.                     'r' => $rubrique,
  697.                     'categories' => $categories
  698.                 ]);
  699.             } 
  700.             // --36-- Mentorat
  701.             elseif ($sousrubrique == $this->rubriqueManager->getRubrique36()) {
  702.                  
  703.                 return $this->render('front/sousrubriques.html.twig', [
  704.                     'ssr' => $sousrubrique,
  705.                     'r' => $rubrique
  706.                 ]);
  707.             } 
  708.             
  709.             // --41-- Les RH à votre service
  710.             elseif ($sousrubrique == $this->rubriqueManager->getRubrique41()) {
  711.                  
  712.                 return $this->render('front/sousrubriques.html.twig', [
  713.                     'ssr' => $sousrubrique,
  714.                     'r' => $rubrique
  715.                 ]);
  716.             } 
  717.             
  718.             // --42-- Bien au travail
  719.             elseif ($sousrubrique == $this->rubriqueManager->getRubrique42()) {
  720.                  
  721.                 return $this->render('front/sousrubriques.html.twig', [
  722.                     'ssr' => $sousrubrique,
  723.                     'r' => $rubrique
  724.                 ]);
  725.             } 
  726.             
  727.             // --43-- Aidez vos proches
  728.             elseif ($sousrubrique == $this->rubriqueManager->getRubrique43()) {
  729.                  
  730.                 return $this->render('front/sousrubriques.html.twig', [
  731.                     'ssr' => $sousrubrique,
  732.                     'r' => $rubrique
  733.                 ]);
  734.             } 
  735.             
  736.             // --44-- Préparez-vous à la retraite
  737.             elseif ($sousrubrique == $this->rubriqueManager->getRubrique44()) {
  738.                  
  739.                 return $this->render('front/sousrubriques.html.twig', [
  740.                     'ssr' => $sousrubrique,
  741.                     'r' => $rubrique
  742.                 ]);
  743.             } 
  744.             
  745.             
  746.         } else {
  747.             throw $this->createNotFoundException();
  748.         }
  749.     }
  750.     /**
  751.      * @return Response
  752.      * ---------------------- CATEGORIE AGORA
  753.      * @Route("/CPT/rubrique/{slug}/{slug2}/{slug3}", name="agora_categorie", methods={"GET","POST"})
  754.      */
  755.     public function agora_categorie($slug$slug2$slug3Request $request): Response
  756.     {
  757.         $categorie $this->categorieRepository->findOneBy(['slug' => $slug3]);
  758.         $rubrique $this->rubriqueRepository->findOneBy(['slug' => $slug]);
  759.         $sousrubrique $this->sousrubriqueRepository->findOneBy(['slug' => $slug2]);
  760.         if (($sousrubrique == $this->rubriqueManager->getRubrique35() && $this->rubriqueManager->getRubrique35()->isStatut()) || ($rubrique->isStatut() && $sousrubrique->isStatut()) && $categorie->isStatut()) {
  761.             // $souscategories =  $this->souscategorieRepository->findby(['statut' => true],['listorder' => 'ASC']);
  762.             // $array = [];
  763.             // foreach ($souscategories as $key => $ssc) {
  764.             //     $array[$key]['ssc'] = $ssc;
  765.             //     $agoras = $this->agoraRepository->findBy(['categorie' => $categorie, 'souscategorie' => $ssc, 'statut' => true]);
  766.             //     $array[$key]['agoras'] = $agoras;
  767.             //     if ($agoras) {
  768.             //         $array[$key]['statut'] = true;
  769.             //     } else {
  770.             //         $array[$key]['statut'] = false;
  771.             //     }
  772.                 
  773.             // }
  774.             // $agoraFilter = new AgoraFilter();
  775.             // //dd($agoraFilter);
  776.             // $recup = [];
  777.             // foreach ($array as $key => $value) {
  778.             //     if ($value['statut']) {
  779.             //         $recup[] = $value;
  780.             //     }
  781.             // }
  782.             // //dd($recup[0]);
  783.             // if ($recup) {
  784.             //     $agoraFilter->setSouscategorie($recup[0]['ssc']);
  785.             // }
  786.             // $form = $this->createForm(AgoraFilterType::class, $agoraFilter);
  787.             // $form->handleRequest($request);
  788.             // $agoras = $this->agoraRepository->findByFilter($agoraFilter, true, $categorie);
  789.             // $count = count($this->agoraRepository->findByFilter($agoraFilter, true, $categorie));
  790.             // $h2 = '';
  791.             // if ($agoraFilter->getSouscategorie()) {
  792.             //     $agoraFilter->getSouscategorie()->getNom();
  793.             // }
  794.             
  795.             // //dd($array);
  796.             // return $this->render('front/ssr35c.html.twig', [
  797.             // 'categorie' => $categorie,
  798.             // 'r' => $rubrique,
  799.             // 'ssr' => $sousrubrique,
  800.             // 'array' => $array,
  801.             // 'agoras' => $agoras,
  802.             // 'count' => $count,
  803.             // 'form' => $form->createView(),
  804.             // 'h2' => $h2
  805.             // ]);
  806.                 $user $this->getUser();
  807.                 $page $request->query->get('page',1);
  808.                 if(!is_numeric($page) OR $page OR is_float($page)){
  809.                     return $this->redirectToRoute('agora_categorie', ['slug' => $rubrique->getSlug(), 'slug2' => $sousrubrique->getSlug(), 'slug3' => $categorie->getSlug()], Response::HTTP_SEE_OTHER);
  810.                 }
  811.                 $recherche $request->get('recherche');
  812.                 $ordre $request->get('ordre');
  813.                 $agoras $this->agoraRepository->findByFilterPagination($recherche$ordre,true$page$categorie);
  814.                 $count count($agoras['data']);
  815.                 if($request->get('ajax')){
  816.                     return new JsonResponse([
  817.                         'content' => $this->renderView('front/_ssr35_agora.html.twig', [
  818.                             'categorie' => $categorie,
  819.                             'ssr' => $sousrubrique,
  820.                             'r' => $rubrique,
  821.                             'items' => $agoras,
  822.                             'count' => $count,
  823.                             'page' => $page
  824.                             
  825.                         ])
  826.                     ]);
  827.                 }
  828.                 if ($categorie->isEntite()) {
  829.                     $entite true;
  830.                 } else {
  831.                     $entite false;
  832.                 }
  833.                 
  834.                 $agora = new Agora();
  835.                 $form $this->createForm(AgoraType::class, $agora, [
  836.                     'entite' => $entite
  837.                 ]);
  838.                 $form->handleRequest($request);
  839.                 if ($form->isSubmitted() && $form->isValid()) {
  840.                     $uploadFile $form->get('fichier')->getData();
  841.     
  842.     
  843.                     if ($uploadFile) {
  844.     
  845.                         $mimeType explode('/'$uploadFile->getClientMimeType());
  846.     
  847.                         $ext $mimeType[1];
  848.                         if ($mimeType[1] == 'vnd.openxmlformats-officedocument.wordprocessingml.document') {
  849.                             $ext 'docx';
  850.                         }
  851.                         if ($mimeType[1] == 'vnd.openxmlformats-officedocument.spreadsheetml.sheet') {
  852.                             $ext 'xlsx';
  853.                         }
  854.              
  855.                         $nomImage date('YmdHis') . '-' uniqid() . '.' $ext;
  856.     
  857.                         $uploadFile->move(
  858.                             $this->fileUploadParameters['base_path'].$this->fileUploadParameters['directories']['post'],
  859.                             $nomImage
  860.                         );
  861.     
  862.                         $agora->setFichier($nomImage);
  863.                         $agora->setMime($mimeType[0]);
  864.     
  865.                         
  866.               
  867.                         $agora->setExt($ext);
  868.                     }
  869.     
  870.     
  871.     
  872.     
  873.                     $agora->setToken($this->codeManager->getCode());
  874.                     $slug $this->slugManager->getSlug($agora->getTitre());
  875.                     $agora->setSlug($agora->getToken() . '-' $slug);
  876.                     $agora->setCreatedAt(new \DateTimeImmutable('now'));
  877.                     $agora->setUser($user);
  878.                     $this->em->persist($agora);
  879.                     $this->em->flush();
  880.     
  881.                     $subject 'Nouveau post dans ' $sousrubrique->getNom();
  882.                     $template 'new_post.html.twig';
  883.                     $data = [
  884.                         'user' => $user,
  885.                     ];
  886.                     $this->emailManager->getSendMail($user$subject$template$data);
  887.     
  888.                     $this->addFlash('success'sprintf('Le post <strong>%s</strong> a bien été enregistré et sera traité dans les plus brefs délais'$agora->getTitre()));
  889.         
  890.                     return $this->redirectToRoute('ssrubriques', ['slug' => $rubrique->getSlug(), 'slug2' => $sousrubrique->getSlug()], Response::HTTP_SEE_OTHER);
  891.                 }
  892.                 return $this->render('front/ssr35c.html.twig', [
  893.                     'categorie' => $categorie,
  894.                     'ssr' => $sousrubrique,
  895.                     'r' => $rubrique,
  896.                     'items' => $agoras,
  897.                     'count' => $count,
  898.                     'form2' => $form->createView(),
  899.                     'page' => $page
  900.                 ]);
  901.         } else {
  902.             throw $this->createNotFoundException();
  903.         }
  904.     }
  905.     /**
  906.      * @return Response
  907.      * ---------------------- AJOUTER AGORA
  908.      * @Route("/rubrique/{slug}/{slug2}/{slug3}/ajouter", name="agora_new", methods={"GET", "POST"})
  909.      */
  910.     public function agora_new(Rubrique $rubrique$slug2$slug3Request $request): Response
  911.     {
  912.         $sousrubrique $this->sousrubriqueRepository->findOneBy(['slug' => $slug2]);
  913.         $categorie $this->categorieRepository->findOneBy(['slug' => $slug3]);
  914.         if (($sousrubrique == $this->rubriqueManager->getRubrique35() && $this->rubriqueManager->getRubrique35()->isStatut()) || ($rubrique->isStatut() && $sousrubrique->isStatut()) && $categorie->isStatut() &&  $this->getUser()) {
  915.             $user $this->getUser();
  916.             $agora = new Agora();
  917.             $form $this->createForm(AgoraType::class, $agora);
  918.             $form->handleRequest($request);
  919.             if ($form->isSubmitted() && $form->isValid()) {
  920.                 $agora->setToken($this->codeManager->getCode());
  921.                 $slug $this->slugManager->getSlug($agora->getNom());
  922.                 $agora->setSlug($agora->getToken() . '-' $slug);
  923.                 $agora->setCreatedAt(new \DateTimeImmutable('now'));
  924.                 $agora->setCategorie($categorie);
  925.                 $agora->setUser($user);
  926.                 $this->em->persist($agora);
  927.                 $this->em->flush();
  928.                 $subject 'Nouveau post dans ' $sousrubrique->getNom();
  929.                 $template 'new_agora.html.twig';
  930.                 $data = [
  931.                     'user' => $user,
  932.                 ];
  933.                 $this->emailManager->getSendMail($user$subject$template$data);
  934.                 $this->addFlash('success'sprintf('Le post <strong>%s</strong> a bien été enregistré et sera traité dans les plus brefs délais'$agora->getNom()));
  935.     
  936.                 return $this->redirectToRoute('agora_categorie', ['slug1' => $rubrique->getSlug(), 'slug2' => $sousrubrique->getSlug(), 'slug' => $categorie->getSlug()], Response::HTTP_SEE_OTHER);
  937.             }
  938.             return $this->render('front/ssr35a.html.twig', [
  939.                 'form' => $form->createView(),
  940.                 'r' => $rubrique,
  941.                 'ssr' => $sousrubrique,
  942.                 'categorie' => $categorie,
  943.             ]);
  944.         } else {
  945.            throw $this->createNotFoundException();
  946.         }
  947.         
  948.     }
  949.     /**
  950.      * @return Response
  951.      * ---------------------- DOMAINE POST
  952.      * @Route("/DMN/rubrique/{slug1}/{slug2}/{slug}", name="post_domaine", methods={"GET","POST"})
  953.      */
  954.     public function post_domaine($slug1$slug2Domaine $domaineRequest $request): Response
  955.     {
  956.         $rubrique $this->rubriqueRepository->findOneBy(['slug' => $slug1]);
  957.         $sousrubrique $this->sousrubriqueRepository->findOneBy(['slug' => $slug2]);
  958.         if ($rubrique->isStatut() && $sousrubrique->isStatut() && $domaine->isStatut()) {
  959.             $posts $this->postRepository->findBy(['statut' => true'domaine' => $domaine], ['validedAt' => 'DESC']);
  960.             
  961.             //dd($array);
  962.             return $this->render('front/ssr34d.html.twig', [
  963.                 'posts' => $posts,
  964.                 'r' => $rubrique,
  965.                 'ssr' => $sousrubrique,
  966.                 'domaine' => $domaine,
  967.             ]);
  968.         } else {
  969.             throw $this->createNotFoundException();
  970.         }
  971.     }
  972.     /**
  973.      * @return Response
  974.      * ---------------------- AJOUTER POST
  975.      * @Route("/PST/rubrique/{slug}/{slug2}/{slug3}/ajouter", name="post_new", methods={"GET", "POST"})
  976.      */
  977.     public function post_new(Rubrique $rubrique$slug2$slug3Request $request): Response
  978.     {
  979.         $sousrubrique $this->sousrubriqueRepository->findOneBy(['slug' => $slug2]);
  980.         $domaine $this->domaineRepository->findOneBy(['slug' => $slug3]);
  981.         if (($rubrique->isStatut() && $sousrubrique->isStatut() && $domaine->isStatut()) &&  $this->getUser()) {
  982.             $user $this->getUser();
  983.             $post = new Post();
  984.             $form $this->createForm(PostType::class, $post);
  985.             $form->handleRequest($request);
  986.             if ($form->isSubmitted() && $form->isValid()) {
  987.                 $uploadFile $form->get('fichier')->getData();
  988.                 if ($uploadFile) {
  989.                     $mimeType explode('/'$uploadFile->getClientMimeType());
  990.                     $ext $mimeType[1];
  991.                     if ($mimeType[1] == 'vnd.openxmlformats-officedocument.wordprocessingml.document') {
  992.                         $ext 'docx';
  993.                     }
  994.                     if ($mimeType[1] == 'vnd.openxmlformats-officedocument.spreadsheetml.sheet') {
  995.                         $ext 'xlsx';
  996.                     }
  997.          
  998.                     $nomImage date('YmdHis') . '-' uniqid() . '.' $ext;
  999.                     $uploadFile->move(
  1000.                         $this->fileUploadParameters['base_path'].$this->fileUploadParameters['directories']['post'],
  1001.                         $nomImage
  1002.                     );
  1003.                     $post->setFichier($nomImage);
  1004.                     $post->setMime($mimeType[0]);
  1005.                     
  1006.           
  1007.                     $post->setExt($ext);
  1008.                 }
  1009.                 $post->setToken($this->codeManager->getCode());
  1010.                 $slug $this->slugManager->getSlug($post->getTitre());
  1011.                 $post->setSlug($post->getToken() . '-' $slug);
  1012.                 $post->setCreatedAt(new \DateTimeImmutable('now'));
  1013.                 $post->setUser($user);
  1014.                 //$post->setDomaine($domaine);
  1015.                 $this->em->persist($post);
  1016.                 $this->em->flush();
  1017.                 $subject 'Nouveau post dans ' $sousrubrique->getNom();
  1018.                 $template 'new_post.html.twig';
  1019.                 $data = [
  1020.                     'user' => $user,
  1021.                 ];
  1022.                 $this->emailManager->getSendMail($user$subject$template$data);
  1023.                 $this->addFlash('success'sprintf('Le post <strong>%s</strong> a bien été enregistré et sera traité dans les plus brefs délais'$post->getTitre()));
  1024.     
  1025.                 return $this->redirectToRoute('post_domaine', ['slug1' => $rubrique->getSlug(), 'slug2' => $sousrubrique->getSlug(), 'slug' => $domaine->getSlug()], Response::HTTP_SEE_OTHER);
  1026.             }
  1027.             return $this->render('front/ssr34a.html.twig', [
  1028.                 'form' => $form->createView(),
  1029.                 'r' => $rubrique,
  1030.                 'ssr' => $sousrubrique,
  1031.                 'domaine' => $domaine
  1032.             ]);
  1033.         } else {
  1034.            throw $this->createNotFoundException();
  1035.         }
  1036.         
  1037.     }
  1038.     /**
  1039.      * @return Response
  1040.      * ---------------------- AJOUTER RECRUTEUR
  1041.      * @Route("/RCT/rubrique/{slug}/{slug2}/ajouter", name="droit_new", methods={"GET", "POST"})
  1042.      */
  1043.     public function droit_new(Rubrique $rubrique$slug2Request $request): Response
  1044.     {
  1045.         $sousrubrique $this->sousrubriqueRepository->findOneBy(['slug' => $slug2]);
  1046.         if (($rubrique->isStatut() && $sousrubrique->isStatut()) &&  $this->getUser()) {
  1047.             $user $this->getUser();
  1048.             $droit = new Droit();
  1049.             $form $this->createForm(DroitType::class, $droit);
  1050.             $form->handleRequest($request);
  1051.             if ($form->isSubmitted() && $form->isValid()) {
  1052.                 $droit->setToken($this->codeManager->getCode());
  1053.                 $slug $this->slugManager->getSlug($droit->getTitre());
  1054.                 $droit->setSlug($droit->getToken() . '-' $slug);
  1055.                 $droit->setCreatedAt(new \DateTimeImmutable('now'));
  1056.                 $droit->setUser($user);
  1057.                 $this->em->persist($droit);
  1058.                 $this->em->flush();
  1059.                 $subject 'Nouveau post dans ' $sousrubrique->getNom();
  1060.                 $template 'new_droit.html.twig';
  1061.                 $data = [
  1062.                     'user' => $user,
  1063.                 ];
  1064.                 $this->emailManager->getSendMail($user$subject$template$data);
  1065.                 $this->addFlash('success'sprintf('Le post <strong>%s</strong> a bien été enregistré et sera traité dans les plus brefs délais'$droit->getTitre()));
  1066.     
  1067.                 return $this->redirectToRoute('ssrubriques', ['slug' => $rubrique->getSlug(), 'slug2' => $sousrubrique->getSlug()], Response::HTTP_SEE_OTHER);
  1068.             }
  1069.             return $this->render('front/ssr14a.html.twig', [
  1070.                 'form' => $form->createView(),
  1071.                 'r' => $rubrique,
  1072.                 'ssr' => $sousrubrique,
  1073.             ]);
  1074.         } else {
  1075.            throw $this->createNotFoundException();
  1076.         }
  1077.         
  1078.     }
  1079.     /**
  1080.      * @return Response
  1081.      * ---------------------- AJOUTER CV
  1082.      * @Route("/CVN/rubrique/{slug}/{slug2}/ajouter", name="cv_new", methods={"GET", "POST"})
  1083.      */
  1084.     public function cv_new(Rubrique $rubrique$slug2Request $request): Response
  1085.     {
  1086.         $sousrubrique $this->sousrubriqueRepository->findOneBy(['slug' => $slug2]);
  1087.         if (($rubrique->isStatut() && $sousrubrique->isStatut()) &&  $this->getUser()) {
  1088.             $user $this->getUser();
  1089.             $cv = new Cv();
  1090.             $form $this->createForm(CvType::class, $cv, [
  1091.                 'add' => true
  1092.             ]);
  1093.             $form->handleRequest($request);
  1094.             if ($form->isSubmitted() && $form->isValid()) {
  1095.                 //dd($cv);
  1096.                 // $parcoursArray = explode('\r\n', $cv->getParcours());
  1097.                 // dd($parcoursArray);
  1098.                 $imageFile $form->get('photo')->getData();
  1099.                 if ($imageFile) {
  1100.                     $nomImage date('YmdHis') . '-' uniqid() . '.' $imageFile->getClientOriginalExtension();
  1101.                     $imageFile->move(
  1102.                         $this->getParameter('photo'),
  1103.                         $nomImage
  1104.                     );
  1105.                     $cv->setPhoto($nomImage);
  1106.                 }
  1107.                 $cvFile $form->get('cv')->getData();
  1108.                 if ($cvFile) {
  1109.                     $nomImage date('YmdHis') . '-' uniqid() . '.' $cvFile->getClientOriginalExtension();
  1110.                     $cvFile->move(
  1111.                         $this->fileUploadParameters['base_path'].$this->fileUploadParameters['directories']['cv'],
  1112.                         $nomImage
  1113.                     );
  1114.                     $cv->setCv($nomImage);
  1115.                 }
  1116.                 $cv->setToken($this->codeManager->getCode());
  1117.                 $slug $this->slugManager->getSlug($cv->getNom());
  1118.                 $cv->setSlug($cv->getToken() . '-' $slug);
  1119.                 $cv->setCreatedAt(new \DateTimeImmutable('now'));
  1120.                 $cv->setUser($user);
  1121.                 $this->em->persist($cv);
  1122.                 $this->em->flush();
  1123.                 $subject 'Nouveau cv dans ' $sousrubrique->getNom();
  1124.                 $template 'new_cv.html.twig';
  1125.                 $data = [
  1126.                     'user' => $user,
  1127.                 ];
  1128.                 $this->emailManager->getSendMail($user$subject$template$data);
  1129.                 $this->addFlash('success''Le CV a bien été enregistré et sera traité dans les plus brefs délais');
  1130.     
  1131.                 return $this->redirectToRoute('ssrubriques', ['slug' => $rubrique->getSlug(), 'slug2' => $sousrubrique->getSlug()], Response::HTTP_SEE_OTHER);
  1132.             }
  1133.             return $this->render('front/ssr15a.html.twig', [
  1134.                 'form' => $form->createView(),
  1135.                 'r' => $rubrique,
  1136.                 'ssr' => $sousrubrique,
  1137.             ]);
  1138.         } else {
  1139.            throw $this->createNotFoundException();
  1140.         }
  1141.         
  1142.     }
  1143.     /**
  1144.      * @return Response
  1145.      * ---------------------- FICHE RECRUTEMENT
  1146.      * @Route("/RCF/rubrique/{slug1}/{slug2}/{slug}", name="droit_fiche", methods={"GET","POST"})
  1147.      */
  1148.     public function droit_fiche($slug1$slug2Droit $droit): Response
  1149.     {
  1150.         $rubrique $this->rubriqueRepository->findOneBy(['slug' => $slug1]);
  1151.         $sousrubrique $this->sousrubriqueRepository->findOneBy(['slug' => $slug2]);
  1152.         if ($rubrique->isStatut() && $sousrubrique->isStatut() && $droit->isStatut()) {
  1153.           
  1154.             //dd($array);
  1155.             return $this->render('front/ssr14f.html.twig', [
  1156.                 'r' => $rubrique,
  1157.                 'ssr' => $sousrubrique,
  1158.                 'droit' => $droit,
  1159.             ]);
  1160.         } else {
  1161.             throw $this->createNotFoundException();
  1162.         }
  1163.     }
  1164.     /**
  1165.      * @return Response
  1166.      * ---------------------- FICHE CV
  1167.      * @Route("/CVF/rubrique/{slug1}/{slug2}/{slug}", name="cv_fiche", methods={"GET","POST"})
  1168.      */
  1169.     public function cv_fiche($slug1$slug2CV $droit): Response
  1170.     {
  1171.         $rubrique $this->rubriqueRepository->findOneBy(['slug' => $slug1]);
  1172.         $sousrubrique $this->sousrubriqueRepository->findOneBy(['slug' => $slug2]);
  1173.         if ($rubrique->isStatut() && $sousrubrique->isStatut() && $droit->isStatut()) {
  1174.           
  1175.             //dd($array);
  1176.             return $this->render('front/ssr15f.html.twig', [
  1177.                 'r' => $rubrique,
  1178.                 'ssr' => $sousrubrique,
  1179.                 'cv' => $droit,
  1180.             ]);
  1181.         } else {
  1182.             throw $this->createNotFoundException();
  1183.         }
  1184.     }
  1185.     /**
  1186.      * @return Response
  1187.      * ---------------------- FICHE ASTUCE
  1188.      * @Route("/BAA/rubrique/{slug1}/{slug2}/{slug}", name="post_fiche", methods={"GET","POST"})
  1189.      */
  1190.     public function post_fiche($slug1$slug2Post $post): Response
  1191.     {
  1192.         $rubrique $this->rubriqueRepository->findOneBy(['slug' => $slug1]);
  1193.         $sousrubrique $this->sousrubriqueRepository->findOneBy(['slug' => $slug2]);
  1194.         if ($rubrique->isStatut() && $sousrubrique->isStatut() && $post->isStatut()) {
  1195.           
  1196.             //dd($array);
  1197.             return $this->render('front/ssr34f.html.twig', [
  1198.                 'r' => $rubrique,
  1199.                 'ssr' => $sousrubrique,
  1200.                 'post' => $post,
  1201.             ]);
  1202.         } else {
  1203.             throw $this->createNotFoundException();
  1204.         }
  1205.     }
  1206.     /**
  1207.      * @return Response
  1208.      * ---------------------- FICHE ASTUCE
  1209.      * @Route("/AGR/rubrique/{slug1}/{slug2}/{slug}", name="agora_fiche", methods={"GET","POST"})
  1210.      */
  1211.     public function agora_fiche($slug1$slug2Agora $agora): Response
  1212.     {
  1213.         $rubrique $this->rubriqueRepository->findOneBy(['slug' => $slug1]);
  1214.         $sousrubrique $this->sousrubriqueRepository->findOneBy(['slug' => $slug2]);
  1215.         if ($rubrique->isStatut() && $sousrubrique->isStatut() && $agora->isStatut()) {
  1216.           
  1217.             //dd($array);
  1218.             return $this->render('front/ssr35f.html.twig', [
  1219.                 'r' => $rubrique,
  1220.                 'ssr' => $sousrubrique,
  1221.                 'post' => $agora,
  1222.             ]);
  1223.         } else {
  1224.             throw $this->createNotFoundException();
  1225.         }
  1226.     }
  1227.     // /**
  1228.     //  * @Route("/TA/rubrique/{slug}/{slug2}/post/ajouter", name="boiteAstuceNew", methods={"GET", "POST"})
  1229.     //  */
  1230.     // public function boiteAstuceNew(Rubrique $rubrique, $slug2, Request $request): Response
  1231.     // {
  1232.     //     $sousrubrique = $this->sousrubriqueRepository->findOneBy(['slug' => $slug2]);
  1233.     //     if ($rubrique->isStatut() && $sousrubrique->isStatut() && $this->getUser()) {
  1234.     //         $user = $this->getUser();
  1235.     //         $post = new Post();
  1236.     //         $form = $this->createForm(PostType::class, $post);
  1237.     //         $form->handleRequest($request);
  1238.     //         if ($form->isSubmitted() && $form->isValid()) {
  1239.     //             $uploadFile = $form->get('fichier')->getData();
  1240.     //             if ($uploadFile) {
  1241.     //                 $mimeType = explode('/', $uploadFile->getClientMimeType());
  1242.          
  1243.     //                 $nomImage = date('YmdHis') . '-' . uniqid() . '.' . $uploadFile->getClientOriginalExtension();
  1244.     //                 $uploadFile->move(
  1245.     //                     $this->getParameter('post'),
  1246.     //                     $nomImage
  1247.     //                 );
  1248.     //                 $post->setFichier($nomImage);
  1249.     //                 $post->setMime($mimeType[0]);
  1250.     //                 $post->setExt($mimeType[1]);
  1251.     //             }
  1252.     //             $post->setToken($this->codeManager->getCode());
  1253.     //             $slug = $this->slugManager->getSlug($post->getTitre());
  1254.     //             $post->setSlug($post->getToken() . '-' . $slug);
  1255.     //             $post->setCreatedAt(new \DateTimeImmutable('now'));
  1256.     //             $post->setUser($user);
  1257.     //             $this->em->persist($post);
  1258.     //             $this->em->flush();
  1259.     //             $subject = 'Nouveau post dans ';
  1260.     //             $template = 'new_post.html.twig';
  1261.     //             $data = [
  1262.     //                 'user' => $user,
  1263.     //             ];
  1264.     //             $this->emailManager->getSendMail($user, $subject, $template, $data);
  1265.     //             $this->addFlash('success', sprintf('Le post <strong>%s</strong> a bien été enregistré et sera traité dans les plus brefs délais', $post->getTitre()));
  1266.     
  1267.     //             return $this->redirectToRoute('trucsAstuces', [], Response::HTTP_SEE_OTHER);
  1268.     //         }
  1269.     //         return $this->render('partage/trucsAstucesNew.html.twig', [
  1270.     //             'form' => $form->createView()
  1271.     //         ]);
  1272.     //     } else {
  1273.     //        throw $this->createNotFoundException();
  1274.     //     }
  1275.         
  1276.     // }
  1277.     /**
  1278.      * @Route("/ACS/{rubrique}", name="editorial", methods={"GET", "POST"})
  1279.      */
  1280.     public function autresActualites(ActualiteRepository $actualiteRepositoryRequest $request): Response
  1281.     {
  1282.         $page $request->query->get('page',1);
  1283.         if(!is_numeric($page) OR $page OR is_float($page)){
  1284.             return $this->redirectToRoute('editorial', ['rubrique' => $this->getActualite()], Response::HTTP_SEE_OTHER);
  1285.         }
  1286.         $recherche $request->get('recherche');
  1287.         $ordre $request->get('ordre');
  1288.         $droits $actualiteRepository->findByFilterPagination($recherche$ordre,true$page);
  1289.         $count count($droits['data']);
  1290.         if($request->get('ajax')){
  1291.             return new JsonResponse([
  1292.                 'content' => $this->renderView('front/_actualite_data.html.twig', [
  1293.                     'droits' => $droits,
  1294.                     'page' => $page,
  1295.                     
  1296.                 ])
  1297.             ]);
  1298.         }
  1299.         // $actualites = $actualiteRepository->findBy(['avant' => false, 'statut' => true] , ['createdAt' => 'DESC']);
  1300.         //$actualites = $actualiteRepository->findByFilter();
  1301.         // $actualiteFilter = new ActualiteFilter();
  1302.         // $form = $this->createForm(ActualiteFilterType::class, $actualiteFilter);
  1303.         // $form->handleRequest($request);
  1304.         // $actualites = $actualiteRepository->findByFilterFo($actualiteFilter, true);
  1305.         // $count = count($actualiteRepository->findByFilterFo($actualiteFilter, true));
  1306.         return $this->render('front/actualites.html.twig', [
  1307.             'droits' => $droits,
  1308.             'page' => $page,
  1309.             // 'count' => $count,
  1310.             // 'form' => $form->createView()
  1311.         ]);
  1312.     }
  1313.     /**
  1314.      * @Route("/ACT/{rubrique}/{slug}", name="actualite", methods={"GET", "POST"})
  1315.      */
  1316.     public function actualite(Actualite $actualite): Response
  1317.     {
  1318.         if ($actualite->isStatut()) {
  1319.             
  1320.             return $this->render('front/actualiteFiche.html.twig', [
  1321.                 'actualite' => $actualite
  1322.             ]);
  1323.         } else {
  1324.            // return $this->redirectToRoute('editorial');
  1325.            throw $this->createNotFoundException();
  1326.         }
  1327.         
  1328.         
  1329.     }
  1330.     /**
  1331.      * @return Response
  1332.      * @Route("/agenda", name="agenda", methods={"GET","POST"})
  1333.      */
  1334.     public function agendaAgendaRepository $agendaRepository,Request $requestSessionInterface $session): Response
  1335.     {
  1336.         $array = [];
  1337.         $year $request->get('annee');
  1338.         $month $request->get('mois');
  1339.         $moisAnneeActuel date('Y-m');
  1340.         $dateActuelle = new \DateTime($moisAnneeActuel);
  1341.         $agendaBefore $this->getConfiguration()->getAgendaBefore();
  1342.         $agendaNext $this->getConfiguration()->getAgendaNext();
  1343.         
  1344.         
  1345.         $dateActuellePlusUn = new \DateTime($moisAnneeActuel);
  1346.         $dateActuellePlusUn->add(new \DateInterval("P1M"));
  1347.         $dateFinale $dateActuellePlusUn->add(new \DateInterval("P" $agendaNext ."M"));
  1348.         $periodeFuture = new \DatePeriod($dateActuelle, new \DateInterval('P1M'), $dateFinale);
  1349.         foreach ($periodeFuture as $date) {
  1350.             $array[$date->format('Y-m')] = $date->format('Y-m');
  1351.         }
  1352.         $dateActuelleMoins = new \DateTime($moisAnneeActuel);
  1353.         $dateDebut $dateActuelleMoins->modify('-' $agendaBefore .' months');
  1354.         $periodePassee = new \DatePeriod($dateDebut, new \DateInterval('P1M'), $dateActuelle);
  1355.         foreach ($periodePassee as $date) {
  1356.             $array[$date->format('Y-m')] = $date->format('Y-m');
  1357.         }
  1358.         ksort($array);
  1359.         $search array_search($year '-' $month$array);
  1360.         if(!$search)
  1361.         {
  1362.             return $this->redirectToRoute('agenda', ['year' => date('Y'), 'month' => date('m')]);
  1363.         }
  1364.         
  1365.         $yearsArray = [];
  1366.         $m = [];
  1367.         foreach($array as $data)
  1368.         {
  1369.             $arrayDataDate explode('-'$data);
  1370.             $yearsArray[$arrayDataDate[0]] = $arrayDataDate[0];
  1371.             $m[$arrayDataDate[0]][] = $arrayDataDate[1];
  1372.         }
  1373.         $moisValue = [
  1374.             '01' => 'Janvier',
  1375.             '02' => 'Février',
  1376.             '03' => 'Mars',
  1377.             '04' => 'Avril',
  1378.             '05' => 'Mai',
  1379.             '06' => 'Juin',
  1380.             '07' => 'Juillet',
  1381.             '08' => 'Août',
  1382.             '09' => 'Septembre',
  1383.             '10' => 'Octobre',
  1384.             '11' => 'Novembre',
  1385.             '12' => 'Décembre',
  1386.         ];
  1387.         $moisLettres = [];
  1388.         foreach ($m[$year] as $key => $y) {
  1389.             $moisLettres[$y] = [
  1390.                 'nom' => $moisValue[$y]
  1391.             ];
  1392.         }
  1393.         $moisActuelLettre $moisValue[$month];
  1394.         $annees = []; 
  1395.         foreach($yearsArray as $y)
  1396.         {
  1397.             $annees[] = [
  1398.                 'mois' => $m[$y][0],
  1399.                 'annee' => $y
  1400.             ];
  1401.             
  1402.         }
  1403.         $agendaBefore = (strlen($this->getConfiguration()->getAgendaBefore()) == ) ? '0' $this->getConfiguration()->getAgendaBefore() : $this->getConfiguration()->getAgendaBefore() ;
  1404.         $agendaNext = (strlen($this->getConfiguration()->getAgendaNext()) == ) ? '0' $this->getConfiguration()->getAgendaNext() : $this->getConfiguration()->getAgendaNext() ;
  1405.    
  1406.         foreach ($moisLettres as $moisNumero => $value) {
  1407.             $searchEvents $agendaRepository->findAgendaYearMonth($year '-' $moisNumero);
  1408.             if($year '-' $moisNumero == $year '-' $month){
  1409.                 $evenements $searchEvents;
  1410.             }
  1411.             if ($searchEvents) {
  1412.                 $moisLettres[$moisNumero]['evenements'] = true;
  1413.             } else {
  1414.                 $moisLettres[$moisNumero]['evenements'] = false;
  1415.             }
  1416.             
  1417.         }
  1418.        //dd($moisLettres);
  1419.        
  1420.         $previousRoute $month;
  1421.         $session->set('previous_route'$previousRoute);
  1422.         if($request->get('ajax')){
  1423.             return new JsonResponse([
  1424.                 'content' => $this->renderView('front/_agenda_card.html.twig', [
  1425.                     'evenements' => $evenements,
  1426.                     'years' => $annees,
  1427.                     'moisAll' => $moisLettres,
  1428.                     'yearActuel' => $year,
  1429.                     'moisActuel' => $month,
  1430.                     'moisActuelLettre' => $moisActuelLettre
  1431.                     
  1432.                 ])
  1433.             ]);
  1434.         }
  1435.         return $this->render('front/agenda.html.twig', [
  1436.             'evenements' => $evenements,
  1437.             'years' => $annees,
  1438.             'moisAll' => $moisLettres,
  1439.             'yearActuel' => $year,
  1440.             'moisActuel' => $month,
  1441.             'moisActuelLettre' => $moisActuelLettre
  1442.         ]);
  1443.     }
  1444.     /**
  1445.      * @return Response
  1446.      * @Route("/agenda/evenement/{slug}", name="agendaFiche", methods={"GET","POST"})
  1447.      */
  1448.     public function agendaFiche(Agenda $agenda,SessionInterface $session): Response
  1449.     {
  1450.         if ($agenda->isStatut()) {
  1451.             $previousRoute $session->get('previous_route');
  1452.             
  1453.             return $this->render('front/agendaFiche.html.twig', [
  1454.                 'agenda' => $agenda,
  1455.                 'previousRoute' => $previousRoute
  1456.             ]);
  1457.         } else {
  1458.            // return $this->redirectToRoute('editorial');
  1459.            throw $this->createNotFoundException();
  1460.         }
  1461.     }
  1462.     /**
  1463.      * @Route("/css_route", name="css_route")
  1464.      */
  1465.     public function css_route(): Response
  1466.     {
  1467.         $configuration $this->getConfiguration();
  1468.         $response $this->render('front/style.css.twig', [
  1469.             'configuration' => $configuration,
  1470.         ]);
  1471.         $response->headers->set('Content-Type''text/css');
  1472.         return $response;
  1473.     }
  1474.     /**
  1475.      * @Route("/document/post/{uuid}", name="post_pdf", methods={"GET"})
  1476.      */
  1477.     public function pdf(Post $post)
  1478.     {
  1479.         $file_location =  $post->getFichier();
  1480.         header('Content-type: application/pdf');
  1481.         header('Content-Disposition: inline; filename="' $file_location '"');
  1482.         header('Content-Transfer-Encoding: binary');
  1483.         header('Content-Length: ' filesize($file_location));
  1484.         header('Accept-Ranges: bytes');
  1485.         @readfile($file_location);
  1486.     }
  1487.     /**
  1488.      * @Route("/recherche", name="recherche", methods={"GET","POST"})
  1489.      */
  1490.     public function recherche(Request $requestRubriqueManager $rubriqueManagerCvRepository $cvRepositoryDroitRepository $droitRepositoryConferenceRepository $conferenceRepositoryArchiveRepository $archiveRepositoryAgoraRepository $agoraRepositoryInitiativeRepository $initiativeRepositoryPostRepository $postRepositoryJuridiqueRepository $juridiqueRepositoryReferentRepository $referentRepositorySousrubriqueRepository $sousrubriqueRepositoryActualiteRepository $actualiteRepositoryRubriqueRepository $rubriqueRepositoryAgendaRepository $agendaRepository)
  1491.     {
  1492.         $user $this->getUser();
  1493.         $search $request->request->get('search');
  1494.         
  1495.         $ssrs = [
  1496.             '7c3d0193-e062-4bbd-98ef-93202982cfe0' => 'Droit',
  1497.             '98f7-9e0b13ac14c6-19c3ff45-b508-4c8b' => 'Cv',
  1498.             'b70a9193-ef1b-4a28-aaba-c6ed700632f4' => 'Conference',
  1499.             '81c8caaa-2726-4622-8c1a-e945717587bb' => 'Archive',
  1500.             '99a2f476-604c-454b-8084-ce0feb3a9082' => 'Agora',
  1501.             '01c36a9b-7f8e-43a0-8281-3c19ebbfa068' => 'Initiative',
  1502.             '8203411d-3347-4d98-b5d3-a096d317967d' => 'Post',
  1503.             '5564cf0a-37c3-41b0-98a8-ccfed0c70406' => 'Juridique',
  1504.             '1626835c-f328-4aec-b6a3-9f7cb39a4b18' => 'Referent'
  1505.         ];
  1506.         $array = [];
  1507.         if ($search) {
  1508.             // // mobilité professionnelle
  1509.             // if ($rubriqueManager->getRubrique1()->isStatut()) {
  1510.             //     foreach ($rubriqueManager->getRubrique1()->getSousrubriques() as $ssr) {
  1511.             //         dump($ssr);
  1512.             //         if ($ssr->isStatut()) {
  1513.             //             $value = $ssrs[$ssr->getUuid()];
  1514.             //             switch ($value) {
  1515.             //                 case 'Droit':
  1516.             //                     $droits = $droitRepository->findSearch($search);
  1517.             //                     if ($droits) {
  1518.             //                         $array['droit'] = $droits;
  1519.             //                     }
  1520.             //                     break;
  1521.             //                 case 'Cv':
  1522.             //                     $cvs = $cvRepository->findSearch($search, $user);
  1523.             //                     if ($cvs) {
  1524.             //                         $array['cv'] = $cvs;
  1525.             //                     }
  1526.             //                     break;
  1527.             //                 case 'Conference':
  1528.             //                     $conferences = $conferenceRepository->findSearch($search);
  1529.             //                     if ($conferences) {
  1530.             //                         $array['conference'] = $conferences;
  1531.             //                     }
  1532.             //                     break;
  1533.             //                 case 'Archive':
  1534.             //                     $archives = $archiveRepository->findSearch($search);
  1535.             //                     if ($archives) {
  1536.             //                         $array['archive'] = $archives;
  1537.             //                     }
  1538.             //                     break;
  1539.             //                 case 'Agora':
  1540.             //                     $agoras = $agoraRepository->findSearch($search);
  1541.             //                     if ($agoras) {
  1542.             //                         $array['agora'] = $agoras;
  1543.             //                     }
  1544.             //                     break;
  1545.             //                 case 'Initiative':
  1546.             //                     $initiatives = $initiativeRepository->findSearch($search);
  1547.             //                     if ($initiatives) {
  1548.             //                         $array['initiative'] = $initiatives;
  1549.             //                     }
  1550.             //                     break;
  1551.             //                 case 'Post':
  1552.             //                     $posts = $postRepository->findSearch($search);
  1553.             //                     if ($posts) {
  1554.             //                         $array['post'] = $posts;
  1555.             //                     }
  1556.             //                     break;
  1557.             //                 case 'Juridique':
  1558.             //                     $juridiques = $juridiqueRepository->findSearch($search);
  1559.             //                     if ($juridiques) {
  1560.             //                         $array['juridique'] = $juridiques;
  1561.             //                     }
  1562.             //                     break;
  1563.             //                 case 'Referent':
  1564.             //                     $referents = $referentRepository->findSearch($search);
  1565.             //                     if ($referents) {
  1566.             //                         $array['referent'] = $referents;
  1567.             //                     }
  1568.             //                     break;
  1569.                             
  1570.             //                 default:
  1571.             //                     # code...
  1572.             //                     break;
  1573.             //             }
  1574.             //         }
  1575.             //     }
  1576.                 
  1577.             // }
  1578.             // // mobilité professionnelle
  1579.             // if ($rubriqueManager->getRubrique2()->isStatut()) {
  1580.             //     foreach ($rubriqueManager->getRubrique1()->getSousrubriques() as $ssr) {
  1581.             //         dump($ssr);
  1582.             //         if ($ssr->isStatut()) {
  1583.             //             $value = $ssrs[$ssr->getUuid()];
  1584.             //             switch ($value) {
  1585.             //                 case 'Droit':
  1586.             //                     $droits = $droitRepository->findSearch($search);
  1587.             //                     if ($droits) {
  1588.             //                         $array['droit'] = $droits;
  1589.             //                     }
  1590.             //                     break;
  1591.             //                 case 'Cv':
  1592.             //                     $cvs = $cvRepository->findSearch($search, $user);
  1593.             //                     if ($cvs) {
  1594.             //                         $array['cv'] = $cvs;
  1595.             //                     }
  1596.             //                     break;
  1597.             //                 case 'Conference':
  1598.             //                     $conferences = $conferenceRepository->findSearch($search);
  1599.             //                     if ($conferences) {
  1600.             //                         $array['conference'] = $conferences;
  1601.             //                     }
  1602.             //                     break;
  1603.             //                 case 'Archive':
  1604.             //                     $archives = $archiveRepository->findSearch($search);
  1605.             //                     if ($archives) {
  1606.             //                         $array['archive'] = $archives;
  1607.             //                     }
  1608.             //                     break;
  1609.             //                 case 'Agora':
  1610.             //                     $agoras = $agoraRepository->findSearch($search);
  1611.             //                     if ($agoras) {
  1612.             //                         $array['agora'] = $agoras;
  1613.             //                     }
  1614.             //                     break;
  1615.             //                 case 'Initiative':
  1616.             //                     $initiatives = $initiativeRepository->findSearch($search);
  1617.             //                     if ($initiatives) {
  1618.             //                         $array['initiative'] = $initiatives;
  1619.             //                     }
  1620.             //                     break;
  1621.             //                 case 'Post':
  1622.             //                     $posts = $postRepository->findSearch($search);
  1623.             //                     if ($posts) {
  1624.             //                         $array['post'] = $posts;
  1625.             //                     }
  1626.             //                     break;
  1627.             //                 case 'Juridique':
  1628.             //                     $juridiques = $juridiqueRepository->findSearch($search);
  1629.             //                     if ($juridiques) {
  1630.             //                         $array['juridique'] = $juridiques;
  1631.             //                     }
  1632.             //                     break;
  1633.             //                 case 'Referent':
  1634.             //                     $referents = $referentRepository->findSearch($search);
  1635.             //                     if ($referents) {
  1636.             //                         $array['referent'] = $referents;
  1637.             //                     }
  1638.             //                     break;
  1639.                             
  1640.             //                 default:
  1641.             //                     # code...
  1642.             //                     break;
  1643.             //             }
  1644.             //         }
  1645.             //     }
  1646.                 
  1647.             // }
  1648.             // // mobilité professionnelle
  1649.             // if ($rubriqueManager->getRubrique3()->isStatut()) {
  1650.             //     foreach ($rubriqueManager->getRubrique1()->getSousrubriques() as $ssr) {
  1651.             //         dump($ssr);
  1652.             //         if ($ssr->isStatut()) {
  1653.             //             $value = $ssrs[$ssr->getUuid()];
  1654.             //             switch ($value) {
  1655.             //                 case 'Droit':
  1656.             //                     $droits = $droitRepository->findSearch($search);
  1657.             //                     if ($droits) {
  1658.             //                         $array['droit'] = $droits;
  1659.             //                     }
  1660.             //                     break;
  1661.             //                 case 'Cv':
  1662.             //                     $cvs = $cvRepository->findSearch($search, $user);
  1663.             //                     if ($cvs) {
  1664.             //                         $array['cv'] = $cvs;
  1665.             //                     }
  1666.             //                     break;
  1667.             //                 case 'Conference':
  1668.             //                     $conferences = $conferenceRepository->findSearch($search);
  1669.             //                     if ($conferences) {
  1670.             //                         $array['conference'] = $conferences;
  1671.             //                     }
  1672.             //                     break;
  1673.             //                 case 'Archive':
  1674.             //                     $archives = $archiveRepository->findSearch($search);
  1675.             //                     if ($archives) {
  1676.             //                         $array['archive'] = $archives;
  1677.             //                     }
  1678.             //                     break;
  1679.             //                 case 'Agora':
  1680.             //                     $agoras = $agoraRepository->findSearch($search);
  1681.             //                     if ($agoras) {
  1682.             //                         $array['agora'] = $agoras;
  1683.             //                     }
  1684.             //                     break;
  1685.             //                 case 'Initiative':
  1686.             //                     $initiatives = $initiativeRepository->findSearch($search);
  1687.             //                     if ($initiatives) {
  1688.             //                         $array['initiative'] = $initiatives;
  1689.             //                     }
  1690.             //                     break;
  1691.             //                 case 'Post':
  1692.             //                     $posts = $postRepository->findSearch($search);
  1693.             //                     if ($posts) {
  1694.             //                         $array['post'] = $posts;
  1695.             //                     }
  1696.             //                     break;
  1697.             //                 case 'Juridique':
  1698.             //                     $juridiques = $juridiqueRepository->findSearch($search);
  1699.             //                     if ($juridiques) {
  1700.             //                         $array['juridique'] = $juridiques;
  1701.             //                     }
  1702.             //                     break;
  1703.             //                 case 'Referent':
  1704.             //                     $referents = $referentRepository->findSearch($search);
  1705.             //                     if ($referents) {
  1706.             //                         $array['referent'] = $referents;
  1707.             //                     }
  1708.             //                     break;
  1709.                             
  1710.             //                 default:
  1711.             //                     # code...
  1712.             //                     break;
  1713.             //             }
  1714.             //         }
  1715.             //     }
  1716.                 
  1717.             // }
  1718.             // // mobilité professionnelle
  1719.             // if ($rubriqueManager->getRubrique4()->isStatut()) {
  1720.             //     foreach ($rubriqueManager->getRubrique1()->getSousrubriques() as $ssr) {
  1721.             //         dump($ssr);
  1722.             //         if ($ssr->isStatut()) {
  1723.             //             $value = $ssrs[$ssr->getUuid()];
  1724.             //             switch ($value) {
  1725.             //                 case 'Droit':
  1726.             //                     $droits = $droitRepository->findSearch($search);
  1727.             //                     if ($droits) {
  1728.             //                         $array['droit'] = $droits;
  1729.             //                     }
  1730.             //                     break;
  1731.             //                 case 'Cv':
  1732.             //                     $cvs = $cvRepository->findSearch($search, $user);
  1733.             //                     if ($cvs) {
  1734.             //                         $array['cv'] = $cvs;
  1735.             //                     }
  1736.             //                     break;
  1737.             //                 case 'Conference':
  1738.             //                     $conferences = $conferenceRepository->findSearch($search);
  1739.             //                     if ($conferences) {
  1740.             //                         $array['conference'] = $conferences;
  1741.             //                     }
  1742.             //                     break;
  1743.             //                 case 'Archive':
  1744.             //                     $archives = $archiveRepository->findSearch($search);
  1745.             //                     if ($archives) {
  1746.             //                         $array['archive'] = $archives;
  1747.             //                     }
  1748.             //                     break;
  1749.             //                 case 'Agora':
  1750.             //                     $agoras = $agoraRepository->findSearch($search);
  1751.             //                     if ($agoras) {
  1752.             //                         $array['agora'] = $agoras;
  1753.             //                     }
  1754.             //                     break;
  1755.             //                 case 'Initiative':
  1756.             //                     $initiatives = $initiativeRepository->findSearch($search);
  1757.             //                     if ($initiatives) {
  1758.             //                         $array['initiative'] = $initiatives;
  1759.             //                     }
  1760.             //                     break;
  1761.             //                 case 'Post':
  1762.             //                     $posts = $postRepository->findSearch($search);
  1763.             //                     if ($posts) {
  1764.             //                         $array['post'] = $posts;
  1765.             //                     }
  1766.             //                     break;
  1767.             //                 case 'Juridique':
  1768.             //                     $juridiques = $juridiqueRepository->findSearch($search);
  1769.             //                     if ($juridiques) {
  1770.             //                         $array['juridique'] = $juridiques;
  1771.             //                     }
  1772.             //                     break;
  1773.             //                 case 'Referent':
  1774.             //                     $referents = $referentRepository->findSearch($search);
  1775.             //                     if ($referents) {
  1776.             //                         $array['referent'] = $referents;
  1777.             //                     }
  1778.             //                     break;
  1779.                             
  1780.             //                 default:
  1781.             //                     # code...
  1782.             //                     break;
  1783.             //             }
  1784.             //         }
  1785.             //     }
  1786.                 
  1787.             // }
  1788.             // if ($rubriqueManager->getRubrique4()->isStatut()) {
  1789.                 foreach ($ssrs as $k => $uuid) {
  1790.                     $ssr $sousrubriqueRepository->findOneBy(['uuid' => $k]);
  1791.                     //dd($ssr);
  1792.                     if ($ssr->isStatut()) {
  1793.                         $value $ssrs[$ssr->getUuid()];
  1794.                         switch ($value) {
  1795.                             case 'Droit':
  1796.                                 $droits $droitRepository->findSearch($search);
  1797.                                 if ($droits) {
  1798.                                     $array[$ssr->getRubrique()->getNom()]['ssr'][$ssr->getNom()] = [
  1799.                                         'ssr' => [
  1800.                                             'nom' => $ssr->getNom(),
  1801.                                             'lien' => $ssr->getLien(),
  1802.                                             'twig' => '14_droits',
  1803.                                             'r' => $ssr->getRubrique(),
  1804.                                             'ssr' => $ssr,
  1805.                                             'search' => true
  1806.                                         ],
  1807.                                         'data' => $droits
  1808.                                     ];
  1809.                                 }
  1810.                                 break;
  1811.                             case 'Cv':
  1812.                                 $cvs $cvRepository->findSearch($search$user);
  1813.                                 if ($cvs) {
  1814.                                     $array[$ssr->getRubrique()->getNom()]['ssr'][$ssr->getNom()] = [
  1815.                                         'ssr' => [
  1816.                                             'nom' => $ssr->getNom(),
  1817.                                             'lien' => $ssr->getLien(),
  1818.                                             'twig' => '15_cv',
  1819.                                             'r' => $ssr->getRubrique(),
  1820.                                             'ssr' => $ssr,
  1821.                                             'search' => true
  1822.                                         ],
  1823.                                         'data' => $cvs
  1824.                                     ];
  1825.                                 }
  1826.                                 break;
  1827.                             case 'Conference':
  1828.                                 $conferences $conferenceRepository->findSearch($search);
  1829.                                 if ($conferences) {
  1830.                                     $array[$ssr->getRubrique()->getNom()]['ssr'][$ssr->getNom()] = [
  1831.                                         'ssr' => [
  1832.                                             'nom' => $ssr->getNom(),
  1833.                                             'lien' => $ssr->getLien(),
  1834.                                             'twig' => '22_conferences',
  1835.                                             'search' => true
  1836.                                         ],
  1837.                                         'data' => $conferences
  1838.                                     ];
  1839.                                 }
  1840.                                 break;
  1841.                             case 'Archive':
  1842.                                 $archives $archiveRepository->findSearch($search);
  1843.                                 if ($archives) {
  1844.                                     $array[$ssr->getRubrique()->getNom()]['ssr'][$ssr->getNom()] = [
  1845.                                         'ssr' => [
  1846.                                             'nom' => $ssr->getNom(),
  1847.                                             'lien' => $ssr->getLien(),
  1848.                                             'twig' => '13_archives',
  1849.                                             'search' => true
  1850.                                         ],
  1851.                                         'data' => $archives
  1852.                                     ];
  1853.                                 }
  1854.                                 break;
  1855.                             case 'Agora':
  1856.                                 $agoras $agoraRepository->findSearch($search);
  1857.                                 if ($agoras) {
  1858.                                     $array[$ssr->getRubrique()->getNom()]['ssr'][$ssr->getNom()] = [
  1859.                                         'ssr' => [
  1860.                                             'nom' => $ssr->getNom(),
  1861.                                             'lien' => $ssr->getLien(),
  1862.                                             'twig' => '35_agora',
  1863.                                             'r' => $ssr->getRubrique(),
  1864.                                             'ssr' => $ssr,
  1865.                                             'search' => true
  1866.                                         ],
  1867.                                         'data' => $agoras
  1868.                                     ];
  1869.                                 }
  1870.                                 break;
  1871.                             case 'Initiative':
  1872.                                 $initiatives $initiativeRepository->findSearch($search);
  1873.                                 if ($initiatives) {
  1874.                                     $array[$ssr->getRubrique()->getNom()]['ssr'][$ssr->getNom()] = [
  1875.                                         'ssr' => [
  1876.                                             'nom' => $ssr->getNom(),
  1877.                                             'lien' => $ssr->getLien(),
  1878.                                             'twig' => '32_initiatives',
  1879.                                             'search' => true
  1880.                                         ],
  1881.                                         'data' => $initiatives
  1882.                                     ];
  1883.                                 }
  1884.                                 break;
  1885.                             case 'Post':
  1886.                                 $posts $postRepository->findSearch($search);
  1887.                                 if ($posts) {
  1888.                                     $array[$ssr->getRubrique()->getNom()]['ssr'][$ssr->getNom()] = [
  1889.                                         'ssr' => [
  1890.                                             'nom' => $ssr->getNom(),
  1891.                                             'lien' => $ssr->getLien(),
  1892.                                             'twig' => '34_post',
  1893.                                             'r' => $ssr->getRubrique(),
  1894.                                             'ssr' => $ssr,
  1895.                                             'search' => true
  1896.                                         ],
  1897.                                         'data' => $posts
  1898.                                     ];
  1899.                                 }
  1900.                                 break;
  1901.                             case 'Juridique':
  1902.                                 $juridiques $juridiqueRepository->findSearch($search);
  1903.                                 if ($juridiques) {
  1904.                                     $array[$ssr->getRubrique()->getNom()]['ssr'][$ssr->getNom()] = [
  1905.                                         'ssr' => [
  1906.                                             'nom' => $ssr->getNom(),
  1907.                                             'lien' => $ssr->getLien(),
  1908.                                             'twig' => '31_juridiques',
  1909.                                             'search' => true
  1910.                                         ],
  1911.                                         'data' => $juridiques
  1912.                                     ];
  1913.                                 }
  1914.                                 break;
  1915.                             case 'Referent':
  1916.                                 $referents $referentRepository->findSearch($search);
  1917.                                 if ($referents) {
  1918.                                     $array[$ssr->getRubrique()->getNom()]['ssr'][$ssr->getNom()] = [
  1919.                                         'ssr' => [
  1920.                                             'nom' => $ssr->getNom(),
  1921.                                             'lien' => $ssr->getLien(),
  1922.                                             'twig' => '33_referents',
  1923.                                             'search' => true
  1924.                                         ],
  1925.                                         'data' => $referents
  1926.                                     ];
  1927.                                 }
  1928.                                 break;
  1929.                             
  1930.                             default:
  1931.                                 # code...
  1932.                                 break;
  1933.                         }
  1934.                     }
  1935.                 }
  1936.                 
  1937.                 $rubriques $rubriqueRepository->findSearch($search,$this->getActualite());
  1938.                 //dd($rubriques);
  1939.                 foreach ($rubriques as $key => $rubrique) {
  1940.                         $array[$rubrique->getNom()]['data'] = [
  1941.                             'nom' => $rubrique->getNom(),
  1942.                             'description' => $rubrique->getDescription(),
  1943.                             'phrase' => $rubrique->getPhrase(),
  1944.                             'slug' => $rubrique->getSlug(),
  1945.                             'srcImg' => $rubrique->getSrcImg(),
  1946.                             'altImg' => $rubrique->getAltImg(),
  1947.                             'titleImg' => $rubrique->getTitleImg(),
  1948.                         ];
  1949.                 
  1950.                 }
  1951.                 $ssrubriques $sousrubriqueRepository->findSearch($search);
  1952.                 foreach ($ssrubriques as $key => $ssrubrique) {
  1953.                         $array[$ssrubrique->getRubrique()->getNom()]['ssr'][$ssrubrique->getNom()]['ssr']['nom'] =  $ssrubrique->getNom();
  1954.                         $array[$ssrubrique->getRubrique()->getNom()]['ssr'][$ssrubrique->getNom()]['ssr']['description'] =  $ssrubrique->getDescription();
  1955.                         $array[$ssrubrique->getRubrique()->getNom()]['ssr'][$ssrubrique->getNom()]['ssr']['phrase'] =  $ssrubrique->getPhrase();
  1956.                         $array[$ssrubrique->getRubrique()->getNom()]['ssr'][$ssrubrique->getNom()]['ssr']['slug'] =  $ssrubrique->getSlug();
  1957.                         $array[$ssrubrique->getRubrique()->getNom()]['ssr'][$ssrubrique->getNom()]['ssr']['srcImg'] =  $ssrubrique->getSrcImg();
  1958.                         $array[$ssrubrique->getRubrique()->getNom()]['ssr'][$ssrubrique->getNom()]['ssr']['altImg'] =  $ssrubrique->getAltImg();
  1959.                         $array[$ssrubrique->getRubrique()->getNom()]['ssr'][$ssrubrique->getNom()]['ssr']['titleImg'] =  $ssrubrique->getTitleImg();
  1960.                         $array[$ssrubrique->getRubrique()->getNom()]['ssr'][$ssrubrique->getNom()]['ssr']['r'] =  $ssrubrique->getRubrique();
  1961.                         $array[$ssrubrique->getRubrique()->getNom()]['data'] = [
  1962.                             'nom' => $ssrubrique->getRubrique()->getNom(),
  1963.                             // 'description' => $ssrubrique->getRubrique()->getDescription(),
  1964.                             // 'phrase' => $ssrubrique->getRubrique()->getPhrase(),
  1965.                             'slug' => $ssrubrique->getRubrique()->getSlug(),
  1966.                             // 'srcImg' => $ssrubrique->getRubrique()->getSrcImg(),
  1967.                             // 'altImg' => $ssrubrique->getRubrique()->getAltImg(),
  1968.                             // 'titleImg' => $ssrubrique->getRubrique()->getTitleImg(),
  1969.                         ];
  1970.                 
  1971.                 }
  1972.                 // $actualites = $actualiteRepository->findSearch($search);
  1973.                 // if ($actualites) {
  1974.                 //     $array[$rubriqueManager->getRubrique5()->getNom()] = [
  1975.                 //         // 'ssr' => [
  1976.                 //         //     'nom' => $ssr->getNom(),
  1977.                 //         //     'lien' => $ssr->getLien(),
  1978.                 //         //     'twig' => '14_droits',
  1979.                 //         //     'r' => $ssr->getRubrique(),
  1980.                 //         //     'ssr' => $ssr,
  1981.                 //         //     'search' => true
  1982.                 //         // ],
  1983.                 //         'data' => $droits
  1984.                 //     ];
  1985.                 // }
  1986.             // }
  1987.             // actualité / agenda / Page 
  1988.             // rectif post et referent 
  1989.             //dd($array);
  1990.         } else {
  1991.             # code...
  1992.         }
  1993.         
  1994.         return $this->render('front/recherche.html.twig', [
  1995.             'rubriques' => $array,
  1996.             'search' => $search
  1997.         ]);
  1998.     }
  1999.     /**
  2000.      * @Route("/test/download/{uuid}", name="downloadTest")
  2001.      */
  2002.     public function downloadFileAction(Post $post): Response
  2003.     {
  2004.       
  2005.         // Récupérez le chemin absolu vers le fichier à télécharger
  2006.         $filePath $this->fileUploadParameters['base_path'].$this->fileUploadParameters['directories']['post']. $post->getFichier();
  2007.         // Vérifiez si le fichier existe
  2008.         if (!file_exists($filePath)) {
  2009.             throw $this->createNotFoundException('Le fichier demandé n\'existe pas.');
  2010.         }
  2011.         // Créez une réponse avec le fichier à télécharger
  2012.         $response = new BinaryFileResponse($filePath);
  2013.         // Définissez le nom de fichier pour le téléchargement
  2014.         //$response->setContentDisposition(Response::DISPOSITION_ATTACHMENT, $post->getFichier());
  2015.         return $response;
  2016.     }
  2017.     
  2018.     // /**
  2019.     //  * @return Response
  2020.     //  * @Route("/recruter/add", name="recruter_add", methods={"GET","POST"})
  2021.     //  */
  2022.     // public function recruter_add()
  2023.     // {
  2024.     //     for ($i=1; $i < 150; $i++) { 
  2025.             
  2026.         
  2027.     //         $caractere = ['Lorem','ipsum','dolor','sit','amet','consectetur','adipiscing','elit','Sed','do','eiusmod','tempor','incididunt','ut','labore','et','dolore','magna','aliqua','Ut','enim','ad','minim','veniam','quis','nostrud','exercitation','ullamco','laboris','nisi','ut','aliquip','ex','ea','commodo','consequat'];
  2028.     //         shuffle($caractere);
  2029.     //         $count = count($caractere);
  2030.     //         $rand = rand(1, $count);
  2031.     //         $chaine = '';
  2032.     //         for ($j = 1; $j <= rand(2, 8); $j++) {
  2033.     //             $rand = rand(0, $count - 1);
  2034.     //             $chaine .= ' ' . $caractere[$rand];
  2035.     //         }
  2036.     //         // Date de départ (1er janvier 2023)
  2037.     //         $dateDepart = new \DateTime('2023-01-01');
  2038.     //         // Date actuelle (aujourd'hui)
  2039.     //         $dateAujourdhui = new \DateTime();
  2040.     //         // Calcul d'un nombre de jours aléatoire entre 0 et la différence de jours entre le 1er janvier 2023 et aujourd'hui
  2041.     //         $nombreJoursAleatoire = rand(0, $dateDepart->diff($dateAujourdhui)->days);
  2042.     //         // Ajout du nombre de jours aléatoire à la date de départ
  2043.     //         $dateAleatoire = $dateDepart->add(new \DateInterval("P{$nombreJoursAleatoire}D"));
  2044.     //         // Formatage de la date au format souhaité
  2045.     //         $dateFormatee = $dateAleatoire->format('Y-m-d');
  2046.     //         $user = $this->getUser();
  2047.     //         $droit = new Droit();
  2048.     //         $droit->setToken($this->codeManager->getCode());
  2049.     //         $droit->setTitre($chaine);
  2050.     //         $slug = $this->slugManager->getSlug($droit->getTitre());
  2051.     //         $droit->setSlug($droit->getToken() . '-' . $slug);
  2052.     //         $droit->setCreatedAt(new \DateTimeImmutable('now'));
  2053.     //         $droit->setValidedAt(new \DateTimeImmutable($dateFormatee));
  2054.     //         $droit->setUser($user);
  2055.     //         $droit->setStatut(true);
  2056.     //         $droit->setModerate(true);
  2057.     //         $droit->setLien('https://www.google.fr/');
  2058.     //         $droit->setDescription('Lorem ipsum dolor sit amet consectetur adipisicing elit. Nemo praesentium facilis ipsam earum dignissimos velit unde numquam vitae aliquam, voluptatem repellat perspiciatis recusandae perferendis? Odio suscipit quod quasi sequi consequatur.');
  2059.     //         $droit->setNom($user->getNom());
  2060.     //         $droit->setPrenom($user->getPrenom());
  2061.     //         $droit->setEmail($user->getEmail());
  2062.     //         $droit->setPhone('0708090405');
  2063.     //         $droit->setDirection('DGFIP');
  2064.     //         $this->em->persist($droit);
  2065.     //         $this->em->flush();
  2066.     //     }
  2067.     // }
  2068. }