src/Controller/Backend/AbstractInscriptionController.php line 110

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Backend;
  3. use App\Entity\AbstractInscription;
  4. use App\Entity\User;
  5. use App\Form\AbstractInscription\AbstractInscriptionType;
  6. use App\Repository\AbstractInscriptionRepository;
  7. use App\Repository\CongresRepository;
  8. use App\Repository\PaysRepository;
  9. use App\Repository\UserRepository;
  10. use Doctrine\ORM\EntityManagerInterface;
  11. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  12. use Symfony\Component\HttpFoundation\Request;
  13. use Symfony\Component\HttpFoundation\Response;
  14. use Symfony\Component\Routing\Annotation\Route;
  15. use Symfony\Component\PasswordHasher\Hasher\UserPasswordHasherInterface;
  16. // /**
  17. //  * @Route("/abstract/inscription")
  18. //  */
  19. class AbstractInscriptionController extends AbstractController
  20. {
  21.     /**
  22.      * @Route("/admin/abstract/inscription", name="app_abstract_inscription_index", methods={"GET"})
  23.      */
  24.     public function index(AbstractInscriptionRepository $abstractInscriptionRepository): Response
  25.     {
  26.         return $this->render('backend/abstract_inscription/index.html.twig', [
  27.             'abstract_inscriptions' => $abstractInscriptionRepository->findAll(),
  28.         ]);
  29.     }
  30.  
  31.      /**
  32.      * @Route("/abstract/congress/{id}/new", name="app_abstract_congress_new", methods={"GET", "POST"})
  33.      */
  34.     public function new(EntityManagerInterface $em , $id,Request $request,UserRepository $userrepository, UserPasswordHasherInterface $userPasswordHasher, PaysRepository $paysRepository, CongresRepository $congresRepository, AbstractInscriptionRepository $abstractInscriptionRepository): Response
  35.     {   
  36.       
  37.         $abstractInscription = new AbstractInscription();
  38.         // $user= new User();
  39.         $pays = $paysRepository->findAll();
  40.         // var_dump($pays);
  41.         //     die();
  42.         // $form = $this->createForm(AbstractInscriptionType::class, $abstractInscription);
  43.         // $form->handleRequest($request);
  44.         $congres= $congresRepository->findOneBy(['id'=>$id]);
  45.         if ($request->isMethod('post')) {
  46.             
  47.             if ($abstractInscriptionRepository->findOneBy(['email'=>$request->request->get('email')])!=null){
  48.                 if($request->getLocale('fr')){
  49.                     $this->addFlash('danger', 'email déja utilisé');
  50.                 }else{
  51.                     $this->addFlash('danger', 'email already used');
  52.                 }
  53.                 return $this->render('backend/abstract_inscription/new.html.twig', ['congres'=>$congres
  54.                 ]);
  55.                }
  56.                 // encode the plain password.
  57.                 $abstractInscription->setPassword(
  58.                 $userPasswordHasher->hashPassword(
  59.                         $abstractInscription,
  60.                         $request->request->get('plainPassword')
  61.                     )
  62.                 );
  63.                 $pay=$paysRepository->findOneBy(['id'=>$request->request->get('pays')]);
  64.                 // var_dump($request->request->get('sousSpecialite'));
  65.                 // die();
  66.                 // $user->setNom($request->request->get('nom'));
  67.                 // $user->setPrenom($request->request->get('prenom'));
  68.                 // $user->setEmail($request->request->get('email'));
  69.                 // $user->setSpecialite($request->request->get('specialite'));
  70.                 // $user->setAddresse($request->request->get('addresse'));
  71.                 // $user->setPays($request->request->get('pays'));
  72.                 // $user->setSousSpecialite($request->request->get('sousSpecialite'));
  73.                 // $user->setTitre($request->request->get('titre'));
  74.                 // $user->setVerifCode($this->generateVerifCode());
  75.                 // $user->setVerified(0);
  76.                 // $user->setRoles(["ROLE_ABSTRACT_USER"]);
  77.                 $abstractInscription->setNom($request->request->get('nom'));
  78.                 $abstractInscription->setPrenom($request->request->get('prenom'));
  79.                 $abstractInscription->setEmail($request->request->get('email'));
  80.                 // $abstractInscription->setTitle($request->request->get('title'));
  81.                 $abstractInscription->setCivilite($request->request->get('civilite'));
  82.                 $abstractInscription->setSpecialite($request->request->get('specialite'));
  83.                 $abstractInscription->setAdresse($request->request->get('addresse'));
  84.                 $abstractInscription->setPays($pay);
  85.                 $abstractInscription->setSubSpecialite($request->request->get('sousSpecialite'));
  86.                 $abstractInscription->setTitle($request->request->get('titre'));
  87.                 $abstractInscription->setCongres($congres);
  88.                 $abstractInscription->setCreatedAt(new \DateTime('now'));
  89.                 $abstractInscription->setVerifCode($this->generateVerifCode());
  90.                 // $em->persist($user);
  91.               
  92.                 $em->persist($abstractInscription);
  93.                 $em->flush();
  94.                 if($request->getLocale()=='fr'){
  95.                     $this->addFlash('success','Votre inscription est effectuée avec succès! Vous pouvez maintenant soumettre votre résumé');
  96.                 }
  97.                 if($request->getLocale()=='en'){
  98.                     $this->addFlash('success','Your registration is successful! Now you can submit your abstract');
  99.                 }
  100.              
  101.             return $this->redirectToRoute('details_congres', ['id'=>$congres->getId()], Response::HTTP_SEE_OTHER);
  102.         }
  103.         return $this->renderForm('backend/abstract_inscription/new.html.twig', [
  104.             'abstract_inscription' => $abstractInscription,'congres'=>$congres,'pays'=>$pays
  105.             // 'form' => $form,'
  106.         ]);
  107.     }
  108.     //    /**
  109.     //  * @Route("/abstract/abstract/{id}/new", name="app_abstract_abstract_new", methods={"GET", "POST"})
  110.     //  */
  111.     // public function new($id,Request $request, AbstractInscriptionRepository $abstractInscriptionRepository, CongresRepository $congresRepository): Response
  112.     // {   
  113.       
  114.     //     $abstractInscription = new AbstractInscription();
  115.     //     $user= new User();
  116.     //     $form = $this->createForm(AbstractInscriptionType::class, $abstractInscription);
  117.     //     $form->handleRequest($request);
  118.     //     $congres= $congresRepository->findOneBy(['id'=>$id]);
  119.     //     if ($form->isSubmitted() && $form->isValid()) {
  120.             
  121.     //         $tousInscription= $abstractInscriptionRepository->findBy(['congres'=>$congres->getId(),'email'=>$abstractInscription->getEmail()]);
  122.     //         if(empty($tousInscription)){
  123.     //             $abstractInscription->setCongres($congres);
  124.     //             $abstractInscriptionRepository->add($abstractInscription, true);
  125.     //             if($request->getLocale()=='fr'){
  126.     //                 $this->addFlash('success','Votre inscription est effectuée avec succès!, merci de vérifier votre boite mail pour soumettre votre abstract');
  127.     //             }
  128.     //             if($request->getLocale()=='en'){
  129.     //                 $this->addFlash('success','Your registration is successful!, please check your mailbox to submit your abstract');
  130.     //             }
  131.     //         }
  132.     //         elseif(!empty($tousInscription)){
  133.     //             if($request->getLocale()=='fr'){
  134.     //                 $this->addFlash('success','Vous avez déja inscrit, merci de vérifier votre boite mail pour soumettre votre abstract ');
  135.     //             }
  136.     //             if($request->getLocale()=='en'){
  137.     //                 $this->addFlash('success','You have already registered, please check your mailbox to submit your abstract');
  138.     //             }
  139.     //         }
  140.                 
  141.              
  142.     //         return $this->redirectToRoute('details_congres', ['id'=>$congres->getId()], Response::HTTP_SEE_OTHER);
  143.     //     }
  144.     //     return $this->renderForm('backend/abstract_inscription/new.html.twig', [
  145.     //         'abstract_inscription' => $abstractInscription,
  146.     //         'form' => $form,
  147.     //     ]);
  148.     // }
  149.     /**
  150.      * @Route("admin/abstract/inscription/{id}", name="app_abstract_inscription_show", methods={"GET"})
  151.      */
  152.     public function show(AbstractInscription $abstractInscription): Response
  153.     {
  154.         return $this->render('backend/abstract_inscription/show.html.twig', [
  155.             'abstract_inscription' => $abstractInscription,
  156.         ]);
  157.     }
  158.     function generateVerifCode(){
  159.         $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
  160.         $randstring = '';
  161.         for ($i = 0; $i < 15; $i++) {
  162.             $randstring .= $characters[rand(0, strlen($characters)-1)];
  163.             }
  164.         return $randstring;
  165.         
  166.     }
  167.     /**
  168.      * @Route("admin/abstract/inscription/{id}/edit", name="app_abstract_inscription_edit", methods={"GET", "POST"})
  169.      */
  170.     public function edit(Request $request, AbstractInscription $abstractInscription, AbstractInscriptionRepository $abstractInscriptionRepository): Response
  171.     {
  172.         $form = $this->createForm(AbstractInscriptionType::class, $abstractInscription);
  173.         $form->handleRequest($request);
  174.         if ($form->isSubmitted() && $form->isValid()) {
  175.             $abstractInscriptionRepository->add($abstractInscription, true);
  176.             return $this->redirectToRoute('app_abstract_inscription_index', [], Response::HTTP_SEE_OTHER);
  177.         }
  178.         return $this->renderForm('backend/abstract_inscription/edit.html.twig', [
  179.             'abstract_inscription' => $abstractInscription,
  180.             'form' => $form,
  181.         ]);
  182.     }
  183.     /**
  184.      * @Route("admin/abstract/inscription/{id}", name="app_abstract_inscription_delete", methods={"POST"})
  185.      */
  186.     public function delete(Request $request, AbstractInscription $abstractInscription, AbstractInscriptionRepository $abstractInscriptionRepository): Response
  187.     {
  188.         if ($this->isCsrfTokenValid('delete'.$abstractInscription->getId(), $request->request->get('_token'))) {
  189.             $abstractInscriptionRepository->remove($abstractInscription, true);
  190.         }
  191.         return $this->redirectToRoute('app_abstract_inscription_index', [], Response::HTTP_SEE_OTHER);
  192.     }
  193.     
  194. }