Эх сурвалжийг харах

Fin de la personnalisation des Twig et correction d'un bug du profil

SPAETER NATHAN 4 жил өмнө
parent
commit
a56f1ae82c

+ 1 - 1
src/Controller/PrivateDiscussionController.php

@@ -22,7 +22,7 @@ class PrivateDiscussionController extends AbstractController
         }
 
         $formBuilder = $this->createFormBuilder();
-        $formBuilder->add('text', \Symfony\Component\Form\Extension\Core\Type\TextType::class)
+        $formBuilder->add('text', \Symfony\Component\Form\Extension\Core\Type\TextType::class,['label' => 'Envoyer un message'])
             ->setAction($this->generateUrl('private_discussion', ['id' => $id]));
         $form = $formBuilder->getForm();
 

+ 22 - 5
src/Controller/PrivateDiscussionsController.php

@@ -15,19 +15,22 @@ class PrivateDiscussionsController extends AbstractController
     #[Route('/private/discussions', name: 'private_discussions')]
     public function index(Request $request): Response
     {
+        $error = "";
         $session = $this->get('session');
 
         if (null === $session->get('user')) {
             return  $this->redirectToRoute('login');
         }
         $formBuilder = $this->createFormBuilder();
-        $formBuilder->add('text', \Symfony\Component\Form\Extension\Core\Type\TextType::class)
-            ->add('username', \Symfony\Component\Form\Extension\Core\Type\TextType::class)
+        $formBuilder->add('text', \Symfony\Component\Form\Extension\Core\Type\TextType::class, ['label' => 'Envoyer un message'])
+            ->add('username', \Symfony\Component\Form\Extension\Core\Type\TextType::class, ['label' => 'Utilisateur'])
             ->setAction($this->generateUrl('private_discussions'));
         $form = $formBuilder->getForm();
 
         $em = $this->getDoctrine()->getManager();
         $repo_user = $em->getRepository(User::class);
+        $user = $repo_user->findOneBy(array('username' => $session->get("user")));
+
         $user = $repo_user->findOneBy(array('username' => $session->get("user")));
         $private_discussions = array();
         foreach ($user->getPrivateDiscussions() as $pd) {
@@ -45,17 +48,29 @@ class PrivateDiscussionsController extends AbstractController
             if ($form->isValid()) {
                 $recept = $repo_user->findOneBy(array('username' => $form->get('username')->getData()));
                 if (!$recept) {
-                    return new Response("Profil non existant");
+                    return $this->render('private_discussions/index.html.twig', [
+                        'controller_name' => 'PrivateDiscussionsController',
+                        'form' => $form->createView(),
+                        'private_discussions' => $private_discussions,
+                        'username' => $session->get('user'),
+                        'error' => "Profil non existant.",
+                    ]);
                 }
                 $disc_found = false;
                 foreach ($user->getPrivateDiscussions() as $disc) {
-                    if(in_array($recept, $disc->getParticipants()->getValues())) {
+                    if (in_array($recept, $disc->getParticipants()->getValues())) {
                         $disc_found = true;
                         break;
                     }
                 }
                 if ($disc_found) {
-                    return new Response("Discussion existante");
+                    return $this->render('private_discussions/index.html.twig', [
+                        'controller_name' => 'PrivateDiscussionsController',
+                        'form' => $form->createView(),
+                        'private_discussions' => $private_discussions,
+                        'username' => $session->get('user'),
+                        'error' => "Discussion existante.",
+                    ]);
                 }
                 $discussion = new PrivateDiscussion();
                 $discussion->addParticipant($user);
@@ -67,6 +82,7 @@ class PrivateDiscussionsController extends AbstractController
                 $em->persist($dm);
                 $em->persist($discussion);
                 $em->flush();
+                return  $this->redirectToRoute('private_discussions');
             }
         }
 
@@ -75,6 +91,7 @@ class PrivateDiscussionsController extends AbstractController
             'form' => $form->createView(),
             'private_discussions' => $private_discussions,
             'username' => $session->get('user'),
+            'error' => "",
         ]);
     }
 }

+ 1 - 1
src/Controller/ProfileController.php

@@ -24,7 +24,7 @@ class ProfileController extends AbstractController
     {
         // Vérifie si le profil est celui de l'utilisateur connecté.
         $sessionUser = $this->get('session')->get('user');
-        if (null === $sessionUser->get('user')) {
+        if (null === $sessionUser) {
             return  $this->redirectToRoute('login');
         }
         $me = $sessionUser == $username ? true : false;

+ 6 - 4
templates/base.html.twig

@@ -24,7 +24,10 @@
 					<ul class="navbar-nav me-auto mb-2 mb-lg-0">
 						{% if username is defined and username is not null %}
 							<li class="nav-item">
-								<a class="nav-link" href="{{ path('home') }}">Accueil</a>
+								<a class="nav-link" href="{{ path('home') }}">Flux</a>
+							</li>
+							<li class="nav-item">
+								<a class="nav-link" href="{{ path('private_discussions') }}">MP</a>
 							</li>
 							<li class="nav-item">
 								<a class="nav-link" href="{{ path('profile', {'username': username }) }}">Profil</a>
@@ -50,7 +53,6 @@
 					</ul>
 				</div>
 			</div>
-		</nav>
-		{% block body %}{% endblock %}
+		</body>
 	</body>
-</html></body></html>
+</html></nav>{% block body %}{% endblock %}</body></html></body></html>

+ 10 - 3
templates/index/index.html.twig

@@ -1,7 +1,14 @@
 {% extends 'base.html.twig' %}
 
-{% block title %}Accueil{% endblock %}
+{% block title %}Accueil
+{% endblock %}
 
 {% block body %}
-<h1>Bienvenue sur Twyrael.</h1>
-{% endblock %}
+	<div class="d-flex flex-column align-items-center">
+		<div class="card" style="width: 75rem;">
+			<div class="card-body">
+				<h5 class="card-title">Bienvenue sur Twyrael.</h5>
+			</div>
+		</div>
+	</div>
+{% endblock %}

+ 14 - 8
templates/parameters/index.html.twig

@@ -4,12 +4,18 @@
 {% endblock %}
 
 {% block body %}
-	{{ form_start(form) }}
-	{{ form_errors(form) }}
-	{{ form_widget(form) }}
-	<button type="submit" class="btn btn-primary">Envoyer</button>
-	{% if message %}
-		<div>{{ message }}</div>
-	{% endif %}
-	{{ form_end(form) }}
+	<div class="d-flex flex-column align-items-center">
+		<div class="card" style="width: 75rem;">
+			<div class="card-body">
+				{{ form_start(form) }}
+				{{ form_errors(form) }}
+				{{ form_widget(form) }}
+				<button type="submit" class="btn btn-primary">Envoyer</button>
+				{% if message %}
+					<div>{{ message }}</div>
+				{% endif %}
+				{{ form_end(form) }}
+			</div>
+		</div>
+	</div>
 {% endblock %}

+ 22 - 13
templates/private_discussion/index.html.twig

@@ -1,18 +1,27 @@
 {% extends 'base.html.twig' %}
 
-{% block title %}Hello PrivateDiscussionController!{% endblock %}
+{% block title %}
+	Discussion
+{% endblock %}
 
 {% block body %}
-    <ul>
-    {% for msg in messages %}
-        <li>
-            <div>{{ msg.sender.getUsername() }}</div>
-            <div>{{ msg.text }}</div>
-        </li>
-    {% endfor %}
-    </ul>
-    {{ form_start(form) }}
-    {{ form_errors(form) }}
-    {{ form_widget(form) }} <input type="submit">
-    {{ form_end(form) }}
+	<div class="d-flex flex-column align-items-center">
+		<div class="card" style="width: 75rem;">
+			{% for msg in messages %}
+				<div class="card" style="width: 75rem;">
+					<div class="card-body">
+						<h5 class="card-title">{{ msg.sender.getUsername() }}</h5>
+						<p class="card-text">{{ msg.text | striptags('<a>') | raw }}</p>
+					</div>
+				</div>
+			{% endfor %}
+			<div class="card" style="width: 75rem;">
+				{{ form_start(form) }}
+				{{ form_errors(form) }}
+				{{ form_widget(form) }}
+				<button type="submit" class="btn btn-primary">Envoyer</button>
+				{{ form_end(form) }}
+			</div>
+		</div>
+	</div>
 {% endblock %}

+ 35 - 17
templates/private_discussions/index.html.twig

@@ -1,21 +1,39 @@
 {% extends 'base.html.twig' %}
 
-{% block title %}Hello PrivateDiscussionsController!{% endblock %}
+{% block title %}
+	Discussions
+{% endblock %}
 
 {% block body %}
-    {{ form_start(form) }}
-    {{ form_errors(form) }}
-    {{ form_widget(form) }} <input type="submit">
-    {{ form_end(form) }}
-    <ul>
-    {% for pd in private_discussions %}
-        {% for key, value in pd %}
-            <li>
-                <div>
-                <a href={{ path('private_discussion', {'id': key }) }}>Discussion privée avec </a><a href={{ path('profile', {'username': value }) }}>@{{ value }}</a>
-                </div>
-            </li>
-        {% endfor %}
-    {% endfor %}
-    </ul>
-{% endblock %}
+	<ul></ul>
+	<div class="d-flex flex-column align-items-center">
+		{% if error %}
+			<div class="card" style="width: 75rem;">
+				<div class="card-body">
+					<p class="card-text">{{ error }}</p>
+				</div>
+			</div>
+		{% endif %}
+		<div class="card" style="width: 75rem;">
+			<div class="card-body">
+				{{ form_start(form) }}
+				{{ form_errors(form) }}
+				{{ form_widget(form) }}
+				<input type="submit">
+				{{ form_end(form) }}
+			</div>
+		</div>
+		<div class="card" style="width: 75rem;">
+			<div class="card-body">
+				{% for pd in private_discussions %}
+					{% for key, value in pd %}
+						<p class="card-text">
+							<a href={{ path('private_discussion', {'id': key } ) }}>Discussion privée avec</a>
+							<a href={{ path('profile', {'username': value } ) }}>@{{ value }}</a>
+						</p>
+					{% endfor %}
+				{% endfor %}
+			</div>
+		</div>
+	</div>
+</div>{% endblock %}