src/Controller/VideosController.php line 154

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Immobiliers;
  4. use App\Entity\SearchData;
  5. use App\Entity\SearchHomeData;
  6. use App\Entity\Statistiques;
  7. use App\Entity\Videos;
  8. use App\Form\SearchHomeType;
  9. use App\Form\SearchType;
  10. use App\Repository\ImmobiliersRepository;
  11. use App\Repository\StatistiquesRepository;
  12. use App\Repository\VideosRepository;
  13. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  14. use Symfony\Component\HttpFoundation\Response;
  15. use Symfony\Component\Routing\Annotation\Route;
  16. use Doctrine\ORM\EntityManagerInterface;
  17. use Doctrine\Persistence\ManagerRegistry;
  18. use Symfony\Component\HttpFoundation\Request;
  19. #[Route('/videos'name'app_videos_')]
  20. class VideosController extends AbstractController
  21. {    
  22.     #[Route('/home/{page?1}/{nbre?100}'name'index')]
  23.     public function index(ManagerRegistry $mr$page$nbreRequest $request
  24.     VideosRepository $videosRepositoryStatistiquesRepository $statistiquesRepository): Response
  25.     {
  26.         $searchHomeData = new SearchHomeData();
  27.         $form $this->createForm(SearchHomeType::class, $searchHomeData);
  28.         $allStatistiques $statistiquesRepository->findBy(['page' => 'DETAIL_VIDEO']);
  29.         $form $form->handleRequest($request);
  30.         
  31.         if ($form->isSubmitted() && $form->isValid()) 
  32.         { 
  33.            $allVideos $videosRepository->findBySearchHome($searchHomeData, ['ville' => 'ASC']);
  34.                 
  35.            if($allVideos 0)
  36.            {
  37.                 return $this->render('videos/index.html.twig', [
  38.                     'form' => $form->createView(),
  39.                     'allVideos' => $allVideos,
  40.                     'allStatistiques' => $allStatistiques
  41.                 ]);
  42.             }    
  43.             
  44.             $this->addFlash('danger''Aucun élement trouvé. Vérifiez l\'orthographe ou Utilisez les synonymes:' $searchHomeData);           
  45.             return $this->render('videos/index.html.twig', [
  46.                 'form' => $form->createView(),
  47.                 'allVideos' => $allVideos,
  48.                 'allStatistiques' => $allStatistiques
  49.             ]);
  50.         }  
  51.         ///////////////////////////
  52.         $idUserConnect $this->getUser();
  53.         $session $request->getSession(); // Equivalent à session_star()
  54.         $elementVisite =  new Statistiques();
  55.         $pageStat 'ACCUEIL_VIDEOS';
  56.         /// $idElementStat = $id;
  57.         $nameElementStat 'PAGE_VIDEOS_INDEX';
  58.         $idUserStat $idUserConnect;
  59.         if(($session != null) and ($idUserConnect != null))
  60.         {
  61.             $visitorIdentityStat 'Email';
  62.             $elementVisite->setPage($pageStat);
  63.             $elementVisite->setElement($nameElementStat);
  64.             /// $elementVisite->setIdElement($idElementStat);
  65.             $elementVisite->setUsers($idUserStat);
  66.             $elementVisite->setVisitorIdentity($visitorIdentityStat);
  67.         }
  68.         else
  69.         {
  70.             if(($session != null) and ($idUserConnect <= 0))
  71.             { 
  72.                 $visitorIdentityStat 'INCONNU';
  73.                 $elementVisite->setPage($pageStat);
  74.                 $elementVisite->setElement($nameElementStat);
  75.                 /// $elementVisite->setIdElement($idElementStat);
  76.                 $elementVisite->setUsers($idUserStat);
  77.                 $elementVisite->setVisitorIdentity($visitorIdentityStat);
  78.             }
  79.         }
  80.         $em $mr->getManager();
  81.         $em->persist($elementVisite);
  82.         $em->flush();
  83.         ///////////////////
  84.         $videosRepo $mr->getRepository(Videos::class);
  85.         $nbVideos $videosRepo->count([]);
  86.         $nbrePage ceil($nbVideos $nbre);
  87.         $allVideos $videosRepo->findBy([], ['created_at' => 'DESC'], $nbre, ($page 1) * $nbre);
  88.         return $this->render('videos/index.html.twig', [
  89.             'form' => $form->createView(),
  90.             'allVideos' => $allVideos,
  91.             'isPaginated' => true,
  92.             'nbrePage' => $nbrePage,
  93.             'page' => $page,
  94.             'nbre' => $nbre,
  95.             'allStatistiques' => $allStatistiques
  96.         ]);
  97.     }
  98.     /////
  99.     #[Route('/similaire/{catego}'name'similars')]
  100.     public function similars($categoManagerRegistry $mrVideosRepository $videosRepository,
  101.     StatistiquesRepository $statistiquesRepositoryRequest $request): Response
  102.     {
  103.         $searchHomeData = new SearchHomeData();
  104.         $catSimilar $catego;
  105.         $form $this->createForm(SearchHomeType::class, $searchHomeData);
  106.         $allStatistiques $statistiquesRepository->findBy(['page' => 'DETAIL_VIDEO']);
  107.         $form $form->handleRequest($request);
  108.         
  109.         if ($form->isSubmitted() && $form->isValid()) 
  110.         { 
  111.             $videosSimilars $videosRepository->findBySearchHome($searchHomeData, ['name' => 'ASC']);
  112.                  
  113.             if($videosSimilars 0)
  114.             {
  115.                  return $this->render('videos/similars.html.twig', [
  116.                      'form' => $form->createView(),
  117.                      'videosSimilars' => $videosSimilars,
  118.                      'catSimilar' => $catSimilar,
  119.                      'allStatistiques' => $allStatistiques
  120.                  ]);
  121.             }    
  122.             else
  123.             { 
  124.              $this->addFlash('danger''Aucun élement trouvé. Vérifiez l\'orthographe ou Utilisez les synonymes:' $searchHomeData);           
  125.              return $this->render('videos/similars.html.twig', [
  126.                  'form' => $form->createView(),
  127.                  'videosSimilars' => $videosSimilars,
  128.                  'catSimilar' => $catSimilar,
  129.                  'allStatistiques' => $allStatistiques
  130.              ]);
  131.             }
  132.          }
  133.         $videosSimilars $mr->getRepository(Videos::class)->findBy(['categoriesvideos' => $catego]);
  134.         return $this->render('videos/similars.html.twig', [
  135.             'form' => $form->createView(),
  136.             'videosSimilars' => $videosSimilars,
  137.             'catSimilar' => $catSimilar,
  138.             'allStatistiques' => $allStatistiques
  139.         ]);
  140.     }
  141.     #[Route('/playlist/{idU}/{playLi}/{idV}'name'playlist')]
  142.     public function playlist($playLi$idU$idVManagerRegistry $mrRequest $request,
  143.      StatistiquesRepository $statistiquesRepository): Response
  144.     {   
  145.         $idU $idU;
  146.         $idV $idV;
  147.         
  148.         $idUserConnect $this->getUser();
  149.         $session $request->getSession(); // Equivalent à session_star()
  150.         $elementVisite =  new Statistiques();
  151.         $allStatistiques $statistiquesRepository->findBy(['page' => 'DETAIL_VIDEO']);
  152.         $pageStat 'DETAIL_VIDEO';
  153.         $idElementStat $idV;
  154.         $nameElementStat 'NOM_VIDEO';
  155.         $idUserStat $idUserConnect;
  156.         /// $sessionConnect = $request->getSession();
  157.         if(($session != null) and ($idUserConnect != null))
  158.         {
  159.             $visitorIdentityStat 'Email';
  160.             $elementVisite->setPage($pageStat);
  161.             $elementVisite->setElement($nameElementStat);
  162.             $elementVisite->setIdElement($idElementStat);
  163.             $elementVisite->setUsers($idUserStat);
  164.             $elementVisite->setVisitorIdentity($visitorIdentityStat);
  165.             /// $elementVisite->setIdSession($session);
  166.         }
  167.         else
  168.         {
  169.             if(($session != null) and ($idUserConnect <= 0))
  170.             { 
  171.                 $visitorIdentityStat 'INCONNU';
  172.                 $elementVisite->setPage($pageStat);
  173.                 $elementVisite->setElement($nameElementStat);
  174.                 $elementVisite->setIdElement($idElementStat);
  175.                 $elementVisite->setUsers($idUserStat);
  176.                 $elementVisite->setVisitorIdentity($visitorIdentityStat);
  177.             }
  178.         }
  179.         $em $mr->getManager();
  180.         $em->persist($elementVisite);
  181.         $em->flush();
  182.         ///////////////////
  183.         $videoPlaylists $mr->getRepository(Videos::class)->findBy(['namePlaylist' => $playLi], ['id' => 'ASC']); //OK
  184.  
  185.         return $this->render('videos/playlist.html.twig', [
  186.              'videoPlaylists' => $videoPlaylists,
  187.              'idU' => $idU,
  188.              'idV' => $idV,
  189.              'allStatistiques' => $allStatistiques
  190.         ]);
  191.     }
  192.     #[Route('/detail/{slug}/{id}'name'details')]
  193.     public function details($idManagerRegistry $mrVideosRepository $videosRepository,
  194.       StatistiquesRepository $statistiquesRepositoryRequest $request): Response
  195.     {
  196.         ///////////////////////////
  197.         $idUserConnect $this->getUser();
  198.         $session $request->getSession(); // Equivalent à session_star()
  199.         $elementVisite =  new Statistiques();
  200.         
  201.         $allStatistiques $statistiquesRepository->findBy(['page' => 'DETAIL_VIDEO']);
  202.         $pageStat 'DETAIL_VIDEO';
  203.         $idElementStat $id;
  204.         $nameElementStat 'NOM_VIDEO';
  205.         $idUserStat $idUserConnect;
  206.         if(($session != null) and ($idUserConnect != null))
  207.         {
  208.             $visitorIdentityStat 'Email';
  209.             $elementVisite->setPage($pageStat);
  210.             $elementVisite->setElement($nameElementStat);
  211.             $elementVisite->setIdElement($idElementStat);
  212.             $elementVisite->setUsers($idUserStat);
  213.             $elementVisite->setVisitorIdentity($visitorIdentityStat);
  214.         }
  215.         else
  216.         {
  217.             if(($session != null) and ($idUserConnect <= 0))
  218.             { 
  219.                 $visitorIdentityStat 'INCONNU';
  220.                 $elementVisite->setPage($pageStat);
  221.                 $elementVisite->setElement($nameElementStat);
  222.                 $elementVisite->setIdElement($idElementStat);
  223.                 $elementVisite->setUsers($idUserStat);
  224.                 $elementVisite->setVisitorIdentity($visitorIdentityStat);
  225.             }
  226.         }
  227.         $em $mr->getManager();
  228.         $em->persist($elementVisite);
  229.         $em->flush();
  230.         ///////////////////
  231.         $videoProperties $mr->getRepository(Videos::class)->findOneBy(['id' => $id]);
  232.         $videosSimilaires $videosRepository->findBy([], ['id' => 'DESC']);
  233.         return $this->render('videos/details.html.twig', [
  234.              'videoProperties' => $videoProperties,
  235.              'videosSimilaires' => $videosSimilaires,
  236.              'allStatistiques' => $allStatistiques
  237.         ]);
  238.     }
  239. }