Переглянути джерело

Meilleur affichage du fil et dans l'odre

Clément K 4 роки тому
батько
коміт
a2d788c231

+ 20 - 4
src/Controller/HomeController.php

@@ -13,6 +13,13 @@ use Symfony\Component\Routing\Annotation\Route;
 
 class HomeController extends AbstractController
 {
+    private function cmp_array($a, $b): int {
+        if ($a == $b) {
+            return 0;
+        }
+        return ($a > $b) ? -1 : 1;
+    }
+
     #[Route('/home', name: 'home')]
     public function index(Request $request): Response
     {
@@ -37,6 +44,7 @@ class HomeController extends AbstractController
                 $message = new Message();
                 $message->setText($form->get('text')->getData());
                 $message->setSender($profile);
+                $message->setDate(new \DateTime("now"));
                 $em->persist($message);
                 $em->flush();
             }
@@ -46,15 +54,23 @@ class HomeController extends AbstractController
         $repository_profile = $em->getRepository(User::class);
         $profile = $repository_profile->findOneBy(array('username' => $session->get('user')));
         $subscriptions = $profile->getSubscriptions();
-        $msg = array();
-        array_push($msg, $profile->getMessages());
+        $sub_msg = array();
+        foreach ($profile->getMessages() as $msg_u) {
+            array_push($sub_msg, $msg_u);
+        }
         foreach ($subscriptions as $user) {
-            array_push($msg, $user->getMessages());
+            foreach ($user->getMessages() as $msg) {
+                array_push($sub_msg, $msg);
+            }
         }
+        usort($sub_msg, array($this, "cmp_array"));
+
+
+
 
         return $this->render('home/index.html.twig', [
             'controller_name' => 'HomeController',
-            "messages" => $msg,
+            "messages" => $sub_msg,
             'form' => $form->createView()
         ]);
     }

+ 17 - 0
src/Entity/Message.php

@@ -35,6 +35,11 @@ class Message
      */
     private $mentions;
 
+    /**
+     * @ORM\Column(type="datetime")
+     */
+    private $date;
+
     public function __construct()
     {
         $this->mentions = new ArrayCollection();
@@ -92,4 +97,16 @@ class Message
 
         return $this;
     }
+
+    public function getDate(): ?\DateTimeInterface
+    {
+        return $this->date;
+    }
+
+    public function setDate(\DateTimeInterface $date): self
+    {
+        $this->date = $date;
+
+        return $this;
+    }
 }

+ 7 - 7
templates/home/index.html.twig

@@ -7,14 +7,14 @@
     {{ form_errors(form) }}
     {{ form_widget(form) }} <input type="submit">
     {{ form_end(form) }}
+    <ul>
+    {% for msg in messages %}
 
-    {% for msgpu in messages %}
-        {% for msg in msgpu %}
-            <ul>
-                <li>{{ msg.sender.getUsername() }}</li>
-                <li>{{ msg.text }}</li>
-            </ul>
-        {% endfor %}
+                <li>
+                    <div>{{ msg.sender.getUsername() }}</div>
+                    <div>{{ msg.text }}</div>
+                </li>
     {% endfor %}
+    </ul>
 
 {% endblock %}