41 $myEmail = $_SESSION[
'user_email'];
44 $conversations = $messageDAO->getConversations($myEmail);
46 $template = $this->
getTwig()->load(
'message_liste.html.twig');
47 echo $template->render([
48 'page' => [
'title' =>
'Mes Messages',
'name' =>
'messages'],
49 'contacts' => $conversations
59 $myEmail = $_SESSION[
'user_email'];
61 $contactPseudo = $this->
getGet()[
'contact'] ??
null;
63 if (!$contactPseudo) {
68 $contact = $utilisateurDAO->findByPseudo($contactPseudo);
74 $contactEmail = $contact->getEmailUtilisateur();
76 if ($myEmail === $contactEmail) {
84 $contenu = trim($this->
getPost()[
'contenu']);
85 if (!empty($contenu)) {
86 $me = $utilisateurDAO->find($myEmail);
95 $messageDAO->create($nouveauMessage);
97 $this->
redirectTo(
'message',
'conversation', [
'contact' => $contact->getPseudoUtilisateur()]);
101 $messages = $messageDAO->getMessagesConversation($myEmail, $contactEmail);
103 foreach ($messages as $msg) {
105 if ($msg->getEmailDestinataire()->getEmailUtilisateur() === $myEmail && !$msg->getEstLu()) {
107 $messageDAO->markAsRead($msg->getIdMessage());
109 $msg->setEstLu(
true);
113 $template = $this->
getTwig()->load(
'message_conversation.html.twig');
114 echo $template->render([
115 'page' => [
'title' =>
'Discussion avec ' . $contact->getPseudoUtilisateur()],
116 'contact' => $contact,
117 'messages' => $messages,
118 'myEmail' => $myEmail
Contrôleur dédié à la gestion des messages.
__construct(\Twig\Environment $twig, \Twig\Loader\FilesystemLoader $loader)
conversation()
Affiche une discussion précise et gère l'envoi d'un nouveau message.
lister()
Affiche la liste des conversations de l'utilisateur connecté.
Classe de base pour tous les contrôleurs de l'application.
getPost()
Récupère les données POST.
redirectTo(string $controller, string $method, array $params=[])
Redirige vers un contrôleur et une méthode donnés.
getGet()
Récupère les données GET.
requireAuth(string $controller='', string $method='', array $params=[])
Exige que l'utilisateur soit authentifié.
Twig Loader FilesystemLoader $loader
getPDO()
Récupère la connexion PDO.
getTwig()
Récupère l'environnement Twig.