<?php
namespace App\Controller\Frontend;
use App\Entity\Comite;
use App\Entity\Event;
use App\Entity\ImageMedia;
use App\Entity\Slides;
use App\Repository\ComiteRepository;
use App\Repository\CongresRepository;
use App\Repository\EventRepository;
use App\Repository\FlyersRepository;
use App\Repository\ImageMediaRepository;
use App\Repository\AtelierParicipantRepository;
use App\Repository\MemberComiteCategorieRepository;
use App\Repository\MemberComiteRepository;
use App\Repository\NewsRepository;
use App\Repository\RecommandationRepository;
use App\Repository\RevueScientifiqueRepository;
use App\Repository\SlidesRepository;
use App\Repository\UserRepository;
use App\Repository\VideoRepository;
use Doctrine\ORM\EntityManagerInterface;
use Endroid\QrCode\Builder\Builder;
use Endroid\QrCode\QrCode;
use Knp\Component\Pager\PaginatorInterface;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use App\Repository\AtelierRepository;
use App\Entity\AtelierParicipant;
use Symfony\Component\Routing\Annotation\Route;
class FrontindexController extends AbstractController
{
/**
* @var CongresRepository
*/
private $repository;
public function __construct(CongresRepository $repository)
{
$this->repository = $repository;
}
/**
* @Route("/fr/")
*/
public function oldLink()
{
return $this->redirectToRoute('app_accueil');
}
/**
* @Route("/accueil.html")
*/
public function oldLinkAccueil()
{
return $this->redirectToRoute('app_accueil');
}
/**
* @Route("/fr/video/41/17eme-congres-national-6eme-congres-maghrebin-d-urologie")
*/
public function oldLink41Congres()
{
return $this->redirectToRoute('app_accueil');
}
/**
* @Route("/fr/album/4/17eme-congres-national-6eme-congres-maghrebin-d-urologie")
*/
public function oldLink17Congres()
{
return $this->redirectToRoute('app_accueil');
}
/**
* @Route("/fr/videos/album/id/3/label/17eme-congres-national-6eme-congres-maghrebin-d-urologie")
*/
public function oldLinkAlbum()
{
return $this->redirectToRoute('app_accueil');
}
/**
* @Route("/uploads/FCK_files/doc/PIIS0302283817302671.pdf")
*/
public function oldLinkPdf()
{
return $this->redirectToRoute('app_accueil');
}
/**
* @Route("/uploads/FCK_files/doc/PIIS0302283817305225.pdf")
*/
public function oldLinkPdf2()
{
return $this->redirectToRoute('app_accueil');
}
/**
* @Route("/fr/11/comite-d-oncologie")
*/
public function oldLinkComite()
{
return $this->redirectToRoute('app_comites');
}
/**
* @Route("/fr/1/bureau-atu")
*/
public function oldLinkBureau()
{
return $this->redirectToRoute('app_bureau');
}
/**
* @Route("/uploads/FCK_files/file/prog de poche ATU.pdf")
*/
public function oldLinkPdf3()
{
return $this->redirectToRoute('app_accueil');
}
/**
* @Route("/", name="app_accueil")
*/
public function index(EventRepository $eventRepository, Request $request, SlidesRepository $slidesrepository, VideoRepository $videoRepository, ComiteRepository $comiterepository, MemberComiteCategorieRepository $memberComiteCategorie, MemberComiteRepository $memberComiteRepository): Response
{
$videos = $videoRepository->findAllDesc();
$touscongres = $this->repository->findAll([],['id','DESC']);
$events=$eventRepository->findBy(['categorie'=>'national'],['startDate'=>'ASC']);
$eventsInter=$eventRepository->findBy(['categorie'=>'international'],['startDate'=>'DESC']);
$comite = $comiterepository->findAll();
$memberComiteCategorie = $memberComiteCategorie->findAll();
$slides = $slidesrepository->findBy(['language'=>$request->getLocale()]);
$memberComite = $memberComiteRepository->findAll();
return $this->render('frontend/frontindex/add.html.twig', [
'controller_name' => 'FrontindexController', 'touscongres' => $touscongres, 'videos' => $videos, 'comites' => $comite,'memberComiteCategories'=>$memberComiteCategorie,'memberComites'=>$memberComite,
'slides'=>$slides,'eventsATU'=>$events,'eventsInter'=>$eventsInter
]);
}
/**
* @Route("/fr/congres/article/29/15eme-congres-panafricain-d-urologie-22eme-congres-tunisien-d-urologie")
*/
public function oldLinkCongresPausa()
{
return $this->redirectToRoute('details_congres',['id'=>3]);
}
/**
* @Route("/fr/congres/article/29/15eme-congres-pan-africain-d-urologie-22eme-congres-tunisien-d-urologie")
*/
public function oldLinkCongresPausa2()
{
return $this->redirectToRoute('details_congres',['id'=>3]);
}
/**
* @Route("/fr/inscription")
*/
public function oldLinkInscription()
{
return $this->redirectToRoute('app_register');
}
/**
* @Route("/change_locale/{locale}", name="app_change_locale")
*/
public function changeLocale($locale, Request $request): Response
{
$request->getSession()->set('_locale', $locale);
$request->setLocale($locale);
return $this->redirect($request->headers->get('referer'));
}
/**
* @Route("/{id}/atelier-participation", name="app_participation_atelier")
*/
public function particpationAuAtelier(Request $request, $id, AtelierParicipantRepository $atelierParicipantRepository, CongresRepository $congresRepository, AtelierRepository $atelierRepository, EntityManagerInterface $em)
{
$congres = $congresRepository->findOneBy(['id'=>$id]);
$ateliers = $atelierRepository->findBy(['congres'=>$congres], ['date'=>'ASC','heureDeb'=>'ASC']);
$currentDate = new \DateTime();
if ($request->isMethod('post')){
$nom = $request->request->get('nom');
$prenom = $request->request->get('prenom');
$email = $request->request->get('email');
$tel = $request->request->get('tel');
$existeParticipant = $atelierParicipantRepository->findOneBy(['email'=>$email]);
if (!empty($existeParticipant)){
$this->addFlash('danger','Il existe une participation avec cet email. Merci de vérifier');
return $this->redirectToRoute('app_participation_atelier', ['id'=>$congres->getId()], Response::HTTP_SEE_OTHER);
}
else{
$particpant = new AtelierParicipant();
$particpant->setNom($nom);
$particpant->setPrenom($prenom);
$particpant->setEmail($email);
$particpant->setTel($tel);
$particpant->setCreatedAt(new \DateTimeImmutable());
$em->persist($particpant);
$em->flush();
global $type;
foreach ($ateliers as $atelier) {
$atelierChecked = $request->request->get('atelier'.$atelier->getId());
if($atelierChecked != NULL){
$type = $request->request->get('type');
if($type == 'resident'){
$QUERY1="INSERT INTO `atelier_paricipant_atelier`(`atelier_paricipant_id`, `atelier_id`, `membre`, `resident`, `nonMembre`) VALUES ('".$particpant->getId()."',' ".$atelier->getId()."','0','1','0')";
$stat1 = $em->getConnection()->prepare($QUERY1);
$stat1->execute();
}
elseif($type == 'membre'){
$QUERY2="INSERT INTO `atelier_paricipant_atelier`(`atelier_paricipant_id`, `atelier_id`, `membre`, `resident`, `nonMembre`) VALUES ('".$particpant->getId()."',' ".$atelier->getId()."','1','0','0')";
$stat2 = $em->getConnection()->prepare($QUERY2);
$stat2->execute();
}
elseif($type == 'nonMembre'){
$QUERY3="INSERT INTO `atelier_paricipant_atelier`(`atelier_paricipant_id`, `atelier_id`, `membre`, `resident`, `nonMembre`) VALUES ('".$particpant->getId()."',' ".$atelier->getId()."','0','0','1')";
$stat3 = $em->getConnection()->prepare($QUERY3);
$stat3->execute();
}
$atelier->setnbPlaceAtteint($atelier->getNbPlaceAtteint()+1 );
$em->persist($atelier);
$em->flush();
}
}
$this->addFlash('success','Votre inscription est enregistrée!');
return $this->redirectToRoute('app_participation_atelier', ['id'=>$congres->getId()], Response::HTTP_SEE_OTHER);
}
}
return $this->render('frontend/frontindex/atelierParticipant.html.twig', [
'controller_name' => 'FrontindexController','ateliers'=>$ateliers,'congres'=>$congres,'currentDate'=>$currentDate
]);
}
/**
* @Route("/bureau", name="app_bureau")
*/
public function bureau(ComiteRepository $Comiterepository)
{
$comite = $Comiterepository->findAll();
return $this->render('frontend/frontindex/bureau.html.twig', [
'controller_name' => 'FrontindexController', 'comites' => $comite
]);
}
/**
* @Route("/comites", name="app_comites")
*/
public function comites(MemberComiteCategorieRepository $memberComiteCategorie, MemberComiteRepository $memberComiteRepository)
{$memberComiteCategorie = $memberComiteCategorie->findAll();
$memberComite = $memberComiteRepository->findAll();
return $this->render('frontend/frontindex/comites.html.twig', [
'controller_name' => 'FrontindexController','memberComiteCategories'=>$memberComiteCategorie,'memberComites'=>$memberComite
]);
}
/**
* @Route("/list-news", name="app_list_news")
*/
public function listNews(NewsRepository $newsRepository, PaginatorInterface $paginator,Request $request): Response
{
$news=$newsRepository->findAllDesc();
$news= $paginator->paginate($news, $request->query->getInt('page', 1),12 );
return $this->render('frontend/frontindex/listNews.html.twig', [
'news' => $news,
]);
}
/**
* @Route("/media-videos", name="app_list_media_video", methods={"GET"})
*/
public function listMediaVideo(VideoRepository $videoRepository,Request $request, PaginatorInterface $paginator): Response
{
$videos=$videoRepository->findAllDesc();
$videos= $paginator->paginate($videos, $request->query->getInt('page', 1),9 );
return $this->render('frontend/frontindex/listMediaVideo.html.twig', [
'medias' => $videos,
]);
}
/**
* @Route("/fr/videos")
*/
public function oldLinkVideo()
{
return $this->redirectToRoute('app_list_media_video');
}
/**
* @Route("/histoire", name="app_front_history")
*/
public function history(): Response
{
return $this->render('frontend/frontindex/history.html.twig');
}
/**
* @Route("/flyers", name="app_flyers", methods={"GET"})
*/
public function flyersPatient(FlyersRepository $flyersRepository,Request $request, PaginatorInterface $paginator): Response
{
$flyers=$flyersRepository->findAllDesc();
$flyers= $paginator->paginate($flyers, $request->query->getInt('page', 1),9 );
return $this->render('frontend/frontindex/flyers.html.twig', [
'flyers' => $flyers,
]);
}
/**
* @Route("/video-educative-patient", name="app_video_educative_patient", methods={"GET"})
*/
public function VideoEducativePatient(VideoRepository $videoRepository,Request $request, PaginatorInterface $paginator): Response
{
$videos=$videoRepository->findEducationalVideoDesc();
$videos= $paginator->paginate($videos, $request->query->getInt('page', 1),9 );
return $this->render('frontend/frontindex/videoEducativePatient.html.twig', [
'medias' => $videos,
]);
}
/**
* @Route("/information-general-patient", name="app_information_general_patient")
*/
public function InformationGeneralPatient(): Response
{
return $this->render('frontend/frontindex/informationGeneralPatient.html.twig', [
]);
}
/**
* @Route("/media-gallery", name="app_list_media_gallery", methods={"GET"})
*/
public function listMediaGallery(ImageMediaRepository $imageMediaRepository, Request $request, PaginatorInterface $paginator): Response
{
$images=$imageMediaRepository->findAll();
// $images= $paginator->paginate($images, $request->query->getInt('page', 1),6 );
$yearImage= $imageMediaRepository->findImageByYear();
$categorieImage= $imageMediaRepository->findImageByCategorie();
// var_dump($categorieImage);
// die();
return $this->render('frontend/frontindex/listMediaImage.html.twig', [
'medias' => $images,'yearImage'=>$yearImage,'categorieImages'=>$categorieImage
]);
}
/**
* @Route("/past-presedent", name="app_front_past_presedent")
*/
public function pastPresedent(): Response
{
return $this->render('frontend/frontindex/pastPresedent.html.twig');
}
/**
* @Route("/urologists-list", name="app_front_urologists_list")
*/
public function urologistList(): Response
{
return $this->render('frontend/frontindex/urologistList.html.twig');
}
/**
* @Route("/recommandationNational", name="app_recommandation_national")
*/
public function recommandationNational(Request $request, RecommandationRepository $recommandationRepository, PaginatorInterface $paginator)
{
$recommandation = $recommandationRepository->findBy(['type'=>'national']);
$recomm= $paginator->paginate($recommandation, $request->query->getInt('page', 1), 6);
return $this->render('frontend/frontindex/recommandationNational.html.twig', [
'controller_name' => 'FrontindexController', 'recommandations' => $recomm
]);
}
/**
* @Route("/eventInternationaux", name="evenement_internationaux")
*/
public function CongresIntern(Request $request,EntityManagerInterface $em,PaginatorInterface $paginator,EventRepository $eventrepository)
{
// $touscongres=$eventrepository->findBydateDesc($request->getLocale());
$touscongres=$eventrepository->findBy(['categorie'=>'international'],['startDate'=>'DESC']);
// $touscongres = $paginator->paginate(
// // Doctrine Query, not results
// $touscongres,
// // Define the page parameter
// $request->query->getInt('page', 1),
// // Items per page
// 6);
$dateNow = new \DateTime();
return $this->render('frontend/frontindex/eventInternationaux.html.twig' ,array('touscongres'=> $touscongres,'dateNow'=>$dateNow));
}
/**
* @Route("/college", name="college")
*/
public function college(Request $request,EntityManagerInterface $em,PaginatorInterface $paginator,EventRepository $eventrepository)
{
return $this->render('frontend/frontindex/college.html.twig' ,array());
}
/**
* @Route("/eventHiver", name="evenement_hiver")
*/
public function eventHiver(Request $request,EntityManagerInterface $em,PaginatorInterface $paginator,EventRepository $eventrepository)
{
$touscongres=$eventrepository->findBy(array('categorie' => 'journée d\'hiver'));
$touscongres = $paginator->paginate(
// Doctrine Query, not results
$touscongres,
// Define the page parameter
$request->query->getInt('page', 1),
// Items per page
6);
return $this->render('frontend/frontindex/eventHiver.html.twig' ,array('touscongres'=> $touscongres));
}
/**
* @Route("/eventPrintemps", name="evenement_printemp")
*/
public function eventPrintemp(Request $request,EntityManagerInterface $em,PaginatorInterface $paginator,EventRepository $eventrepository)
{
$touscongres=$eventrepository->findBy(array('categorie' => 'journée du printemps'));
$touscongres = $paginator->paginate(
// Doctrine Query, not results
$touscongres,
// Define the page parameter
$request->query->getInt('page', 1),
// Items per page
6);
return $this->render('frontend/frontindex/eventPrintemp.html.twig' ,array('touscongres'=> $touscongres));
}
/**
* @Route("/event-details/{id}", name="details_event")
* @param Congres $congres
* @param Request $request
* @return \Symfony\Component\HttpFoundation\Response
*/
public function detailsCongres(Event $event,Request $request,$id,EntityManagerInterface $em,EventRepository $repository)
{
$congres = $repository->find($id);
return $this->render('frontend/frontindex/detailsEvent.html.twig', array('congres'=>$congres));
}
/**
* @Route("/addImageQrCodeeee", name="addImageQrCode")
*/
public function addImageQrCode(Request $request,EntityManagerInterface $em, SlidesRepository $slidesrepository, VideoRepository $videoRepository, ComiteRepository $comiterepository, MemberComiteCategorieRepository $memberComiteCategorie, MemberComiteRepository $memberComiteRepository)
{
$videos = $videoRepository->findBy(['language'=>$request->getLocale()]);
$touscongres = $this->repository->findAll();
$comite = $comiterepository->findAll();
$memberComiteCategorie = $memberComiteCategorie->findAll();
$slides = $slidesrepository->findBy(['language'=>$request->getLocale()]);
$memberComite = $memberComiteRepository->findAll();
$image = new ImageMedia();
$image->setDate(new \DateTime("now"));
$image->setImage('jjjjj.png');
$image->setLabel('testQrCode');
$em->persist($image);
$em->flush();
return $this->render('frontend/frontindex/add.html.twig', [
'controller_name' => 'FrontindexController', 'touscongres' => $touscongres, 'videos' => $videos, 'comites' => $comite,'memberComiteCategories'=>$memberComiteCategorie,'memberComites'=>$memberComite,
'slides'=>$slides
]);
}
/**
* @Route("/recommandationInternational", name="app_recommandation_international")
*/
public function recommandationInternational(Request $request, RecommandationRepository $recommandationRepository,PaginatorInterface $paginator)
{
$recommandation = $recommandationRepository->findBy(['type'=>'international']);
$recomm= $paginator->paginate($recommandation, $request->query->getInt('page', 1), 6);
return $this->render('frontend/frontindex/recommandationInternational.html.twig', [
'controller_name' => 'FrontindexController', 'recommandations' => $recomm
]);
}
/**
* @Route("/revuescientifique", name="app_revue_scientifique")
*/
public function revueScientifique(Request $request, RevueScientifiqueRepository $revueScientifiqueRepository, PaginatorInterface $paginator)
{
$revues = $revueScientifiqueRepository->findByIdDesc();
$revuesScientifique= $paginator->paginate($revues, $request->query->getInt('page', 1),6 );
return $this->render('frontend/frontindex/revuescientifique.html.twig', [
'controller_name' => 'FrontindexController', 'revues' => $revuesScientifique
]);
}
/**
* @Route("/a-propos", name="app_a_propos")
*/
public function a_propos()
{
return $this->render('frontend/frontindex/a_propos.html.twig', [
'controller_name' => 'FrontindexController',
]);
}
/**
* @Route("/statutsducomite", name="statuts_comite")
*/
public function Statutscomite()
{
return $this->render('frontend/frontindex/statutsDuComite.html.twig', [
'controller_name' => 'FrontindexController',
]);
}
/**
* @Route("/relations", name="relations")
*/
public function Relations()
{
return $this->render('frontend/frontindex/relations.html.twig', [
'controller_name' => 'FrontindexController',
]);
}
}