<?php
declare(strict_types=1);
namespace App\Controller\Front;
use App\Entity\DataAnalysis\Satisfaction\Video;
use App\Entity\Educational\Activity;
use App\Entity\Educational\Course;
use App\Entity\Educational\Discipline;
use App\Entity\Educational\Library;
use Doctrine\ORM\EntityManagerInterface;
use Doctrine\Persistence\ManagerRegistry;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
class DashboardController extends AbstractController
{
/**
* @Route("/nos-cours/{courseSlug}/{disciplineSlug}", name="app_front_dashboard_discipline")
*/
public function index(EntityManagerInterface $entityManager,$courseSlug = null,$disciplineSlug = null): Response
{
$course = $find = null;
$listActivity = [];
$allCourses = $entityManager->getRepository(Course::class)->getList();
if(!is_null($courseSlug)){
$course = $entityManager->getRepository(Course::class)->findOneBySlug($courseSlug);
if(!$course){
}
$listLibrairy = $entityManager->getRepository(Library::class)->getList($courseSlug,null);
if(!empty($listLibrairy)){
if($disciplineSlug){
$find = array_filter($listLibrairy, function($produit) use ($disciplineSlug) {
if($produit['slug'] == $disciplineSlug){
return $produit;
}
});
}
if(!$find){
return $this->redirectToRoute('app_front_dashboard_discipline', ['courseSlug' => $courseSlug,'disciplineSlug' => $listLibrairy[0]['slug']]);;;
}
$find = reset($find);
$listActivity = $entityManager->getRepository(Activity::class)->getFreeActivity($find['libId']);
}
}
return $this->render('dashboard_free/lesson-free.html.twig', [
'allCourses' =>$allCourses,
'course' =>$course,
'listLibrairy'=>$listLibrairy,
'find' =>$find,
'listActivity'=>$listActivity
]);
}
//
/**
*
* @Route("/nos-cours/{courseSlug}/{disciplineSlug}/{actSlug}", name="app_front_dashboard_lesson_notion")
*
*/
public function video(EntityManagerInterface $entityManager,$courseSlug = null,$disciplineSlug = null,$actSlug= null): Response
{
$find = $entityManager->getRepository(Activity::class)->checkSlug($courseSlug,$disciplineSlug,$actSlug);
$course= $entityManager->getRepository(Course::class)->findOneBySlug($courseSlug);
if(!$find){
if($course){
return $this->redirect("https://wp-preprod.lesbonsprofs.com/nos-cours/".$course->getSlug());
}
return $this->redirect("https://wp-preprod.lesbonsprofs.com/nos-offres");
}
$allCourses = $entityManager->getRepository(Course::class)->getList();
$listLibrairy = $entityManager->getRepository(Library::class)->getList($courseSlug,null);
return $this->render('dashboard_free/lesson-video.html.twig', [
'allCourses' =>$allCourses,
'listLibrairy'=>$listLibrairy,
'course' =>$course,
'video' =>$find->getVideo(),
'find' =>$find
]);
}
/**
* @param EntityManagerInterface $entityManager
* @return void
* @Route("/descrtiption/video/{videoSlug}", name="app_front_dashboard_descripyion_video")
*/
public function descriptionVideo(EntityManagerInterface $entityManager,$videoSlug= null): Response{
$video = $entityManager->getRepository(\App\Entity\Media\Video::class)->findOneBySlug($videoSlug);
return $this->render('dashboard_free/video-description.html.twig', [
'video'=>$video
]);
}
/**
* @param EntityManagerInterface $entityManager
* @return \Symfony\Component\HttpFoundation\RedirectResponse
* @Route("/redirection/wp/cours/{slug}", name="app_front_dashboard_redirection")
*/
public function redirectionWp(ManagerRegistry $doctrine,$slug){
$entityManager = $doctrine->getManager();
$findURl = $entityManager->getRepository(Activity::class)->findUrl($slug);
if(!empty($findURl)){
$actSlug = $findURl[0]['actSlug'];
$cSlug = $findURl[0]['cSlug'];
$dSlug = $findURl[0]['dSlug'];
/*cd
$connection = $doctrine->getConnection('wp');
$sql = "select * from lbp_redirection_items where url like '%{$slug}%'";
$list = $connection->fetchAllAssociative($sql);
foreach ($list as $row){
}*/
return $this->redirectToRoute('app_front_dashboard_lesson_notion', ['courseSlug' => $cSlug,'disciplineSlug'=>$dSlug,'actSlug' => $actSlug], Response::HTTP_FOUND, [
'scheme_and_host' => true // Ceci force l'URL absolue
]
);
}else{
return $this->redirect("https://wp-preprod.lesbonsprofs.com/nos-offres/");
}
}
}