From f8959acae73152fe9f7593fbf884a13f5c0044bc Mon Sep 17 00:00:00 2001 From: Colin FRIZOT Date: Wed, 30 Nov 2022 11:32:32 +0100 Subject: [PATCH] Ajoute les 2 compteurs de messages --- src/Silex/Controller/UserController.php | 10 +++++++++- src/Silex/Gateway/CommentGateway.php | 19 +++++++++++++++++++ views/home.php | 6 ++++++ 3 files changed, 34 insertions(+), 1 deletion(-) diff --git a/src/Silex/Controller/UserController.php b/src/Silex/Controller/UserController.php index 194a3bd..8406854 100644 --- a/src/Silex/Controller/UserController.php +++ b/src/Silex/Controller/UserController.php @@ -15,12 +15,20 @@ class UserController public function index(DI $di, array $params): HttpResponse { $gw = $di->getNewsGateway(); + $gwc = $di->getCommentGateway(); + $user = $di->getSecurity()->getCurrentUser(); $page = intval($params['page'] ?? 1); $total = $gw->getCount(); $nbPages = Pagination::getNbPages($total, self::PER_PAGE); $news = $gw->getPaginatedRecentNews($page , self::PER_PAGE); - return new HttpResponse(200, 'home', ['news' => $news, 'page' => $page, 'nbPages' => $nbPages, 'router' => $di->getRouter()]); + $nbComments = $gwc->getCommentNumber(); + if($user !== null){ + $nbCommentsByUser = $gwc->getCommentNumberFromUser($user->getId()); + } else { + $nbCommentsByUser = 0; + } + return new HttpResponse(200, 'home', ['news' => $news, 'page' => $page, 'nbPages' => $nbPages, 'router' => $di->getRouter(), 'nbComments' => $nbComments, 'nbCommentsByUser' => $nbCommentsByUser]); } public function viewPost(DI $di, array $params): HttpResponse diff --git a/src/Silex/Gateway/CommentGateway.php b/src/Silex/Gateway/CommentGateway.php index 87ee152..2cc4f23 100644 --- a/src/Silex/Gateway/CommentGateway.php +++ b/src/Silex/Gateway/CommentGateway.php @@ -34,6 +34,25 @@ class CommentGateway return $comments; } + public function getCommentNumber(): int + { + $req = $this->pdo->prepare('SELECT COUNT(*) FROM comment'); + $req->execute(); + $data = $req->fetch(); + $nbComment = intval($data[0]); + return $nbComment; + } + + public function getCommentNumberFromUser(int $id): int + { + $req = $this->pdo->prepare('SELECT COUNT(*) FROM comment WHERE author_id = :id'); + $req->bindValue(':id', $id, PDO::PARAM_INT); + $req->execute(); + $data = $req->fetch(); + $nbComment = intval($data[0]); + return $nbComment; + } + private function createComment(array $data): Comment { return new Comment(intval($data['id_comment']),intval($data['news_id']), DateTime::createFromFormat('Y-m-d H:i:s', $data['publication_date']), $data['content'], intval($data['author_id'])); diff --git a/views/home.php b/views/home.php index 43bc521..aebf437 100644 --- a/views/home.php +++ b/views/home.php @@ -1,4 +1,10 @@ +
+

+
+ +

+

Hello world!