src/Controller/AnnoncesController.php line 26

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