src/Controller/FrontController.php line 27

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Entraineur;
  4. use App\Entity\Rencontre;
  5. use App\Form\EntraineurType;
  6. use App\Form\InstallationType;
  7. use App\Repository\RencontreRepository;
  8. use App\Service\FileUploader;
  9. use DateTime;
  10. use DateTimeZone;
  11. use Doctrine\ORM\EntityManagerInterface;
  12. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  13. use Symfony\Component\HttpFoundation\BinaryFileResponse;
  14. use Symfony\Component\HttpFoundation\Request;
  15. use Symfony\Component\HttpFoundation\Response;
  16. use Symfony\Component\Routing\Annotation\Route;
  17. use Symfony\Component\Security\Core\Encoder\UserPasswordEncoderInterface;
  18. use Symfony\Component\Security\Http\Authentication\AuthenticationUtils;
  19. class FrontController extends AbstractController
  20. {
  21.     /**
  22.      * @Route("/", name="index")
  23.      */
  24.     public function index()
  25.     {
  26.         ///////////////////// LUNDI 06 DECEMBRE 2021, 15H51 ///////////////////////
  27.         /////// https://duckduckgo.com/?t=ffab&q=symfony+binaryfileresponse&ia=web
  28.         /////// https://symfony.com/doc/current/components/http_foundation.html#serving-files
  29.         /////// if you are serving a static file, you can use a BinaryFileResponse: 
  30.         //return $this->redirectToRoute('connexion');
  31.         return $this->render('front/index.html.twig');
  32.     }
  33.     /**
  34.      * @Route("/EXinstallation", name="EXindex")
  35.      */
  36.     public function installation()
  37.     {
  38.         $myForm $this->createForm(InstallationType::class);
  39.         return $this->render('front/installation.html.twig', [
  40.             'myForm' => $myForm->createView()
  41.         ]);
  42.     }
  43.     /**
  44.      * @Route("/DSSinscription", name="inscription")
  45.      * @Route("/DSSregistration", name="CDFASregistration")
  46.      */
  47.     public function inscription(Request $requestEntityManagerInterface $managerUserPasswordEncoderInterface $encoderFileUploader $fileUploader)
  48.     {
  49.         $entraineur = new Entraineur();
  50.         $myForm $this->createForm(EntraineurType::class, $entraineur);
  51.         $myForm->handleRequest($request);
  52.         // dump($request);
  53.         // dump($request->getHost());
  54.         // dump($request->getRequestUri());
  55.         // dump($request->attributes->get('_route'));
  56.         if($myForm->isSubmitted() && $myForm->isValid())
  57.         {
  58.             $passwordCrypte $encoder->encodePassword($entraineur$entraineur->getPassword());
  59.             $entraineur->setPassword($passwordCrypte);
  60.             $entraineur->setRoles( ['ROLE_USER'] );
  61.             
  62.             $uploadedImageFile $myForm->get('image')->getData();
  63.             if ($uploadedImageFile)
  64.             {    
  65.                 $storedImageFile $fileUploader->upload(
  66.                     $uploadedImageFile,
  67.                     $this->getParameter('coaches_directory')
  68.                 );
  69.                 $entraineur->setImage($storedImageFile->getFilename());
  70.             }
  71.             
  72.             $uploadedImageFileII $myForm->get('clubLogo')->getData();
  73.             if ($uploadedImageFileII)
  74.             {    
  75.                 $storedImageFile $fileUploader->upload(
  76.                     $uploadedImageFileII,
  77.                     $this->getParameter('clubs_directory')
  78.                 );
  79.                 $entraineur->setClubLogo($storedImageFile->getFilename());
  80.             }
  81.             $manager->persist($entraineur);
  82.             $manager->flush();
  83.             //if($request->attributes->get('_route') == 'CDFASregistration')
  84.                 //return $this->redirectToRoute('login');
  85.             
  86.             return $this->redirectToRoute('connexion');
  87.             
  88.         }
  89.         return $this->render('front/inscription.html.twig', [
  90.             'myForm' => $myForm->createView()
  91.         ]);
  92.     }
  93.     
  94.     /**
  95.      * @Route("/connexion", name="connexion")
  96.      */
  97.     public function connexion(AuthenticationUtils $utilRequest $request)
  98.     {
  99.         if( $request->getHost() == 'cdfas.datasports.fr')
  100.             return $this->render('front/connexionCDFAS.html.twig', [
  101.                 'lastUserName' => $util->getLastUsername(),
  102.                 'error' => $util->getLastAuthenticationError()
  103.             ]);
  104.             
  105.         return $this->render('front/connexion.html.twig', [
  106.             'lastUserName' => $util->getLastUsername(),
  107.             'error' => $util->getLastAuthenticationError()
  108.         ]);
  109.     }
  110.     
  111.     /**
  112.      * @Route("/deconnexion", name="deconnexion")
  113.      */
  114.     public function deconnexion()
  115.     {
  116.         dump('test/test/test');
  117.         $this->addFlash('adios''A la prochaine');
  118.         //return $this->redirectToRoute('connexion');
  119.     }
  120.     
  121.     /**
  122.      * @Route("/my/cron", name="trainingLoadCron")
  123.      */
  124.     public function trainingLoadCron(RencontreRepository $rencontreRepoRequest $requestEntityManagerInterface $manager)
  125.     {
  126.         $dateHeureCurrent = new DateTime('now', new DateTimeZone('Europe/Paris'));
  127.         $dateHeureNext    = new DateTime('now', new DateTimeZone('Europe/Paris')); 
  128.         $dateHeureNext->modify('+90 minutes');
  129.         $comingTrainingList $rencontreRepo->findAllComingTrainings();
  130.         dump($comingTrainingList);
  131.         ///////   "https://test2.datasports.fr"
  132.         define('DNS'$request->getSchemeAndHttpHost() );
  133.         $headers "MIME-Version: 1.0" "\r\n";
  134.             $headers .= "Content-type:text/html;charset=UTF-8" "\r\n";
  135.             $headers .= 'From: <noreply@test.datasports.fr>' "\r\n";
  136.         $from    'noreply@test.datasports.fr';
  137.         $subject 'DATASPORTS >> FORMUL\'R DE CHARGE D\'ENTRAINEMENT >> A REMPLIR !!!';
  138.         $message '';
  139.         foreach($comingTrainingList as $oneTraining)
  140.         {
  141.             ///////  "555"
  142.             $trainingID $oneTraining->getId();
  143.             foreach(  $oneTraining->getEquipe()->getJoueurList()  as $oneJoueur )
  144.             {
  145.                 ////////  "8c8ac29a4f0cbd394ab8377ad30163d3"
  146.                 $token md5
  147.                     $oneJoueur->getEmail() 
  148.                     . '#Training#' 
  149.                     $oneJoueur->getDateNaissance()->format('Y-m-d'
  150.                     . '#Training#' 
  151.                     $trainingID 
  152.                 );
  153.                 //////////////  "/my/stats/trainingLoadLogin/555/8c8ac29a4f0cbd394ab8377ad30163d3"
  154.                 $urlBasic $this->generateUrl('trainingLoadLogin', [
  155.                     'myRencontreId' => $trainingID
  156.                     'myPlayerToken' => $token]
  157.                 );
  158.                 /////////  "https://test2.datasports.fr/my/stats/trainingLoadLogin/555/8c8ac29a4f0cbd394ab8377ad30163d3"
  159.                 $urlFinal DNS $urlBasic;
  160.                 
  161.                 $to $oneJoueur->getEmail();
  162.                 $genre $oneJoueur->getGenre() ? 'Mr' 'Mme';
  163.                 $nomPrenom $oneJoueur->getNomPrenom();
  164.                 $trainingDate $oneTraining->getDate()->format('d/m/Y');
  165.                 $trainingHour $oneTraining->getHeure()->format('H:i');
  166.                 $emailing $oneTraining->getEmailing();
  167.                 if( $emailing == Rencontre::NOMAILS  ||  $emailing == null  )
  168.                 {
  169.                     $subject "DataSports >> Charge d'Entraînement ($trainingDate - 1/2) >> A REMPLIR !!!";
  170.                     $message "
  171.                         Bonjour $genre $nomPrenom,<br>
  172.                         Veuillez remplir le PREMIER formulaire de charge d'entra&icirc;nement,<br> 
  173.                         la charge de pré-entra&icirc;nement<br>
  174.                         si possible AVANT l'entra&icirc;nement<br>
  175.                         la séance d'entra&icirc;nement du $trainingDate &agrave; $trainingHour, svp :
  176.                         <br><br>
  177.                             <a href=\"$urlFinal\">$urlFinal</a>
  178.                         <br><br>
  179.                         Cordialement<br><br>
  180.                         NOTE : Un second formulaire vous sera envoyé après cet entra&icirc;nement,<br> 
  181.                         soyez donc présent et réactif pour ainsi ne pas decevoir votre chère entra&icirc;neur.
  182.                     ";
  183.                 }
  184.                 elseif( $emailing == Rencontre::PRETRAINING )
  185.                 {
  186.                     $subject "DataSports >> Charge d'Entraînement ($trainingDate - Suite et Fin) >> A REMPLIR !!!";
  187.                     $message "
  188.                         Bonjour $genre $nomPrenom,<br>
  189.                         Veuillez remplir le DERNIER formulaire de charge d'entra&icirc;nement,<br> 
  190.                         la charge de post-entra&icirc;nement<br>
  191.                         en toute logique APRES l'entra&icirc;nement<br>
  192.                         la séance d'entra&icirc;nement du $trainingDate &agrave; $trainingHour, svp :
  193.                         <br><br>
  194.                             <a href=\"$urlFinal\">$urlFinal</a>
  195.                         <br><br>
  196.                         Cordialement
  197.                     ";
  198.                 }
  199.                 if(  $to == 'jamaliss@hotmail.fr'  ||  $to == 'mamssan@gmail.com' || $to == 'oxyprop@gmail.com' || $to == 'racine@neuf.fr' )
  200.                     mail(  $to$subject,  $message,  $headers  );
  201.                 
  202.                 dump($urlFinal);
  203.             }
  204.             $oneTraining->emailNextStep();
  205.             $manager->persist($oneTraining);
  206.             dump($oneTraining);
  207.         }
  208.         $manager->flush();
  209.         return new Response('<!DOCTYPE html><html>'
  210.             .'<head><title>Cron Job of DSS</title></head>'
  211.             .'<body>'
  212.             .$dateHeureCurrent->format('Y-m-d H:i:s')
  213.             .'<br>'
  214.             .$dateHeureNext->format('Y-m-d H:i:s')
  215.             .'<br>'
  216.             .'<br>'
  217.             .'<br>'
  218.             $message
  219.             .'<br>'
  220.             .'<br>'
  221.             .'</body></html>');
  222.     }
  223. }