src/Controller/Front/DashboardController.php line 25

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Controller\Front;
  4. use App\Entity\DataAnalysis\Satisfaction\Video;
  5. use App\Entity\Educational\Activity;
  6. use App\Entity\Educational\Course;
  7. use App\Entity\Educational\Discipline;
  8. use App\Entity\Educational\Library;
  9. use Doctrine\ORM\EntityManagerInterface;
  10. use Doctrine\Persistence\ManagerRegistry;
  11. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  12. use Symfony\Component\HttpFoundation\RedirectResponse;
  13. use Symfony\Component\HttpFoundation\Response;
  14. use Symfony\Component\Routing\Annotation\Route;
  15. class DashboardController extends AbstractController
  16. {
  17.     /**
  18.      * @Route("/nos-cours/{courseSlug}/{disciplineSlug}", name="app_front_dashboard_discipline")
  19.      */
  20.     public function index(EntityManagerInterface $entityManager,$courseSlug null,$disciplineSlug null): Response
  21.     {
  22.         $course $find  null;
  23.         $listActivity = [];
  24.         $allCourses $entityManager->getRepository(Course::class)->getList();
  25.         if(!is_null($courseSlug)){
  26.             $course $entityManager->getRepository(Course::class)->findOneBySlug($courseSlug);
  27.             if(!$course){
  28.                 $response = new RedirectResponse("https://www.lesbonsprofs.com/nos-offres/?popup=true");
  29.                 $response->headers->set('Referer'"https://www.lesbonsprofs.com/nos-cours/");
  30.                 return $response;
  31.             }
  32.             $listLibrairy $entityManager->getRepository(Library::class)->getList($courseSlug,null);
  33.             if(!empty($listLibrairy)){
  34.                 if($disciplineSlug){
  35.                     $find array_filter($listLibrairy, function($produit) use ($disciplineSlug) {
  36.                         if($produit['slug'] == $disciplineSlug){
  37.                             return $produit;
  38.                         }
  39.                     });
  40.                 }
  41.                 if(!$find){
  42.                     return new RedirectResponse("https://www.lesbonsprofs.com/nos-cours/".$course->getSlug().'/',301);
  43.                     //return $this->redirectToRoute('app_front_dashboard_discipline', ['courseSlug' => $courseSlug,'disciplineSlug' => $listLibrairy[0]['slug']]);
  44.                 }
  45.                 $find reset($find);
  46.                 $listActivity $entityManager->getRepository(Activity::class)->getFreeActivity($find['libId']);
  47.                 $tableau array_filter($listLibrairy, function($item) use ($disciplineSlug) {
  48.                     return $item['slug'] != $disciplineSlug;
  49.                 });
  50.                 $listLibrairy array_merge([$find],$tableau);
  51.             }
  52.         }
  53.         return $this->render('dashboard_free/lesson-free.html.twig', [
  54.             'allCourses'  =>$allCourses,
  55.             'course'      =>$course,
  56.             'listLibrairy'=>$listLibrairy,
  57.             'find'        =>$find,
  58.             'listActivity'=>$listActivity,
  59.             'disciplineSlug'=>$disciplineSlug
  60.         ]);
  61.     }
  62.     //
  63.     /**
  64.      *
  65.      * @Route("/nos-cours/{courseSlug}/{disciplineSlug}/{actSlug}", name="app_front_dashboard_lesson_notion")
  66.      *
  67.      */
  68.     public function video(EntityManagerInterface $entityManager,$courseSlug null,$disciplineSlug null,$actSlugnull): Response
  69.     {
  70.         $find  $entityManager->getRepository(Activity::class)->checkSlug($courseSlug,$disciplineSlug,$actSlug);
  71.         $course$entityManager->getRepository(Course::class)->findOneBySlug($courseSlug);
  72.         if(!$find){
  73.             if($course){
  74.                 return $this->redirect("https://www.lesbonsprofs.com/nos-cours/".$course->getSlug());
  75.             }
  76.             $response = new RedirectResponse("https://www.lesbonsprofs.com/nos-offres/?popup=true");
  77.             $response->headers->set('Referer'"https://www.lesbonsprofs.com/nos-cours/");
  78.             return $response;
  79.         }
  80.         $allCourses   $entityManager->getRepository(Course::class)->getList();
  81.         $listLibrairy $entityManager->getRepository(Library::class)->getList($courseSlug,null);
  82.         if($disciplineSlug){
  83.             $find2 array_filter($listLibrairy, function($produit) use ($disciplineSlug) {
  84.                 if($produit['slug'] == $disciplineSlug){
  85.                     return $produit;
  86.                 }
  87.             });
  88.             if($find2){
  89.                 $tableau array_filter($listLibrairy, function($item) use ($disciplineSlug) {
  90.                     return $item['slug'] != $disciplineSlug;
  91.                 });
  92.                 $listLibrairy array_merge($find2,$tableau);
  93.             }
  94.         }else{
  95.             $response = new RedirectResponse("https://www.lesbonsprofs.com/nos-offres/?popup=true");
  96.             $response->headers->set('Referer'"https://www.lesbonsprofs.com/nos-cours/");
  97.             return $response;
  98.         }
  99.         return $this->render('dashboard_free/lesson-video.html.twig', [
  100.             'allCourses'  =>$allCourses,
  101.             'listLibrairy'=>$listLibrairy,
  102.             'course'      =>$course,
  103.             'video'       =>$find->getVideo(),
  104.             'find'        =>$find,
  105.             'disciplineSlug'=>$disciplineSlug
  106.         ]);
  107.     }
  108.     /**
  109.      * @param EntityManagerInterface $entityManager
  110.      * @return void
  111.      * @Route("/descrtiption/video/{videoSlug}", name="app_front_dashboard_descripyion_video")
  112.      */
  113.     public function descriptionVideo(EntityManagerInterface $entityManager,$videoSlugnull): Response{
  114.         $video $entityManager->getRepository(\App\Entity\Media\Video::class)->findOneBySlug($videoSlug);
  115.         return $this->render('dashboard_free/video-description.html.twig', [
  116.             'video'=>$video
  117.         ]);
  118.     }
  119.     /**
  120.      * @param EntityManagerInterface $entityManager
  121.      * @return \Symfony\Component\HttpFoundation\RedirectResponse
  122.      * @Route("/redirection/wp/cours/{slug}", name="app_front_dashboard_redirection")
  123.      */
  124.     public function redirectionWp(ManagerRegistry $doctrine,$slug){
  125.         $entityManager $doctrine->getManager();
  126.         $findURl       $entityManager->getRepository(Activity::class)->findUrl($slug);
  127.         if(!empty($findURl)){
  128.             $actSlug $findURl[0]['actSlug'];
  129.             $cSlug   $findURl[0]['cSlug'];
  130.             $dSlug   $findURl[0]['dSlug'];
  131.             return $this->redirectToRoute('app_front_dashboard_lesson_notion', ['courseSlug' => $cSlug,'disciplineSlug'=>$dSlug,'actSlug' => $actSlug], Response::HTTP_FOUND, [
  132.                     'scheme_and_host' => true // Ceci force l'URL absolue
  133.                 ]
  134.             );
  135.         }
  136.         $response = new RedirectResponse("https://www.lesbonsprofs.com/nos-offres/?popup=true",301);
  137.         $response->headers->set('Referer'"https://www.lesbonsprofs.com/nos-cours/");
  138.         return $response;
  139.     }
  140. }