getDate() == $b->getDate()) { return 0; } return ($a->getDate() > $b->getDate()) ? -1 : 1; } #[Route('/profile/{username}', name: 'profile')] public function index($username): Response { // Vérifie si le profil est celui de l'utilisateur connecté. $sessionUser = $this->get('session')->get('user'); $me = $sessionUser == $username ? true : false; // Connexion à la table User $em = $this->getDoctrine()->getManager(); $repository_profile = $em->getRepository(User::class); // Recherche de l'utilisateur correspondant au profil de la route $profile = $repository_profile->findOneBy(array('username' => $username)); if ($profile === null) { return new Response("Profil non existant"); } // Recherche de l'utilisateur connecté à la session $loginuserprofile = $repository_profile->findOneBy(array('username' => $sessionUser)); // Vérifie si l'utilisateur connecté est abonné au profil $follow = $loginuserprofile->getSubscriptions()->contains($profile) ? true : false; $subscriptionsList = $profile->getSubscriptions(); $followersList = $profile->getFollowers(); // Définition des variables du profil $username = $profile->getUsername(); $isPrivate = $profile->getIsPrivate(); $description = $profile->getDescription(); $privateNotAllowed = false; if (!$me and $isPrivate and !$follow) { $privateNotAllowed = true; } // Récupération des messages de l'utilisateur $sub_msg = array(); $rt = $profile->getRetweets(); foreach ($rt as $r) { $og_message = $r->getOgMessage(); $rt_message = new Message(); $rt_message->setText($og_message->getText()); $rt_message->setSender($og_message->getSender()); $rt_message->setId($og_message->getId()); $rt_message->setDate($r->getRtDate()); array_push($sub_msg, $rt_message); } foreach ($profile->getMessages() as $msg_u) { array_push($sub_msg, $msg_u); } usort($sub_msg, array($this, "cmp_array")); return $this->render('profile/index.html.twig', [ 'privateNotAllowed' => $privateNotAllowed, 'profileusername' => $username, 'isPrivate' => $isPrivate, 'description' => $description, 'me' => $me, 'username' => $sessionUser, 'follow' => $follow, 'subscriptionsList' => $subscriptionsList, 'followersList' => $followersList, 'messages' => $sub_msg, ]); } }