src/Controller/Front/DashboardController.php line 24

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\Response;
  13. use Symfony\Component\Routing\Annotation\Route;
  14. class DashboardController extends AbstractController
  15. {
  16.     /**
  17.      * @Route("/nos-cours/{courseSlug}/{disciplineSlug}", name="app_front_dashboard_discipline")
  18.      */
  19.     public function index(EntityManagerInterface $entityManager,$courseSlug null,$disciplineSlug null): Response
  20.     {
  21.         $course $find  null;
  22.         $listActivity = [];
  23.         $allCourses $entityManager->getRepository(Course::class)->getList();
  24.         if(!is_null($courseSlug)){
  25.             $course $entityManager->getRepository(Course::class)->findOneBySlug($courseSlug);
  26.             if(!$course){
  27.             }
  28.             $listLibrairy $entityManager->getRepository(Library::class)->getList($courseSlug,null);
  29.             if(!empty($listLibrairy)){
  30.                 if($disciplineSlug){
  31.                     $find array_filter($listLibrairy, function($produit) use ($disciplineSlug) {
  32.                         if($produit['slug'] == $disciplineSlug){
  33.                             return $produit;
  34.                         }
  35.                     });
  36.                 }
  37.                 if(!$find){
  38.                     return $this->redirectToRoute('app_front_dashboard_discipline', ['courseSlug' => $courseSlug,'disciplineSlug' => $listLibrairy[0]['slug']]);;;
  39.                 }
  40.                 $find reset($find);
  41.                 $listActivity $entityManager->getRepository(Activity::class)->getFreeActivity($find['libId']);
  42.             }
  43.         }
  44.         return $this->render('dashboard_free/lesson-free.html.twig', [
  45.             'allCourses'  =>$allCourses,
  46.             'course'      =>$course,
  47.             'listLibrairy'=>$listLibrairy,
  48.             'find'        =>$find,
  49.             'listActivity'=>$listActivity
  50.         ]);
  51.     }
  52.     //
  53.     /**
  54.      *
  55.      * @Route("/nos-cours/{courseSlug}/{disciplineSlug}/{actSlug}", name="app_front_dashboard_lesson_notion")
  56.      *
  57.      */
  58.     public function video(EntityManagerInterface $entityManager,$courseSlug null,$disciplineSlug null,$actSlugnull): Response
  59.     {
  60.         $find  $entityManager->getRepository(Activity::class)->checkSlug($courseSlug,$disciplineSlug,$actSlug);
  61.         $course$entityManager->getRepository(Course::class)->findOneBySlug($courseSlug);
  62.         if(!$find){
  63.             if($course){
  64.                 return $this->redirect("https://wp-preprod.lesbonsprofs.com/nos-cours/".$course->getSlug());
  65.             }
  66.             return $this->redirect("https://wp-preprod.lesbonsprofs.com/nos-offres");
  67.         }
  68.         $allCourses   $entityManager->getRepository(Course::class)->getList();
  69.         $listLibrairy $entityManager->getRepository(Library::class)->getList($courseSlug,null);
  70.         return $this->render('dashboard_free/lesson-video.html.twig', [
  71.             'allCourses'  =>$allCourses,
  72.             'listLibrairy'=>$listLibrairy,
  73.             'course'      =>$course,
  74.             'video'       =>$find->getVideo(),
  75.             'find'        =>$find
  76.         ]);
  77.     }
  78.     /**
  79.      * @param EntityManagerInterface $entityManager
  80.      * @return void
  81.      * @Route("/descrtiption/video/{videoSlug}", name="app_front_dashboard_descripyion_video")
  82.      */
  83.     public function descriptionVideo(EntityManagerInterface $entityManager,$videoSlugnull): Response{
  84.         $video $entityManager->getRepository(\App\Entity\Media\Video::class)->findOneBySlug($videoSlug);
  85.         return $this->render('dashboard_free/video-description.html.twig', [
  86.             'video'=>$video
  87.         ]);
  88.     }
  89.     /**
  90.      * @param EntityManagerInterface $entityManager
  91.      * @return \Symfony\Component\HttpFoundation\RedirectResponse
  92.      * @Route("/redirection/wp/cours/{slug}", name="app_front_dashboard_redirection")
  93.      */
  94.     public function redirectionWp(ManagerRegistry $doctrine,$slug){
  95.         $entityManager $doctrine->getManager();
  96.         $findURl       $entityManager->getRepository(Activity::class)->findUrl($slug);
  97.         if(!empty($findURl)){
  98.             $actSlug $findURl[0]['actSlug'];
  99.             $cSlug   $findURl[0]['cSlug'];
  100.             $dSlug   $findURl[0]['dSlug'];
  101. /*cd
  102.             $connection = $doctrine->getConnection('wp');
  103.             $sql  = "select * from lbp_redirection_items where url like '%{$slug}%'";
  104.             $list = $connection->fetchAllAssociative($sql);
  105.             foreach ($list as $row){
  106.             }*/
  107.             return $this->redirectToRoute('app_front_dashboard_lesson_notion', ['courseSlug' => $cSlug,'disciplineSlug'=>$dSlug,'actSlug' => $actSlug], Response::HTTP_FOUND, [
  108.                     'scheme_and_host' => true // Ceci force l'URL absolue
  109.                 ]
  110.             );
  111.         }else{
  112.             return $this->redirect("https://wp-preprod.lesbonsprofs.com/nos-offres/");
  113.         }
  114.     }
  115. }