src/Controller/Cours/CoursController.php line 31

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Cours;
  3. use App\Repository\AvisRepository;
  4. use App\Repository\CoursRepository;
  5. use App\Repository\UsercoursRepository;
  6. use Symfony\Component\HttpFoundation\Response;
  7. use Symfony\Component\Routing\Annotation\Route;
  8. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  9. use Symfony\Component\HttpFoundation\Request;
  10. use App\Entity\Usercours;
  11. use App\Repository\LessonsRepository;
  12. use App\Service\UserSessionManager;
  13. use Doctrine\Persistence\ManagerRegistry;
  14. use App\Repository\UserRepository;
  15. class CoursController extends AbstractController
  16. {
  17.     private $managerRegistry;
  18.     private $userSession;
  19.     public function __construct(UserSessionManager $userSessionManagerRegistry $managerRegistry)
  20.     {
  21.         $this->userSession $userSession;
  22.         $this->managerRegistry $managerRegistry;
  23.     }
  24.     public function coursPage(string $slugAvisRepository $repoCoursRepository $coursRepo): Response
  25.     {
  26.         $avis $repo->getAll();
  27.         $singleCours $coursRepo->findOneBy(['slug' => $slug]);
  28.         $averageNote $repo->getAverageNote();
  29.         $countByNote = [
  30.             => $repo->getCountByNote(5),
  31.             => $repo->getCountByNote(4),
  32.             => $repo->getCountByNote(3),
  33.             => $repo->getCountByNote(2),
  34.             => $repo->getCountByNote(1),
  35.         ];
  36.         return $this->render('home/cours/single/index.html.twig', [
  37.             'singleCours' => $singleCours,
  38.             'avis' => $avis,
  39.             'averageNote' => $averageNote,
  40.             'countByNote' => $countByNote,
  41.         ]);
  42.     }
  43.     public function coursLessonsPage(string $slugRequest $requestUserRepository $userRepository,  CoursRepository $coursRepoUsercoursRepository $usercoursRepository LessonsRepository $lessonsRepository): Response
  44.     {
  45.        
  46.         $singleCours $coursRepo->findOneBy(['slug' => $slug]);
  47.         $user $this->userSession->getCurrentUser();
  48.         $entityManager $this->managerRegistry->getManager();
  49.         $checkUserCours $usercoursRepository->findOneBy(['coursid' => $singleCours->getId(), 'userid' => $user->getId()]);
  50.         if ($checkUserCours == null) {
  51.             $user1 $userRepository->find($this->userSession->getCurrentUser()->getId());
  52.             $userCoursEntity = new Usercours();
  53.             $userCoursEntity->setCoursId($singleCours);
  54.             $userCoursEntity->setUserId($user1);
  55.             $userCoursEntity->setIsCompleted(false);
  56.             $userCoursEntity->setIscorrectquizz(false);
  57.             $userCoursEntity->setStage(1);
  58.             $userCoursEntity->setEnrollmentDate(new \DateTime());
  59.             $entityManager->persist($userCoursEntity);
  60.             $entityManager->flush();
  61.             return $this->render('home/cours/lessons/index.html.twig', [
  62.                 'singleCours' => $singleCours,
  63.                 'userCours' => $checkUserCours,
  64.             ]);
  65.         }
  66.         else {
  67.             $l $request->query->getInt('lesson',1);
  68.           
  69.             if($l>$checkUserCours->getStage() && $l <= $singleCours->getLessons()->count()){
  70.                 $checkUserCours->setStage($l);
  71.                 $entityManager->persist($checkUserCours);
  72.                 $entityManager->flush();
  73.             }
  74.             
  75.         }
  76.         $checkUserCours $usercoursRepository->findOneBy(['coursid' => $singleCours->getId(), 'userid' => $user->getId()]);
  77.         $currentLesson $lessonsRepository->findOneBy(['coursid' => $singleCours->getId(), 'classement' => $checkUserCours->getStage()]);
  78.         $next $lessonsRepository->findOneBy(['coursid' => $singleCours->getId(), 'classement' => $checkUserCours->getStage() + 1]);
  79.         if($next == null){
  80.             $nextLesson "quiz";
  81.         }
  82.         else {
  83.             $nextLesson $checkUserCours->getStage() + 1;
  84.         }
  85.         return $this->render('home/cours/lessons/index.html.twig', [
  86.             'singleCours' => $singleCours,
  87.             'userCours' => $checkUserCours,
  88.             'currentLesson'=>$currentLesson,
  89.             'nextLesson'=>$nextLesson,
  90.         ]);
  91.     }
  92. }