src/Controller/HebergementsController.php line 25

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Hebergements;
  4. use App\Entity\SearchData;
  5. use App\Entity\SearchHomeData;
  6. use App\Entity\Statistiques;
  7. use App\Form\SearchHomeType;
  8. use App\Form\SearchType;
  9. use App\Repository\HebergementsRepository;
  10. use App\Repository\StatistiquesRepository;
  11. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  12. use Symfony\Component\HttpFoundation\Response;
  13. use Symfony\Component\Routing\Annotation\Route;
  14. use Doctrine\ORM\EntityManagerInterface;
  15. use Doctrine\Persistence\ManagerRegistry;
  16. use Symfony\Component\HttpFoundation\Request;
  17. #[Route('/hebergements'name'app_hebergements_')] 
  18. class HebergementsController extends AbstractController
  19. {   
  20.     /////
  21.     #[Route('/home/{page?1}/{nbre?100}'name'index')]
  22.     public function index(ManagerRegistry $mr$page$nbreRequest $request,
  23.     HebergementsRepository $hebergementsRepositoryStatistiquesRepository $statistiquesRepository): Response
  24.     {
  25.         $searchHomeData = new SearchHomeData();
  26.         $form $this->createForm(SearchHomeType::class, $searchHomeData);
  27.         $allStatistiques $statistiquesRepository->findBy(['page' => 'DETAIL_HEBERGEMENT']);
  28.         $form $form->handleRequest($request);
  29.         if ($form->isSubmitted() && $form->isValid())
  30.         {
  31.             $allHebergements $hebergementsRepository->findBySearchHome($searchHomeData, ['city' => 'ASC']);
  32.             if($allHebergements 0)
  33.             {
  34.                 return $this->render('hebergements/index.html.twig',[
  35.                     'form' => $form->createView(),
  36.                     'allHebergements' => $allHebergements,
  37.                     'allStatistiques' => $allStatistiques
  38.                 ]);
  39.             }
  40.         }
  41.         ///////////////////////////
  42.         $idUserConnect $this->getUser();
  43.         $session $request->getSession(); // Equivalent à session_star()
  44.         $elementVisite =  new Statistiques();
  45.         $pageStat 'ACCUEIL_HEBERGEMENTS';
  46.         /// $idElementStat = $id;
  47.         $nameElementStat 'PAGE_HEBERGEMENTS_INDEX';
  48.         $idUserStat $idUserConnect;
  49.         if(($session != null) and ($idUserConnect != null))
  50.         {
  51.             $visitorIdentityStat 'Email';
  52.             $elementVisite->setPage($pageStat);
  53.             $elementVisite->setElement($nameElementStat);
  54.             /// $elementVisite->setIdElement($idElementStat);
  55.             $elementVisite->setUsers($idUserStat);
  56.             $elementVisite->setVisitorIdentity($visitorIdentityStat);
  57.         }
  58.         else
  59.         {
  60.             if(($session != null) and ($idUserConnect <= 0))
  61.             { 
  62.                 $visitorIdentityStat 'INCONNU';
  63.                 $elementVisite->setPage($pageStat);
  64.                 $elementVisite->setElement($nameElementStat);
  65.                 /// $elementVisite->setIdElement($idElementStat);
  66.                 $elementVisite->setUsers($idUserStat);
  67.                 $elementVisite->setVisitorIdentity($visitorIdentityStat);
  68.             }
  69.         }
  70.         $em $mr->getManager();
  71.         $em->persist($elementVisite);
  72.         $em->flush();
  73.         ///////////////////
  74.         $allStatistiques $statistiquesRepository->findBy(['page' => 'DETAIL_HEBERGEMENT']);
  75.         $hebergementsRepo $mr->getRepository(Hebergements::class);
  76.         $nbHebergements $hebergementsRepo->count([]);
  77.         $nbrePage ceil($nbHebergements $nbre);
  78.         $allHebergements $hebergementsRepo->findBy([], ['created_at' => 'DESC'], $nbre, ($page 1) * $nbre);
  79.         return $this->render('hebergements/index.html.twig', [
  80.             'form' => $form->createView(),
  81.             'allHebergements' => $allHebergements,
  82.             'isPaginated' => true,
  83.             'nbrePage' => $nbrePage,
  84.             'page' => $page,
  85.             'nbre' => $nbre,
  86.             'allStatistiques' => $allStatistiques
  87.         ]);
  88.     }  
  89.     ////////
  90.     // Par Pays  
  91.     #[Route('/test/{parPays}'name'test')]
  92.     public function test(ManagerRegistry $mr$parPaysHebergementsRepository $repo): Response
  93.     {
  94.         $repository $mr->getRepository(Hebergements::class);
  95.         $hebergements $repo->findByCountry($parPays);
  96.         return $this->render('hebergements/test.html.twig', [
  97.             'hebergements' => $hebergements
  98.         ]);
  99.     }     
  100.     /////    
  101.     #[Route('/similaire/{catego}'name'similars')]
  102.     public function similars($categoManagerRegistry $mrRequest $request
  103.     HebergementsRepository $hebergementsRepositoryStatistiquesRepository $statistiquesRepository): Response
  104.     {
  105.         $searchHomeData = new SearchHomeData();
  106.         $catSimilar $catego;
  107.         $form $this->createForm(SearchHomeType::class, $searchHomeData);
  108.         $allStatistiques $statistiquesRepository->findBy(['page' => 'DETAIL_HEBERGEMENT']);
  109.         $form $form->handleRequest($request);
  110.         
  111.         if ($form->isSubmitted() && $form->isValid()) 
  112.         { 
  113.             $hebergementsSimilars $hebergementsRepository->findBySearchHome($searchHomeData, ['city' => 'ASC']);
  114.                  
  115.             if($hebergementsSimilars 0)
  116.             {
  117.                  return $this->render('hebergements/similars.html.twig', [
  118.                      'form' => $form->createView(),
  119.                      'hebergementsSimilars' => $hebergementsSimilars,
  120.                      'catSimilar' => $catSimilar,
  121.                      'allStatistiques' => $allStatistiques
  122.                  ]);
  123.              }    
  124.              
  125.              $this->addFlash('danger''Aucun élement trouvé. Vérifiez l\'orthographe ou Utilisez les synonymes:' $searchHomeData);           
  126.              return $this->render('hebergements/similars.html.twig', [
  127.                  'form' => $form->createView(),
  128.                  'hebergementsSimilars' => $hebergementsSimilars,
  129.                  'catSimilar' => $catSimilar,
  130.                  'allStatistiques' => $allStatistiques
  131.              ]);
  132.          }
  133.         $hebergementsSimilars $mr->getRepository(Hebergements::class)->findBy(['categorieshebergements' => $catego]);
  134.         return $this->render('hebergements/similars.html.twig', [
  135.             'form' => $form->createView(),
  136.             'hebergementsSimilars' => $hebergementsSimilars,
  137.             'catSimilar' => $catSimilar,
  138.             'allStatistiques' => $allStatistiques
  139.         ]);
  140.     }
  141.     #[Route('/{slug}/{id}'name'details')]
  142.     public function details($idManagerRegistry $mrStatistiquesRepository $statistiquesRepository,
  143.     Request $request): Response
  144.     {
  145.         $idUserConnect $this->getUser();
  146.         $session $request->getSession(); // Equivalent à session_star()
  147.         $elementVisite =  new Statistiques();
  148.         $pageStat 'DETAIL_HEBERGEMENT';
  149.         $idElementStat $id;
  150.         $nameElementStat 'NOM_HEBERGEMENT';
  151.         $idUserStat $idUserConnect;
  152.         if(($session != null) and ($idUserConnect != null))
  153.         {
  154.             $visitorIdentityStat 'Email';
  155.             $elementVisite->setPage($pageStat);
  156.             $elementVisite->setElement($nameElementStat);
  157.             $elementVisite->setIdElement($idElementStat);
  158.             $elementVisite->setUsers($idUserStat);
  159.             $elementVisite->setVisitorIdentity($visitorIdentityStat);
  160.         }
  161.         else
  162.         {
  163.             if(($session != null) and ($idUserConnect <= 0))
  164.             { 
  165.                 $visitorIdentityStat 'INCONNU';
  166.                 $elementVisite->setPage($pageStat);
  167.                 $elementVisite->setElement($nameElementStat);
  168.                 $elementVisite->setIdElement($idElementStat);
  169.                 $elementVisite->setUsers($idUserStat);
  170.                 $elementVisite->setVisitorIdentity($visitorIdentityStat);
  171.             }
  172.         }
  173.         $em $mr->getManager();
  174.         $em->persist($elementVisite);
  175.         $em->flush();
  176.         ///////////////
  177.         $allStatistiques $statistiquesRepository->findBy(['page' => 'DETAIL_HEBERGEMENT']);
  178.         $hebergementProperties $mr->getRepository(Hebergements::class)->findOneBy(['id' => $id]);
  179.         // return $this->render('hebergements/details.html.twig', compact('hebergement'));
  180.         return $this->render('hebergements/details.html.twig', [
  181.              'hebergementProperties' => $hebergementProperties,
  182.              'allStatistiques' => $allStatistiques
  183.         ]);
  184.     }
  185. }