src/Controller/ProfileController.php line 199

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Annonces;
  4. use App\Entity\Emplois;
  5. use App\Entity\Entreprises;
  6. use App\Entity\Hebergements;
  7. use App\Entity\Immobiliers;
  8. use App\Entity\Prestations;
  9. use App\Entity\Products;
  10. use App\Entity\Projects;
  11. use App\Entity\Statistiques;
  12. use App\Entity\Users;
  13. use App\Entity\Videos;
  14. use App\Repository\StatistiquesRepository;
  15. use App\Repository\UsersRepository;
  16. use Doctrine\Persistence\ManagerRegistry;
  17. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  18. use Symfony\Component\HttpFoundation\Request;
  19. use Symfony\Component\HttpFoundation\Response;
  20. use Symfony\Component\Routing\Annotation\Route;
  21. #[Route('/profile'name'app_profile_')]
  22. class ProfileController extends AbstractController
  23. {
  24.     #[Route('/{id}'name'index')]
  25.     public function index($idManagerRegistry $mrUsersRepository $usersRepository,
  26.     StatistiquesRepository $statistiquesRepository): Response
  27.     {
  28.         $userProfil $usersRepository->findBy(['id' => $id]);
  29.         $allStatistiques $statistiquesRepository->findBy(['page' => 'DETAIL_MEMBRE']);
  30.         return $this->render('profile/index.html.twig', [
  31.             'userProfil' => $userProfil,
  32.             'allStatistiques' => $allStatistiques
  33.         ]);
  34.     }
  35.     #[Route('/home/{id}'name'home')]
  36.     public function home($idManagerRegistry $mrUsersRepository $usersRepository,
  37.       StatistiquesRepository $statistiquesRepositoryRequest $request): Response
  38.     {
  39.         ///////////////////////////
  40.         $idUserConnect $this->getUser();
  41.         $session $request->getSession(); // Equivalent à session_star()
  42.         $elementVisite =  new Statistiques();
  43.         $pageStat 'HOME_PROFIL_MEMBRE';
  44.         $idElementStat $id;
  45.         $nameElementStat 'NOM_PROFIL_MEMBRE';
  46.         $idUserStat $idUserConnect;
  47.         if(($session != null) and ($idUserConnect != null))
  48.         {
  49.             $visitorIdentityStat 'Email';
  50.             $elementVisite->setPage($pageStat);
  51.             $elementVisite->setElement($nameElementStat);
  52.             $elementVisite->setIdElement($idElementStat);
  53.             $elementVisite->setUsers($idUserStat);
  54.             $elementVisite->setVisitorIdentity($visitorIdentityStat);
  55.         }
  56.         else
  57.         {
  58.             if(($session != null) and ($idUserConnect <= 0))
  59.             { 
  60.                 $visitorIdentityStat 'INCONNU';
  61.                 $elementVisite->setPage($pageStat);
  62.                 $elementVisite->setElement($nameElementStat);
  63.                 $elementVisite->setIdElement($idElementStat);
  64.                 $elementVisite->setUsers($idUserStat);
  65.                 $elementVisite->setVisitorIdentity($visitorIdentityStat);
  66.             }
  67.         }
  68.         $em $mr->getManager();
  69.         $em->persist($elementVisite);
  70.         $em->flush();
  71.         ///////////////////
  72.         $allStatistiques $statistiquesRepository->findBy(['page' => 'HOME_PROFIL_MEMBRE']);
  73.         $userProfil $mr->getRepository(Users::class)->findBy(['id' => $id]);
  74.         $reseauxUser $mr->getRepository(Users::class)->findBy(['id' => $id]);
  75.         $userPrestations $mr->getRepository(Prestations::class)->findBy(['users' => $id], ['name' => 'ASC']);
  76.         
  77.         return $this->render('profile/home.html.twig', [
  78.             'userProfil' => $userProfil,
  79.             'reseauxUser' => $reseauxUser,
  80.             'userPrestations' => $userPrestations,
  81.             'allStatistiques' => $allStatistiques
  82.         ]);
  83.     }
  84.     #[Route('/produits/{id}'name'showProducts')]
  85.     public function showProducts($idManagerRegistry $mrUsersRepository $usersRepository,
  86.     StatistiquesRepository $statistiquesRepository): Response
  87.     {
  88.         $myProducts $mr->getRepository(Products::class)->findBy(['users' => $id], ['id' => 'DESC']);
  89.         $userProfil $mr->getRepository(Users::class)->findBy(['id' => $id]); ////
  90.         $allStatistiques $statistiquesRepository->findBy(['page' => 'DETAIL_PRODUCT']);///
  91.         return $this->render('profile/showProducts.html.twig', [
  92.             'myProducts' => $myProducts,
  93.             'userProfil' => $userProfil,
  94.             'allStatistiques' => $allStatistiques
  95.         ]);
  96.     }
  97.     #[Route('/immobiliers/{id}'name'showImmobiliers')]
  98.     public function showImmobiliers($idManagerRegistry $mrStatistiquesRepository $statistiquesRepository): Response
  99.     {
  100.         $myImmobiliers $mr->getRepository(Immobiliers::class)->findBy(['users' => $id], ['id' => 'DESC']);
  101.         $userProfil $mr->getRepository(Users::class)->findBy(['id' => $id]); ////
  102.         $allStatistiques $statistiquesRepository->findBy(['page' => 'DETAIL_IMMOBILIER']);
  103.         return $this->render('profile/showImmobiliers.html.twig', [
  104.             'myImmobiliers' => $myImmobiliers,
  105.             'userProfil' => $userProfil,
  106.             'allStatistiques' => $allStatistiques
  107.         ]);
  108.     }
  109.     #[Route('/hebergements/{id}'name'showHebergements')]
  110.     public function showHebergements($idManagerRegistry $mrUsersRepository $usersRepository
  111.     StatistiquesRepository $statistiquesRepository): Response
  112.     {
  113.         $myHebergements $mr->getRepository(Hebergements::class)->findBy(['users' => $id], ['id' => 'DESC']);
  114.         $userProfil $mr->getRepository(Users::class)->findBy(['id' => $id]); ////
  115.         $allStatistiques $statistiquesRepository->findBy(['page' => 'DETAIL_HEBERGEMENT']);
  116.         return $this->render('profile/showHebergements.html.twig', [
  117.             'myHebergements' => $myHebergements,
  118.             'userProfil' => $userProfil,
  119.             'allStatistiques' => $allStatistiques
  120.         ]);
  121.     }
  122.     #[Route('/entreprises/{id}'name'showEntreprises')]
  123.     public function showEntreprises($idManagerRegistry $mrUsersRepository $usersRepository,
  124.     StatistiquesRepository $statistiquesRepository): Response
  125.     {
  126.         $myEntreprises $mr->getRepository(Entreprises::class)->findBy(['users' => $id], ['id' => 'DESC']);
  127.         $userProfil $mr->getRepository(Users::class)->findBy(['id' => $id]); ////
  128.         $allStatistiques $statistiquesRepository->findBy(['page' => 'DETAIL_ENTREPRISE']);
  129.         return $this->render('profile/showEntreprises.html.twig', [
  130.             'myEntreprises' => $myEntreprises,
  131.             'userProfil' => $userProfil,
  132.             'allStatistiques' => $allStatistiques
  133.         ]);
  134.     }
  135.     #[Route('/projets/{id}'name'showProjects')]
  136.     public function showProjects($idManagerRegistry $mrUsersRepository $usersRepository,
  137.     StatistiquesRepository $statistiquesRepository): Response
  138.     {
  139.         $myProjects $mr->getRepository(Projects::class)->findBy(['users' => $id], ['id' => 'DESC']);
  140.         $userProfil $mr->getRepository(Users::class)->findBy(['id' => $id]); ////
  141.         $allStatistiques $statistiquesRepository->findBy(['page' => 'DETAIL_PROJECT']);
  142.         return $this->render('profile/showProjects.html.twig', [
  143.             'myProjects' => $myProjects,
  144.             'userProfil' => $userProfil,
  145.             'allStatistiques' => $allStatistiques
  146.         ]);
  147.     }
  148.     #[Route('/prestations/{id}'name'showPrestations')]
  149.     public function showPrestations($idManagerRegistry $mrUsersRepository $usersRepository,
  150.     StatistiquesRepository $statistiquesRepository): Response
  151.     {
  152.         $myPrestations $mr->getRepository(Prestations::class)->findBy(['users' => $id], ['name' => 'ASC']);
  153.         $userProfil $mr->getRepository(Users::class)->findBy(['id' => $id]); ////
  154.         $allStatistiques $statistiquesRepository->findBy(['page' => 'DETAIL_PRESTATION']);
  155.         return $this->render('profile/showPrestations.html.twig', [
  156.             'myPrestations' => $myPrestations,
  157.             'userProfil' => $userProfil,
  158.             'allStatistiques' => $allStatistiques
  159.         ]);
  160.     }
  161.     #[Route('/annonces/{id}'name'showAnnonces')]
  162.     public function showAnnonces($idManagerRegistry $mrUsersRepository $usersRepository,
  163.     StatistiquesRepository $statistiquesRepository): Response
  164.     {
  165.         $myAnnonces $mr->getRepository(Annonces::class)->findBy(['users' => $id], ['id' => 'DESC']);
  166.         $userProfil $mr->getRepository(Users::class)->findBy(['id' => $id]); ////
  167.         $allStatistiques $statistiquesRepository->findBy(['page' => 'DETAIL_ANNONCE']);
  168.         return $this->render('profile/showAnnonces.html.twig', [
  169.             'myAnnonces' => $myAnnonces,
  170.             'userProfil' => $userProfil,
  171.             'allStatistiques' => $allStatistiques
  172.         ]);
  173.     }
  174.     #[Route('/emplois/{id}'name'showEmplois')]
  175.     public function showEmplois($idManagerRegistry $mrUsersRepository $usersRepository,
  176.     StatistiquesRepository $statistiquesRepository): Response
  177.     {
  178.         $myEmplois $mr->getRepository(Emplois::class)->findBy(['users' => $id], ['id' => 'DESC']);
  179.         $userProfil $mr->getRepository(Users::class)->findBy(['id' => $id]); ////
  180.         $allStatistiques $statistiquesRepository->findBy(['page' => 'DETAIL_EMPLOI']);
  181.         return $this->render('profile/showEmplois.html.twig', [
  182.             'myEmplois' => $myEmplois,
  183.             'userProfil' => $userProfil,
  184.             'allStatistiques' => $allStatistiques
  185.         ]);
  186.     }
  187.     #[Route('/list/videos/{id}'name'showVideosList')]
  188.     public function showVideosList($idManagerRegistry $mrUsersRepository $usersRepository,
  189.     StatistiquesRepository $statistiquesRepository): Response
  190.     {
  191.         $userProfil $mr->getRepository(Users::class)->findBy(['id' => $id]); ////
  192.         $allStatistiques $statistiquesRepository->findBy(['page' => 'DETAIL_VIDEO']);
  193.         $videosUser $mr->getRepository(Videos::class)->findBy(['users' => $id], ['id' => 'DESC']); // les videos de cet utilisateur
  194.         return $this->render('profile/showVideosList.html.twig', [
  195.             'userProfil' => $userProfil,
  196.             'allStatistiques' => $allStatistiques,
  197.             'videosUser' => $videosUser
  198.         ]);
  199.     }
  200.         
  201.     #[Route('/videos/{id}/{idV}'name'showVideos')]
  202.     public function showVideos($id$idVManagerRegistry $mrUsersRepository $usersRepository,
  203.     StatistiquesRepository $statistiquesRepositoryRequest $request): Response
  204.     {
  205.         //$myVideos = $mr->getRepository(Videos::class)->findBy(['users' => $id], ['id' => 'DESC']);
  206.         $idUserConnect $this->getUser();
  207.         $session $request->getSession(); // Equivalent à session_star()
  208.         $elementVisite = new Statistiques();
  209.         $userProfil $mr->getRepository(Users::class)->findBy(['id' => $id]); ////
  210.         $allStatistiques $statistiquesRepository->findBy(['page' => 'DETAIL_VIDEO']);
  211.         $videoCourant $mr->getRepository(Videos::class)->findOneBy(['id' => $idV]); // Video courant en lecture
  212.         $videosUser $mr->getRepository(Videos::class)->findBy(['users' => $id], ['id' => 'DESC']); // les videos de cet utilisateur
  213.         $pageStat 'DETAIL_VIDEO';
  214.         $idElementStat $idV;
  215.         $nameElementStat 'NOM_VIDEO';
  216.         $idUserStat $idUserConnect;
  217.         if(($session != null) and ($idUserConnect != null))
  218.         {
  219.             $visitorIdentityStat 'Email';
  220.             $elementVisite->setPage($pageStat);
  221.             $elementVisite->setElement($nameElementStat);
  222.             $elementVisite->setIdElement($idElementStat);
  223.             $elementVisite->setUsers($idUserStat);
  224.             $elementVisite->setVisitorIdentity($visitorIdentityStat);
  225.         }
  226.         else
  227.         {
  228.             if(($session != null) and ($idUserConnect <= 0))
  229.             { 
  230.                 $visitorIdentityStat 'INCONNU';
  231.                 $elementVisite->setPage($pageStat);
  232.                 $elementVisite->setElement($nameElementStat);
  233.                 $elementVisite->setIdElement($idElementStat);
  234.                 $elementVisite->setUsers($idUserStat);
  235.                 $elementVisite->setVisitorIdentity($visitorIdentityStat);
  236.             }
  237.         }
  238.         $em $mr->getManager();
  239.         $em->persist($elementVisite);
  240.         $em->flush();
  241.         ///////////////////
  242.         return $this->render('profile/showVideos.html.twig', [
  243.             // 'myVideos' => $myVideos,
  244.             'userProfil' => $userProfil,
  245.             'allStatistiques' => $allStatistiques,
  246.             'videosUser' => $videosUser,
  247.             'videoCourant' => $videoCourant
  248.         ]);
  249.     }
  250.             
  251.     #[Route('/commandes'name'orders')]
  252.     public function orders(): Response
  253.     {
  254.         return $this->render('profile/index.html.twig', [
  255.             'controller_name' => 'Commandes de l\'utilisateur'
  256.         ]);
  257.     }
  258. }