src/Controller/ScrollController.php line 22

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  4. use Symfony\Component\HttpFoundation\Response;
  5. use Symfony\Component\Routing\Annotation\Route;
  6. use Symfony\Component\HttpFoundation\Request;
  7. use Doctrine\Persistence\ManagerRegistry;
  8. use App\Entity\PostLike;
  9. use App\Entity\Visiteurs;
  10. use App\Entity\VillesFrance;
  11. use App\Entity\Annonces;
  12. use App\Controller\Fonctions\Fonctions;
  13. class ScrollController extends AbstractController
  14. {
  15.     #[Route('/scroll/{id}'name'app_scroll')]
  16.     public function index(ManagerRegistry $doctrineRequest $request$id): Response
  17.     {
  18.         $nbr 0;
  19.         $sommetotale 0;
  20.         $fonction = new Fonctions();
  21.         $logo =  $fonction->FonctionLogo();
  22.         // selection de la recherche type
  23.         $selectionrecherche 1;
  24.         if ($selectionrecherche ==  1) {
  25.             $orderBytype 'u.created_at';
  26.         }
  27.         if ($selectionrecherche ==  2) {
  28.             $orderBytype 'u.prix';
  29.         }
  30.         if ($selectionrecherche ==  3) {
  31.             $orderBytype 'u.superficie';
  32.         }
  33.         // selection de la recherche asecendant ou decendant 
  34.         $orderrecherche 1;
  35.         if ($orderrecherche ==  1) {
  36.             $orderBytypeOrder  'ASC';
  37.         } else {
  38.             $orderBytypeOrder  'DESC';
  39.         }
  40.         // appartement et maison
  41.         $recc 1;
  42.         if ($recc ==  1) {
  43.             $recherchelog 2;
  44.             $select 'u.logement  <= :logement';
  45.         }
  46.         // maison 
  47.         if ($recc ==  2) {
  48.             $recherchelog 1;
  49.             $select 'u.logement IN (:logement)';
  50.         }
  51.         // appartement 
  52.         if ($recc ==  3) {
  53.             $recherchelog 2;
  54.             $select 'u.logement IN (:logement)';
  55.         }
  56.         $entityManager $doctrine->getManager();
  57.         $userRepo $entityManager->getRepository(Annonces::class);
  58.         $queryBuilder $entityManager->createQueryBuilder();
  59.         $queryBuilder->select('u')
  60.             ->from(Annonces::class, 'u')
  61.             ->where('u.ville_slug IN (:ville_slug)')
  62.             ->setParameter('ville_slug', [$id])
  63.             ->orderBy($orderBytype$orderBytypeOrder)
  64.             ->setMaxResults(130);
  65.         $query $queryBuilder->getQuery();
  66.         $donnees $query->getResult();
  67.         // boucle pour retourner si li y a une reponse 
  68.         foreach ($donnees as $user) {
  69.             $nbr++;
  70.             // calcule de la moyenne du marché 
  71.             $somme $user->getPrix();
  72.             $sommetotale $sommetotale +  $somme;
  73.             $moyenne $sommetotale $nbr;
  74.             $moyenne floor($moyenne);
  75.         }
  76.         if ($nbr == 0) {
  77.             $message 'Aucun résultats correspond à votre recherche.';
  78.         } else {
  79.             $message ' ' .  $nbr '  résultats correspond à votre recherche. Le prix moyen est de ' .  $moyenne ' Euros.';
  80.         }
  81.         $this->addFlash('success'$message);
  82.         $type 1;
  83.         $ville $id;
  84.         $articles '';
  85.         $date '';
  86.         return $this->render('scroll/liste.html.twig', [
  87.             'annonces' => $articles,
  88.             'date' => $date,
  89.             'ville' => $ville,
  90.             'logo' => $logo,
  91.             'type' => $type,
  92.             'proposition' => $donnees,
  93.         ]);
  94.     }
  95.     #[Route('/getrecords/{id}'name'getrecords')]
  96.     public function scroll(ManagerRegistry $doctrineRequest $request$id): Response
  97.     {
  98.         $fonction = new Fonctions();
  99.         $url  =  $fonction->FonctionUrl();
  100.         $ip =  $fonction->NomIp();
  101.         // fonction pour envoyer l'id du journal ou de l'utilisateur 
  102.         $user $this->getUser();
  103.         $iduser $user;
  104.         $entityManager $doctrine->getManager();
  105.         $userRepo $entityManager->getRepository(PostLike::class);
  106.         $usersByRolepost $userRepo->findBy(["user" => $iduser]);
  107.         $poste $usersByRolepost;
  108.         // recuperation du tableau des visiteurs 
  109.         $queryBuilder $entityManager->createQueryBuilder();
  110.         $queryBuilder->select('u')
  111.             ->from(Visiteurs::class, 'u')
  112.             ->where('u.user IN (:user)')
  113.             ->orwhere('u.adresseip IN (:adresseip)')
  114.             ->setParameter('user',  [$iduser])
  115.             ->setParameter('adresseip',  [$ip]);
  116.         $query $queryBuilder->getQuery();
  117.         $visiteurs $query->getResult();
  118.         $connection $doctrine->getConnection();
  119.         $ville $id;
  120.         $userRepo $entityManager->getRepository(VillesFrance::class);
  121.         $VilleFrance $userRepo->findOneBy(["ville_slug" => $ville]);
  122.         $ville_slug  =   $VilleFrance->getVilleSlug($ville);
  123.       //   $_GET['limit'] = 0;  $_GET['offset'] = 0;
  124.         $limit = (intval($_GET['limit']) != 0) ? $_GET['limit'] : 5;
  125.         $offset = (intval($_GET['offset']) != 0) ? $_GET['offset'] : 0;
  126.         $date $this->date = new \DateTime('now');
  127.         $nbr 0;
  128.         $categorie1  =    array();
  129.         $userRepo $entityManager->getRepository(Annonces::class);
  130.         $queryBuilder $entityManager->createQueryBuilder();
  131.         $queryBuilder->select('r')
  132.             ->from(Annonces::class, 'r')
  133.             ->Where('r.ville_slug LIKE :ville_slug')
  134.             ->setParameter('ville_slug''%' $ville_slug '%')
  135.             ->orderBy('r.ville_slug''ASC')
  136.             ->setMaxResults($limit)
  137.             ->setFirstResult($offset);
  138.         $query $queryBuilder->getQuery();
  139.         $donnees $query->getResult();
  140.         foreach ($donnees as $user) {
  141.             $id $user->getId();
  142.             $titre $user->getTitre();
  143.             $somme $user->getPrix();
  144.             $image $user->getImage();
  145.             $slug $user->getSlug();
  146.             $createdAt $user->getcreatedAt();
  147.             $nbr++;
  148.             $user1[$nbr]  =    array("id" => $id"titre" => $titre"somme" => $somme"image" => $image"slug" => $slug,  "createdAt" => $createdAt"likes" => 12);
  149.             $categorie1[$nbr] =  $user1[$nbr];
  150.         }
  151.         return $this->render('scroll/scroll.html.twig', [
  152.             "categories" =>    $categorie1,
  153.             'date' => $date,
  154.             'ville' => $ville,
  155.             'post' => $poste,
  156.             'visiteurs' => $visiteurs,
  157.             'url' => $url,
  158.         ]);
  159.     }
  160. }