src/Controller/Frontend/FrontindexController.php line 343

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Frontend;
  3. use App\Entity\Comite;
  4. use App\Entity\Event;
  5. use App\Entity\ImageMedia;
  6. use App\Entity\Slides;
  7. use App\Repository\ComiteRepository;
  8. use App\Repository\CongresRepository;
  9. use App\Repository\EventRepository;
  10. use App\Repository\FlyersRepository;
  11. use App\Repository\ImageMediaRepository;
  12. use App\Repository\AtelierParicipantRepository;
  13. use App\Repository\MemberComiteCategorieRepository;
  14. use App\Repository\MemberComiteRepository;
  15. use App\Repository\NewsRepository;
  16. use App\Repository\RecommandationRepository;
  17. use App\Repository\RevueScientifiqueRepository;
  18. use App\Repository\SlidesRepository;
  19. use App\Repository\UserRepository;
  20. use App\Repository\VideoRepository;
  21. use Doctrine\ORM\EntityManagerInterface;
  22. use Endroid\QrCode\Builder\Builder;
  23. use Endroid\QrCode\QrCode;
  24. use Knp\Component\Pager\PaginatorInterface;
  25. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  26. use Symfony\Component\HttpFoundation\Request;
  27. use Symfony\Component\HttpFoundation\Response;
  28. use App\Repository\AtelierRepository;
  29. use App\Entity\AtelierParicipant;
  30. use Symfony\Component\Routing\Annotation\Route;
  31. class FrontindexController extends AbstractController
  32. {
  33.     /**
  34.      * @var CongresRepository
  35.      */
  36.     private $repository;
  37.     public function __construct(CongresRepository $repository)
  38.     {
  39.         $this->repository = $repository;
  40.     }
  41.     /**
  42.      * @Route("/fr/")
  43.      */
  44.     public function oldLink()
  45.     {
  46.         return $this->redirectToRoute('app_accueil');
  47.     }
  48.     /**
  49.      * @Route("/accueil.html")
  50.      */
  51.     public function oldLinkAccueil()
  52.     {
  53.         return $this->redirectToRoute('app_accueil');
  54.     }
  55.     /**
  56.      * @Route("/fr/video/41/17eme-congres-national-6eme-congres-maghrebin-d-urologie")
  57.      */
  58.     public function oldLink41Congres()
  59.     {
  60.         return $this->redirectToRoute('app_accueil');
  61.     }
  62.      /**
  63.      * @Route("/fr/album/4/17eme-congres-national-6eme-congres-maghrebin-d-urologie")
  64.      */
  65.     public function oldLink17Congres()
  66.     {
  67.         return $this->redirectToRoute('app_accueil');
  68.     }
  69.     /**
  70.      * @Route("/fr/videos/album/id/3/label/17eme-congres-national-6eme-congres-maghrebin-d-urologie")
  71.      */
  72.     public function oldLinkAlbum()
  73.     {
  74.         return $this->redirectToRoute('app_accueil');
  75.     }
  76.      /**
  77.      * @Route("/uploads/FCK_files/doc/PIIS0302283817302671.pdf")
  78.      */
  79.     public function oldLinkPdf()
  80.     {
  81.         return $this->redirectToRoute('app_accueil');
  82.     } 
  83.     /**
  84.     * @Route("/uploads/FCK_files/doc/PIIS0302283817305225.pdf")
  85.     */
  86.    public function oldLinkPdf2()
  87.    {
  88.        return $this->redirectToRoute('app_accueil');
  89.    }
  90.     /**
  91.     * @Route("/fr/11/comite-d-oncologie")
  92.     */
  93.     public function oldLinkComite()
  94.     {
  95.         return $this->redirectToRoute('app_comites');
  96.     }
  97.      /**
  98.     * @Route("/fr/1/bureau-atu")
  99.     */
  100.     public function oldLinkBureau()
  101.     {
  102.         return $this->redirectToRoute('app_bureau');
  103.     }
  104.      /**
  105.     * @Route("/uploads/FCK_files/file/prog de poche  ATU.pdf")
  106.     */
  107.     public function oldLinkPdf3()
  108.     {
  109.         return $this->redirectToRoute('app_accueil');
  110.     }
  111.     /**
  112.      * @Route("/", name="app_accueil")
  113.      */
  114.     public function index(EventRepository $eventRepository, Request $request, SlidesRepository $slidesrepository, VideoRepository $videoRepository, ComiteRepository $comiterepository, MemberComiteCategorieRepository $memberComiteCategorie, MemberComiteRepository $memberComiteRepository): Response
  115.     {
  116.         $videos = $videoRepository->findAllDesc();
  117.         $touscongres = $this->repository->findAll([],['id','DESC']);
  118.         $events=$eventRepository->findBy(['categorie'=>'national'],['startDate'=>'ASC']);
  119.         $eventsInter=$eventRepository->findBy(['categorie'=>'international'],['startDate'=>'DESC']);
  120.         $comite = $comiterepository->findAll();
  121.         $memberComiteCategorie = $memberComiteCategorie->findAll();
  122.         $slides = $slidesrepository->findBy(['language'=>$request->getLocale()]);
  123.        
  124.         $memberComite = $memberComiteRepository->findAll();
  125.         return $this->render('frontend/frontindex/add.html.twig', [
  126.             'controller_name' => 'FrontindexController', 'touscongres' => $touscongres, 'videos' => $videos, 'comites' => $comite,'memberComiteCategories'=>$memberComiteCategorie,'memberComites'=>$memberComite,
  127.             'slides'=>$slides,'eventsATU'=>$events,'eventsInter'=>$eventsInter
  128.             
  129.         ]);
  130.     }
  131.     /**
  132.      * @Route("/fr/congres/article/29/15eme-congres-panafricain-d-urologie-22eme-congres-tunisien-d-urologie")
  133.      */
  134.     public function oldLinkCongresPausa()
  135.     {
  136.         return $this->redirectToRoute('details_congres',['id'=>3]);
  137.     }
  138.      /**
  139.      * @Route("/fr/congres/article/29/15eme-congres-pan-africain-d-urologie-22eme-congres-tunisien-d-urologie")
  140.      */
  141.     public function oldLinkCongresPausa2()
  142.     {
  143.         return $this->redirectToRoute('details_congres',['id'=>3]);
  144.     }
  145.     /**
  146.      * @Route("/fr/inscription")
  147.      */
  148.     public function oldLinkInscription()
  149.     {
  150.         return $this->redirectToRoute('app_register');
  151.     }
  152.     /**
  153.      * @Route("/change_locale/{locale}", name="app_change_locale")
  154.      */
  155.     public function changeLocale($locale, Request $request): Response
  156.     {
  157.         $request->getSession()->set('_locale', $locale);
  158.         $request->setLocale($locale);
  159.         return $this->redirect($request->headers->get('referer'));
  160.     }
  161.      /**
  162.      * @Route("/{id}/atelier-participation", name="app_participation_atelier")
  163.      */
  164.     public function particpationAuAtelier(Request $request, $id, AtelierParicipantRepository $atelierParicipantRepository,  CongresRepository $congresRepository, AtelierRepository $atelierRepository, EntityManagerInterface $em)
  165.     {
  166.         $congres = $congresRepository->findOneBy(['id'=>$id]);
  167.         $ateliers = $atelierRepository->findBy(['congres'=>$congres], ['date'=>'ASC','heureDeb'=>'ASC']);
  168.         $currentDate = new \DateTime();
  169.         if ($request->isMethod('post')){
  170.             $nom = $request->request->get('nom');
  171.             $prenom = $request->request->get('prenom');
  172.             $email = $request->request->get('email');
  173.             $tel = $request->request->get('tel');
  174.             $existeParticipant = $atelierParicipantRepository->findOneBy(['email'=>$email]);
  175.             if (!empty($existeParticipant)){
  176.                 $this->addFlash('danger','Il existe une participation avec cet email. Merci de vérifier');
  177.                 return $this->redirectToRoute('app_participation_atelier', ['id'=>$congres->getId()], Response::HTTP_SEE_OTHER);
  178.             }
  179.             else{
  180.                 $particpant = new AtelierParicipant();
  181.                 $particpant->setNom($nom);
  182.                 $particpant->setPrenom($prenom);
  183.                 $particpant->setEmail($email);
  184.                 $particpant->setTel($tel);
  185.                 $particpant->setCreatedAt(new \DateTimeImmutable());
  186.                 $em->persist($particpant);
  187.                 $em->flush();
  188.                 global $type; 
  189.                 foreach ($ateliers as $atelier) {
  190.                     $atelierChecked = $request->request->get('atelier'.$atelier->getId());
  191.                     
  192.                     if($atelierChecked != NULL){
  193.                         $type = $request->request->get('type');
  194.                         if($type == 'resident'){
  195.                             $QUERY1="INSERT INTO `atelier_paricipant_atelier`(`atelier_paricipant_id`, `atelier_id`, `membre`, `resident`, `nonMembre`) VALUES ('".$particpant->getId()."',' ".$atelier->getId()."','0','1','0')";
  196.                             $stat1 = $em->getConnection()->prepare($QUERY1);
  197.                             $stat1->execute();
  198.                         }
  199.                         
  200.                         elseif($type == 'membre'){
  201.                             $QUERY2="INSERT INTO `atelier_paricipant_atelier`(`atelier_paricipant_id`, `atelier_id`, `membre`, `resident`, `nonMembre`) VALUES ('".$particpant->getId()."',' ".$atelier->getId()."','1','0','0')";
  202.                             $stat2 = $em->getConnection()->prepare($QUERY2);
  203.                             $stat2->execute();
  204.                         }
  205.                         elseif($type == 'nonMembre'){
  206.                             $QUERY3="INSERT INTO `atelier_paricipant_atelier`(`atelier_paricipant_id`, `atelier_id`, `membre`, `resident`, `nonMembre`) VALUES ('".$particpant->getId()."',' ".$atelier->getId()."','0','0','1')";
  207.                             $stat3 = $em->getConnection()->prepare($QUERY3);
  208.                             $stat3->execute();
  209.                         }
  210.                         $atelier->setnbPlaceAtteint($atelier->getNbPlaceAtteint()+1 );
  211.                         $em->persist($atelier);
  212.                         $em->flush();
  213.                         
  214.                     }
  215.                 }
  216.                     $this->addFlash('success','Votre inscription est enregistrée!');
  217.                     return $this->redirectToRoute('app_participation_atelier', ['id'=>$congres->getId()], Response::HTTP_SEE_OTHER);
  218.             }
  219.         }
  220.         
  221.         return $this->render('frontend/frontindex/atelierParticipant.html.twig', [
  222.             'controller_name' => 'FrontindexController','ateliers'=>$ateliers,'congres'=>$congres,'currentDate'=>$currentDate
  223.         ]);
  224.     }
  225.     /**
  226.      * @Route("/bureau", name="app_bureau")
  227.      */
  228.     public function bureau(ComiteRepository $Comiterepository)
  229.     {
  230.         $comite = $Comiterepository->findAll();
  231.         return $this->render('frontend/frontindex/bureau.html.twig', [
  232.             'controller_name' => 'FrontindexController', 'comites' => $comite
  233.         ]);
  234.     }
  235.      /**
  236.      * @Route("/comites", name="app_comites")
  237.      */
  238.     public function comites(MemberComiteCategorieRepository $memberComiteCategorie, MemberComiteRepository $memberComiteRepository)
  239.     {$memberComiteCategorie = $memberComiteCategorie->findAll();
  240.        
  241.         $memberComite = $memberComiteRepository->findAll();
  242.         return $this->render('frontend/frontindex/comites.html.twig', [
  243.             'controller_name' => 'FrontindexController','memberComiteCategories'=>$memberComiteCategorie,'memberComites'=>$memberComite
  244.         ]);
  245.     }
  246.     /**
  247.      * @Route("/list-news", name="app_list_news")
  248.      */
  249.     public function listNews(NewsRepository $newsRepository, PaginatorInterface $paginator,Request $request): Response
  250.     {
  251.         $news=$newsRepository->findAllDesc();
  252.         $news= $paginator->paginate($news, $request->query->getInt('page', 1),12 );
  253.         return $this->render('frontend/frontindex/listNews.html.twig', [
  254.             'news' => $news,
  255.         ]);
  256.     }
  257.      /**
  258.      * @Route("/media-videos", name="app_list_media_video", methods={"GET"})
  259.      */
  260.     public function listMediaVideo(VideoRepository $videoRepository,Request $request, PaginatorInterface $paginator): Response
  261.     {
  262.         $videos=$videoRepository->findAllDesc();
  263.         $videos= $paginator->paginate($videos, $request->query->getInt('page', 1),9 );
  264.        
  265.         return $this->render('frontend/frontindex/listMediaVideo.html.twig', [
  266.             'medias' => $videos,
  267.         ]);
  268.     }
  269.       /**
  270.      * @Route("/fr/videos")
  271.      */
  272.     public function oldLinkVideo()
  273.     {
  274.         return $this->redirectToRoute('app_list_media_video');
  275.     }
  276.      /**
  277.      * @Route("/histoire", name="app_front_history")
  278.      */
  279.     public function history(): Response
  280.     {
  281.         return $this->render('frontend/frontindex/history.html.twig');
  282.     }
  283.     /**
  284.      * @Route("/flyers", name="app_flyers", methods={"GET"})
  285.      */
  286.     public function flyersPatient(FlyersRepository $flyersRepository,Request $request, PaginatorInterface $paginator): Response
  287.     {
  288.         $flyers=$flyersRepository->findAllDesc();
  289.         $flyers= $paginator->paginate($flyers, $request->query->getInt('page', 1),9 );
  290.        
  291.         return $this->render('frontend/frontindex/flyers.html.twig', [
  292.             'flyers' => $flyers,
  293.         ]);
  294.     }
  295.     /**
  296.      * @Route("/video-educative-patient", name="app_video_educative_patient", methods={"GET"})
  297.      */
  298.     public function VideoEducativePatient(VideoRepository $videoRepository,Request $request, PaginatorInterface $paginator): Response
  299.     {
  300.         $videos=$videoRepository->findEducationalVideoDesc();
  301.         $videos= $paginator->paginate($videos, $request->query->getInt('page', 1),9 );
  302.        
  303.         return $this->render('frontend/frontindex/videoEducativePatient.html.twig', [
  304.             'medias' => $videos,
  305.         ]);
  306.     }
  307.     /**
  308.      * @Route("/information-general-patient", name="app_information_general_patient")
  309.      */
  310.     public function InformationGeneralPatient(): Response
  311.     {
  312.        
  313.        
  314.         return $this->render('frontend/frontindex/informationGeneralPatient.html.twig', [
  315.             
  316.         ]);
  317.     }
  318.     /**
  319.      * @Route("/media-gallery", name="app_list_media_gallery", methods={"GET"})
  320.      */
  321.     public function listMediaGallery(ImageMediaRepository $imageMediaRepository, Request $request, PaginatorInterface $paginator): Response
  322.     {
  323.         $images=$imageMediaRepository->findAll();
  324.         // $images= $paginator->paginate($images, $request->query->getInt('page', 1),6 );
  325.         $yearImage= $imageMediaRepository->findImageByYear();
  326.         $categorieImage= $imageMediaRepository->findImageByCategorie();
  327.         // var_dump($categorieImage);
  328.         // die();
  329.         return $this->render('frontend/frontindex/listMediaImage.html.twig', [
  330.             'medias' => $images,'yearImage'=>$yearImage,'categorieImages'=>$categorieImage
  331.         ]);
  332.     }
  333.     /**
  334.      * @Route("/past-presedent", name="app_front_past_presedent")
  335.      */
  336.     public function pastPresedent(): Response
  337.     {
  338.         return $this->render('frontend/frontindex/pastPresedent.html.twig');
  339.     }
  340.     /**
  341.      * @Route("/urologists-list", name="app_front_urologists_list")
  342.      */
  343.     public function urologistList(): Response
  344.     {
  345.         return $this->render('frontend/frontindex/urologistList.html.twig');
  346.     }
  347.     /**
  348.      * @Route("/recommandationNational", name="app_recommandation_national")
  349.      */
  350.     public function recommandationNational(Request $request, RecommandationRepository $recommandationRepository, PaginatorInterface $paginator)
  351.     {
  352.         $recommandation = $recommandationRepository->findBy(['type'=>'national']);
  353.         $recomm= $paginator->paginate($recommandation, $request->query->getInt('page', 1), 6);
  354.         return $this->render('frontend/frontindex/recommandationNational.html.twig', [
  355.             'controller_name' => 'FrontindexController', 'recommandations' => $recomm
  356.         ]);
  357.     }
  358.     /**
  359.      * @Route("/eventInternationaux", name="evenement_internationaux")
  360.      */
  361.     public function CongresIntern(Request $request,EntityManagerInterface $em,PaginatorInterface $paginator,EventRepository $eventrepository)
  362.     {
  363.         // $touscongres=$eventrepository->findBydateDesc($request->getLocale());
  364.         $touscongres=$eventrepository->findBy(['categorie'=>'international'],['startDate'=>'DESC']);
  365.         // $touscongres = $paginator->paginate(
  366.         // // Doctrine Query, not results
  367.         //     $touscongres,
  368.         //     // Define the page parameter
  369.         //     $request->query->getInt('page', 1),
  370.         //     // Items per page
  371.         //     6);
  372.             $dateNow = new \DateTime();
  373.             
  374.         return $this->render('frontend/frontindex/eventInternationaux.html.twig' ,array('touscongres'=> $touscongres,'dateNow'=>$dateNow));
  375.     }
  376.     /**
  377.      * @Route("/college", name="college")
  378.      */
  379.     public function college(Request $request,EntityManagerInterface $em,PaginatorInterface $paginator,EventRepository $eventrepository)
  380.     {
  381.         return $this->render('frontend/frontindex/college.html.twig' ,array());
  382.     }
  383.     /**
  384.      * @Route("/eventHiver", name="evenement_hiver")
  385.      */
  386.     public function eventHiver(Request $request,EntityManagerInterface $em,PaginatorInterface $paginator,EventRepository $eventrepository)
  387.     {
  388.         $touscongres=$eventrepository->findBy(array('categorie' => 'journée d\'hiver'));
  389.         $touscongres = $paginator->paginate(
  390.         // Doctrine Query, not results
  391.             $touscongres,
  392.             // Define the page parameter
  393.             $request->query->getInt('page', 1),
  394.             // Items per page
  395.             6);
  396.             
  397.         return $this->render('frontend/frontindex/eventHiver.html.twig' ,array('touscongres'=> $touscongres));
  398.     }
  399.      /**
  400.      * @Route("/eventPrintemps", name="evenement_printemp")
  401.      */
  402.     public function eventPrintemp(Request $request,EntityManagerInterface $em,PaginatorInterface $paginator,EventRepository $eventrepository)
  403.     {
  404.         $touscongres=$eventrepository->findBy(array('categorie' => 'journée du printemps'));
  405.         $touscongres = $paginator->paginate(
  406.         // Doctrine Query, not results
  407.             $touscongres,
  408.             // Define the page parameter
  409.             $request->query->getInt('page', 1),
  410.             // Items per page
  411.             6);
  412.             
  413.         return $this->render('frontend/frontindex/eventPrintemp.html.twig' ,array('touscongres'=> $touscongres));
  414.     }
  415.      /**
  416.      * @Route("/event-details/{id}", name="details_event")
  417.      * @param Congres $congres
  418.      * @param Request $request
  419.      * @return \Symfony\Component\HttpFoundation\Response
  420.      */
  421.     public function detailsCongres(Event $event,Request $request,$id,EntityManagerInterface $em,EventRepository $repository)
  422.     {
  423.         $congres = $repository->find($id);
  424.         return $this->render('frontend/frontindex/detailsEvent.html.twig', array('congres'=>$congres));
  425.     }
  426.     /**
  427.      * @Route("/addImageQrCodeeee", name="addImageQrCode")
  428.      */
  429.     public function addImageQrCode(Request $request,EntityManagerInterface $em, SlidesRepository $slidesrepository, VideoRepository $videoRepository, ComiteRepository $comiterepository, MemberComiteCategorieRepository $memberComiteCategorie, MemberComiteRepository $memberComiteRepository)
  430.     {
  431.         $videos = $videoRepository->findBy(['language'=>$request->getLocale()]);
  432.         $touscongres = $this->repository->findAll();
  433.         $comite = $comiterepository->findAll();
  434.         $memberComiteCategorie = $memberComiteCategorie->findAll();
  435.         $slides = $slidesrepository->findBy(['language'=>$request->getLocale()]);
  436.         $memberComite = $memberComiteRepository->findAll();
  437.         $image = new ImageMedia();
  438.         $image->setDate(new \DateTime("now"));
  439.         $image->setImage('jjjjj.png');
  440.         $image->setLabel('testQrCode');
  441.         $em->persist($image);
  442.         $em->flush();
  443.             
  444.         return $this->render('frontend/frontindex/add.html.twig', [
  445.             'controller_name' => 'FrontindexController', 'touscongres' => $touscongres, 'videos' => $videos, 'comites' => $comite,'memberComiteCategories'=>$memberComiteCategorie,'memberComites'=>$memberComite,
  446.             'slides'=>$slides
  447.             
  448.         ]);
  449.     }
  450.    
  451.     /**
  452.      * @Route("/recommandationInternational", name="app_recommandation_international")
  453.      */
  454.     public function recommandationInternational(Request $request, RecommandationRepository $recommandationRepository,PaginatorInterface $paginator)
  455.     {
  456.         $recommandation = $recommandationRepository->findBy(['type'=>'international']);
  457.         $recomm= $paginator->paginate($recommandation, $request->query->getInt('page', 1), 6);
  458.         return $this->render('frontend/frontindex/recommandationInternational.html.twig', [
  459.             'controller_name' => 'FrontindexController', 'recommandations' => $recomm
  460.         ]);
  461.     }
  462.    
  463.     /**
  464.      * @Route("/revuescientifique", name="app_revue_scientifique")
  465.      */
  466.     public function revueScientifique(Request $request, RevueScientifiqueRepository $revueScientifiqueRepository, PaginatorInterface $paginator)
  467.     {
  468.         $revues = $revueScientifiqueRepository->findByIdDesc();
  469.        $revuesScientifique= $paginator->paginate($revues, $request->query->getInt('page', 1),6 );
  470.         return $this->render('frontend/frontindex/revuescientifique.html.twig', [
  471.             'controller_name' => 'FrontindexController', 'revues' => $revuesScientifique
  472.         ]);
  473.     }
  474.     /**
  475.      * @Route("/a-propos", name="app_a_propos")
  476.      */
  477.     public function a_propos()
  478.     {
  479.         return $this->render('frontend/frontindex/a_propos.html.twig', [
  480.             'controller_name' => 'FrontindexController',
  481.         ]);
  482.     }
  483.     /**
  484.      * @Route("/statutsducomite", name="statuts_comite")
  485.      */
  486.     public function Statutscomite()
  487.     {
  488.         return $this->render('frontend/frontindex/statutsDuComite.html.twig', [
  489.             'controller_name' => 'FrontindexController',
  490.         ]);
  491.     }
  492.      /**
  493.      * @Route("/relations", name="relations")
  494.      */
  495.     public function Relations()
  496.     {
  497.         return $this->render('frontend/frontindex/relations.html.twig', [
  498.             'controller_name' => 'FrontindexController',
  499.         ]);
  500.     }
  501.    
  502. }