src/Controller/HomeController.php line 30

  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Chapitre;
  4. use App\Entity\Cours;
  5. use App\Entity\Lesson;
  6. use App\Entity\Media;
  7. use App\Entity\Quiz;
  8. use App\Repository\CategorieRepository;
  9. use App\Repository\CoursRepository;
  10. use App\Repository\EleveRepository;
  11. use App\Repository\EnseignantRepository;
  12. use App\Repository\PaymentMethodRepository;
  13. use App\Repository\QuizRepository;
  14. use App\Service\FileUploader;
  15. use Doctrine\ORM\EntityManagerInterface;
  16. use Faker\Factory;
  17. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  18. use Symfony\Component\HttpFoundation\Response;
  19. use Symfony\Component\Mailer\Exception\TransportExceptionInterface;
  20. use Symfony\Component\Mailer\MailerInterface;
  21. use Symfony\Component\Mime\Email;
  22. use Symfony\Component\Routing\Annotation\Route;
  23. use Symfony\Component\String\Slugger\SluggerInterface;
  24. class HomeController extends AbstractController
  25. {
  26.     #[Route('/home'name'app_home')]
  27.     public function index(EnseignantRepository $enseignantRepositoryEleveRepository $eleveRepository): Response
  28.     {
  29.         if ($enseignantRepository->findOneBy(['utilisateur' => $this->getUser()]) !== null) {
  30.             return $this->redirectToRoute('app_instructor_home');
  31.         }
  32.         elseif ($eleveRepository->findOneBy(['utilisateur' => $this->getUser()]) !== null) {
  33.             return $this->redirectToRoute('app_student_home');
  34.         }
  35.         return $this->redirectToRoute('app_admin_dashboard');
  36.     }
  37.     #[Route('/add-defaul-courses'name'app_add_def_courses')]
  38.     public function courses(EnseignantRepository $erQuizRepository $quizRepositoryPaymentMethodRepository $paymentMethodRepositoryFileUploader $fileUploaderCategorieRepository $categorieRepositoryEntityManagerInterface $emCoursRepository $crSluggerInterface $sluggerInterface)
  39.     {
  40.         $faker Factory::create('fr_FR');
  41.         $enseignant $er->findOneBy([]);
  42.         $categories $categorieRepository->findAll();
  43.         $paymentsMethods $paymentMethodRepository->findAll();
  44.         for ($i 0$i 20$i++) {
  45.             $cours = new Cours();
  46.             $intitule $faker->sentence(6);
  47.             $media = new Media();
  48.             $media->setImageFile("01-641f0ad1daef2.jpg");
  49.             $numberOfLessons 12;
  50.             $cours->setIntitule($intitule)
  51.                 ->setEnseignant($enseignant)
  52.                 ->setSlug($sluggerInterface->slug($intitule ' ' $i+time()))
  53.                 ->setContent($faker->paragraphs($faker->numberBetween(38), true))
  54.                 ->setDescription($faker->paragraph(5))
  55.                 ->setIsFree($i != 0)
  56.                 ->setNiveauDifficulte('Facile')
  57.                 ->setIsPublished($i 10 != 0)
  58.                 ->setIsValidated($i 10 != 0)
  59.                 ->setDureeApprentissage($faker->numberBetween(424) . ' heures')
  60.                 ->setLanguage($i == 'English' 'French')
  61.                 ->setNumberOfLessons($numberOfLessons)
  62.                 ->setVues(0)
  63.                 ->setMedia($media);
  64.                 if (!$cours->isIsFree()) {
  65.                     $cours->setMontantAbonnement($faker->numberBetween(150020000));
  66.                     foreach ($paymentsMethods as $pm) {
  67.                         $cours->addPaymentMethod($pm);
  68.                     }
  69.                 }
  70.                 if (count($categories) > 0) {
  71.                     $cours->setCategorie($categories[$faker->numberBetween(0count($categories)-1)]);
  72.                 }
  73.             $numero 1;
  74.             $numeroLesson 1;
  75.             for ($j 0$j 4$j++) {
  76.                 $chap = new Chapitre();
  77.                 $title $faker->sentence(5);
  78.                 $chap->setCours($cours)
  79.                     ->setTitle($title)
  80.                     ->setSlug($sluggerInterface->slug($title ' ' time()))
  81.                     ->setDescription($faker->paragraph(3))
  82.                     ->setNumero($numero);
  83.                 $em->persist($chap);
  84.                 $numero++;
  85.                 for ($k 0$k 3$k++) {
  86.                     $lesson = new Lesson();
  87.                     $title $faker->sentence(6);
  88.                     $lesson->setChapitre($chap)
  89.                         ->setTitle($title)
  90.                         ->setSlug($sluggerInterface->slug($title ' ' time()))
  91.                         ->setContent($faker->paragraphs($faker->numberBetween(512), true))
  92.                         ->setNumero($numeroLesson);
  93.                     
  94.                     $numeroLesson++;
  95.                     $em->persist($lesson);
  96.                     $chap->addLesson($lesson);
  97.                 }
  98.                 $em->persist($chap);
  99.                 for ($q 0$q $faker->numberBetween(812); $q++) {
  100.                     $quiz = new Quiz();
  101.                     $quiz->setQuestion($faker->paragraph());
  102.                     $quiz->setProposition1($faker->sentence($faker->numberBetween(615)))
  103.                         ->setProposition2($faker->sentence($faker->numberBetween(615)))
  104.                         ->setProposition3($faker->sentence($faker->numberBetween(615)))
  105.                         ->setReference(time()+$faker->numberBetween(1000)+$chap->getId())
  106.                         ->setProposition4($faker->sentence($faker->numberBetween(615)));
  107.                     $quiz->setPropositionJuste([$faker->numberBetween(14)]);
  108.                     $quiz->setChapitre($chap);
  109.                     $quiz->setCours($cours);
  110.                     $em->persist($quiz);
  111.                 }
  112.             }
  113.             $media->setCours($cours);
  114.             $cr->save($cours);
  115.             for ($q 0$q $faker->numberBetween(1012); $q++) {
  116.                 $quiz = new Quiz();
  117.                 $quiz->setQuestion($faker->paragraph());
  118.                 $quiz->setProposition1($faker->sentence($faker->numberBetween(615)))
  119.                     ->setProposition2($faker->sentence($faker->numberBetween(615)))
  120.                     ->setProposition3($faker->sentence($faker->numberBetween(615)))
  121.                     ->setReference(time() + $faker->numberBetween(1000) + $cours->getId())
  122.                     ->setProposition4($faker->sentence($faker->numberBetween(615)));
  123.                 $quiz->setPropositionJuste([$faker->numberBetween(14)]);
  124.                 $quiz->setCours($cours);
  125.                 $em->persist($quiz);
  126.             }
  127.         }
  128.         $em->flush();
  129.         return $this->redirectToRoute('app_front');
  130.     }
  131.     #[Route('/send-mail'name'app_home_send_mail')]
  132.     public function sendMail(MailerInterface $mailerInterface)
  133.     {
  134.         $email = (new Email())
  135.             ->from('no-reply@kulmapeck.com')
  136.             ->to('emmaberanger2@gmail.com')
  137.             ->subject('Un test')
  138.             ->text('Je verifie juste si les mails sont correctement transmis !')
  139.             ->html("<p>Je verifie juste si les mails sont correctement transmis ! HTML</p>");
  140.         try {
  141.             dump($mailerInterface->send($email));
  142.         } catch (TransportExceptionInterface $e) {
  143.             dd($e);
  144.         }
  145.         dd("Message envoyé !");
  146.     }
  147. }