diff --git a/src/Silex/Controller/VisitorController.php b/src/Silex/Controller/VisitorController.php index 6f27520..076d182 100644 --- a/src/Silex/Controller/VisitorController.php +++ b/src/Silex/Controller/VisitorController.php @@ -23,8 +23,13 @@ class VisitorController { $page = intval($params['page'] ?? 1); $total = $gw->getCount(); + $nbPages = Pagination::getNbPages($total, self::PER_PAGE); - $news = $gw->getPaginatedRecentNews($page , self::PER_PAGE); + if(!empty($_GET['dateDeb']) && !empty($_GET['dateFin'])) { + $news = $gw->getLike($_GET['dateDeb'], $_GET['dateFin'], $page , self::PER_PAGE); + } else { + $news = $gw->getPaginatedRecentNews($page , self::PER_PAGE); + } $nbComments = $gwc->getCommentNumber(); if ($user !== null) { $nbCommentsByUser = $gwc->getCommentNumberFromUser($user->getId()); diff --git a/src/Silex/Gateway/NewsGateway.php b/src/Silex/Gateway/NewsGateway.php index e2ffda5..a38400e 100644 --- a/src/Silex/Gateway/NewsGateway.php +++ b/src/Silex/Gateway/NewsGateway.php @@ -76,6 +76,24 @@ class NewsGateway return $data === false ? null : $this->createNews($data); } + /** + * @return News[] + */ + public function getLike(string $dateDeb, string $dateFin,int $page = 1, int $limit = 10): array { + $req = $this->pdo->prepare('SELECT * FROM news WHERE DATE_FORMAT(publication_date, "%Y-%m-%d") BETWEEN DATE_FORMAT(:dateDeb, "%Y-%m-%d") AND DATE_FORMAT(:dateFin, "%Y-%m-%d") ORDER BY publication_date LIMIT :limit OFFSET :offset;'); + $req->bindValue(':dateDeb', $dateDeb, PDO::PARAM_STR); + $req->bindValue(':dateFin', $dateFin, PDO::PARAM_STR); + $req->bindValue('limit', $limit, PDO::PARAM_INT); + $req->bindValue('offset', ($page - 1) * $limit, PDO::PARAM_INT); + if (!$req->execute()) { + return []; + } + $news = []; + while ($data = $req->fetch()) { + $news[] = $this->createNews($data); + } + return $news; + } private function createNews(array $data): News { diff --git a/views/home.php b/views/home.php index 58007f9..91d90c1 100644 --- a/views/home.php +++ b/views/home.php @@ -5,7 +5,11 @@ = "Nombre de messages de l'utilisateur : " . $params['nbCommentsByUser'] ?>
-