<?php
namespace App\Controller;
use App\Entity\Annonces;
use App\Entity\Emplois;
use App\Entity\Entreprises;
use App\Entity\Hebergements;
use App\Entity\Immobiliers;
use App\Entity\Prestations;
use App\Entity\Products;
use App\Entity\Projects;
use App\Entity\Statistiques;
use App\Entity\Users;
use App\Entity\Videos;
use App\Repository\StatistiquesRepository;
use App\Repository\UsersRepository;
use Doctrine\Persistence\ManagerRegistry;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
#[Route('/profile', name: 'app_profile_')]
class ProfileController extends AbstractController
{
#[Route('/{id}', name: 'index')]
public function index($id, ManagerRegistry $mr, UsersRepository $usersRepository,
StatistiquesRepository $statistiquesRepository): Response
{
$userProfil = $usersRepository->findBy(['id' => $id]);
$allStatistiques = $statistiquesRepository->findBy(['page' => 'DETAIL_MEMBRE']);
return $this->render('profile/index.html.twig', [
'userProfil' => $userProfil,
'allStatistiques' => $allStatistiques
]);
}
#[Route('/home/{id}', name: 'home')]
public function home($id, ManagerRegistry $mr, UsersRepository $usersRepository,
StatistiquesRepository $statistiquesRepository, Request $request): Response
{
///////////////////////////
$idUserConnect = $this->getUser();
$session = $request->getSession(); // Equivalent à session_star()
$elementVisite = new Statistiques();
$pageStat = 'HOME_PROFIL_MEMBRE';
$idElementStat = $id;
$nameElementStat = 'NOM_PROFIL_MEMBRE';
$idUserStat = $idUserConnect;
if(($session != null) and ($idUserConnect != null))
{
$visitorIdentityStat = 'Email';
$elementVisite->setPage($pageStat);
$elementVisite->setElement($nameElementStat);
$elementVisite->setIdElement($idElementStat);
$elementVisite->setUsers($idUserStat);
$elementVisite->setVisitorIdentity($visitorIdentityStat);
}
else
{
if(($session != null) and ($idUserConnect <= 0))
{
$visitorIdentityStat = 'INCONNU';
$elementVisite->setPage($pageStat);
$elementVisite->setElement($nameElementStat);
$elementVisite->setIdElement($idElementStat);
$elementVisite->setUsers($idUserStat);
$elementVisite->setVisitorIdentity($visitorIdentityStat);
}
}
$em = $mr->getManager();
$em->persist($elementVisite);
$em->flush();
///////////////////
$allStatistiques = $statistiquesRepository->findBy(['page' => 'HOME_PROFIL_MEMBRE']);
$userProfil = $mr->getRepository(Users::class)->findBy(['id' => $id]);
$reseauxUser = $mr->getRepository(Users::class)->findBy(['id' => $id]);
$userPrestations = $mr->getRepository(Prestations::class)->findBy(['users' => $id], ['name' => 'ASC']);
return $this->render('profile/home.html.twig', [
'userProfil' => $userProfil,
'reseauxUser' => $reseauxUser,
'userPrestations' => $userPrestations,
'allStatistiques' => $allStatistiques
]);
}
#[Route('/produits/{id}', name: 'showProducts')]
public function showProducts($id, ManagerRegistry $mr, UsersRepository $usersRepository,
StatistiquesRepository $statistiquesRepository): Response
{
$myProducts = $mr->getRepository(Products::class)->findBy(['users' => $id], ['id' => 'DESC']);
$userProfil = $mr->getRepository(Users::class)->findBy(['id' => $id]); ////
$allStatistiques = $statistiquesRepository->findBy(['page' => 'DETAIL_PRODUCT']);///
return $this->render('profile/showProducts.html.twig', [
'myProducts' => $myProducts,
'userProfil' => $userProfil,
'allStatistiques' => $allStatistiques
]);
}
#[Route('/immobiliers/{id}', name: 'showImmobiliers')]
public function showImmobiliers($id, ManagerRegistry $mr, StatistiquesRepository $statistiquesRepository): Response
{
$myImmobiliers = $mr->getRepository(Immobiliers::class)->findBy(['users' => $id], ['id' => 'DESC']);
$userProfil = $mr->getRepository(Users::class)->findBy(['id' => $id]); ////
$allStatistiques = $statistiquesRepository->findBy(['page' => 'DETAIL_IMMOBILIER']);
return $this->render('profile/showImmobiliers.html.twig', [
'myImmobiliers' => $myImmobiliers,
'userProfil' => $userProfil,
'allStatistiques' => $allStatistiques
]);
}
#[Route('/hebergements/{id}', name: 'showHebergements')]
public function showHebergements($id, ManagerRegistry $mr, UsersRepository $usersRepository,
StatistiquesRepository $statistiquesRepository): Response
{
$myHebergements = $mr->getRepository(Hebergements::class)->findBy(['users' => $id], ['id' => 'DESC']);
$userProfil = $mr->getRepository(Users::class)->findBy(['id' => $id]); ////
$allStatistiques = $statistiquesRepository->findBy(['page' => 'DETAIL_HEBERGEMENT']);
return $this->render('profile/showHebergements.html.twig', [
'myHebergements' => $myHebergements,
'userProfil' => $userProfil,
'allStatistiques' => $allStatistiques
]);
}
#[Route('/entreprises/{id}', name: 'showEntreprises')]
public function showEntreprises($id, ManagerRegistry $mr, UsersRepository $usersRepository,
StatistiquesRepository $statistiquesRepository): Response
{
$myEntreprises = $mr->getRepository(Entreprises::class)->findBy(['users' => $id], ['id' => 'DESC']);
$userProfil = $mr->getRepository(Users::class)->findBy(['id' => $id]); ////
$allStatistiques = $statistiquesRepository->findBy(['page' => 'DETAIL_ENTREPRISE']);
return $this->render('profile/showEntreprises.html.twig', [
'myEntreprises' => $myEntreprises,
'userProfil' => $userProfil,
'allStatistiques' => $allStatistiques
]);
}
#[Route('/projets/{id}', name: 'showProjects')]
public function showProjects($id, ManagerRegistry $mr, UsersRepository $usersRepository,
StatistiquesRepository $statistiquesRepository): Response
{
$myProjects = $mr->getRepository(Projects::class)->findBy(['users' => $id], ['id' => 'DESC']);
$userProfil = $mr->getRepository(Users::class)->findBy(['id' => $id]); ////
$allStatistiques = $statistiquesRepository->findBy(['page' => 'DETAIL_PROJECT']);
return $this->render('profile/showProjects.html.twig', [
'myProjects' => $myProjects,
'userProfil' => $userProfil,
'allStatistiques' => $allStatistiques
]);
}
#[Route('/prestations/{id}', name: 'showPrestations')]
public function showPrestations($id, ManagerRegistry $mr, UsersRepository $usersRepository,
StatistiquesRepository $statistiquesRepository): Response
{
$myPrestations = $mr->getRepository(Prestations::class)->findBy(['users' => $id], ['name' => 'ASC']);
$userProfil = $mr->getRepository(Users::class)->findBy(['id' => $id]); ////
$allStatistiques = $statistiquesRepository->findBy(['page' => 'DETAIL_PRESTATION']);
return $this->render('profile/showPrestations.html.twig', [
'myPrestations' => $myPrestations,
'userProfil' => $userProfil,
'allStatistiques' => $allStatistiques
]);
}
#[Route('/annonces/{id}', name: 'showAnnonces')]
public function showAnnonces($id, ManagerRegistry $mr, UsersRepository $usersRepository,
StatistiquesRepository $statistiquesRepository): Response
{
$myAnnonces = $mr->getRepository(Annonces::class)->findBy(['users' => $id], ['id' => 'DESC']);
$userProfil = $mr->getRepository(Users::class)->findBy(['id' => $id]); ////
$allStatistiques = $statistiquesRepository->findBy(['page' => 'DETAIL_ANNONCE']);
return $this->render('profile/showAnnonces.html.twig', [
'myAnnonces' => $myAnnonces,
'userProfil' => $userProfil,
'allStatistiques' => $allStatistiques
]);
}
#[Route('/emplois/{id}', name: 'showEmplois')]
public function showEmplois($id, ManagerRegistry $mr, UsersRepository $usersRepository,
StatistiquesRepository $statistiquesRepository): Response
{
$myEmplois = $mr->getRepository(Emplois::class)->findBy(['users' => $id], ['id' => 'DESC']);
$userProfil = $mr->getRepository(Users::class)->findBy(['id' => $id]); ////
$allStatistiques = $statistiquesRepository->findBy(['page' => 'DETAIL_EMPLOI']);
return $this->render('profile/showEmplois.html.twig', [
'myEmplois' => $myEmplois,
'userProfil' => $userProfil,
'allStatistiques' => $allStatistiques
]);
}
#[Route('/list/videos/{id}', name: 'showVideosList')]
public function showVideosList($id, ManagerRegistry $mr, UsersRepository $usersRepository,
StatistiquesRepository $statistiquesRepository): Response
{
$userProfil = $mr->getRepository(Users::class)->findBy(['id' => $id]); ////
$allStatistiques = $statistiquesRepository->findBy(['page' => 'DETAIL_VIDEO']);
$videosUser = $mr->getRepository(Videos::class)->findBy(['users' => $id], ['id' => 'DESC']); // les videos de cet utilisateur
return $this->render('profile/showVideosList.html.twig', [
'userProfil' => $userProfil,
'allStatistiques' => $allStatistiques,
'videosUser' => $videosUser
]);
}
#[Route('/videos/{id}/{idV}', name: 'showVideos')]
public function showVideos($id, $idV, ManagerRegistry $mr, UsersRepository $usersRepository,
StatistiquesRepository $statistiquesRepository, Request $request): Response
{
//$myVideos = $mr->getRepository(Videos::class)->findBy(['users' => $id], ['id' => 'DESC']);
$idUserConnect = $this->getUser();
$session = $request->getSession(); // Equivalent à session_star()
$elementVisite = new Statistiques();
$userProfil = $mr->getRepository(Users::class)->findBy(['id' => $id]); ////
$allStatistiques = $statistiquesRepository->findBy(['page' => 'DETAIL_VIDEO']);
$videoCourant = $mr->getRepository(Videos::class)->findOneBy(['id' => $idV]); // Video courant en lecture
$videosUser = $mr->getRepository(Videos::class)->findBy(['users' => $id], ['id' => 'DESC']); // les videos de cet utilisateur
$pageStat = 'DETAIL_VIDEO';
$idElementStat = $idV;
$nameElementStat = 'NOM_VIDEO';
$idUserStat = $idUserConnect;
if(($session != null) and ($idUserConnect != null))
{
$visitorIdentityStat = 'Email';
$elementVisite->setPage($pageStat);
$elementVisite->setElement($nameElementStat);
$elementVisite->setIdElement($idElementStat);
$elementVisite->setUsers($idUserStat);
$elementVisite->setVisitorIdentity($visitorIdentityStat);
}
else
{
if(($session != null) and ($idUserConnect <= 0))
{
$visitorIdentityStat = 'INCONNU';
$elementVisite->setPage($pageStat);
$elementVisite->setElement($nameElementStat);
$elementVisite->setIdElement($idElementStat);
$elementVisite->setUsers($idUserStat);
$elementVisite->setVisitorIdentity($visitorIdentityStat);
}
}
$em = $mr->getManager();
$em->persist($elementVisite);
$em->flush();
///////////////////
return $this->render('profile/showVideos.html.twig', [
// 'myVideos' => $myVideos,
'userProfil' => $userProfil,
'allStatistiques' => $allStatistiques,
'videosUser' => $videosUser,
'videoCourant' => $videoCourant
]);
}
#[Route('/commandes', name: 'orders')]
public function orders(): Response
{
return $this->render('profile/index.html.twig', [
'controller_name' => 'Commandes de l\'utilisateur'
]);
}
}