From 1b3255f47f4e9a9baa5d31c5283d0df5f4e8b7cd Mon Sep 17 00:00:00 2001 From: mapoint2 Date: Sat, 18 Nov 2023 14:43:21 +0100 Subject: [PATCH] modif vue article --- fluxRSS/DAL/AdminGateway.php | 10 ++---- fluxRSS/DAL/ArticleGateway.php | 45 ++++++++++++------------- fluxRSS/DAL/FluxGateway.php | 37 ++++++-------------- fluxRSS/config/config.php | 7 ++-- fluxRSS/controleur/AdminControleur.php | 15 ++++++++- fluxRSS/controleur/UserControleur.php | 2 +- fluxRSS/metier/Flux.php | 4 +++ fluxRSS/model/AdminModel.php | 2 +- fluxRSS/model/ArticleModel.php | 35 +++++++++++++++++-- fluxRSS/model/FluxModel.php | 16 ++++----- fluxRSS/model/Parser.php | 4 +-- fluxRSS/templates/listArticle.html | 3 +- fluxRSS/templates/listArticleAdmin.html | 18 ++++++---- 13 files changed, 115 insertions(+), 83 deletions(-) diff --git a/fluxRSS/DAL/AdminGateway.php b/fluxRSS/DAL/AdminGateway.php index 16e6ab3..2f1f83b 100755 --- a/fluxRSS/DAL/AdminGateway.php +++ b/fluxRSS/DAL/AdminGateway.php @@ -18,12 +18,8 @@ class AdminGateway public function login(string $login):array { - try{ - $query = 'SELECT password,mail FROM Admin WHERE name = :login;'; - $this->con->executeQuery($query, array(':login' => array($login, PDO::PARAM_STR))); - return $this->con->getResults(); - }catch (\PDOException $e){ - throw new \Exception("PDO error"); - } + $query = 'SELECT password,mail FROM Admin WHERE name = :login;'; + $this->con->executeQuery($query, array(':login' => array($login, PDO::PARAM_STR))); + return $this->con->getResults(); } } \ No newline at end of file diff --git a/fluxRSS/DAL/ArticleGateway.php b/fluxRSS/DAL/ArticleGateway.php index 89e43ec..8a04b6c 100755 --- a/fluxRSS/DAL/ArticleGateway.php +++ b/fluxRSS/DAL/ArticleGateway.php @@ -3,6 +3,7 @@ namespace DAL; use Exception; use metier\Article; +use metier\Flux; use PDO; class ArticleGateway { @@ -21,40 +22,36 @@ class ArticleGateway */ public function getAllArticles():array { - try { - $query = 'SELECT * FROM Article;'; - $this->con->executeQuery($query, array()); - return $this->con->getResults(); - }catch (\PDOException $e){ - throw new Exception("PDO error"); - } + $query = 'SELECT * FROM Article;'; + $this->con->executeQuery($query, array()); + return $this->con->getResults(); } /** * @throws Exception */ public function addArticle(Article $article){ - try { - $query = 'INSERT INTO Article VALUES (:id,:title,to_date(:date,"Dy, DD Mon YYYY"),:description,:guid,:link,:mediaContent,:provenance);'; - $this->con->executeQuery($query, array(':id' => array($article->getId(), PDO::PARAM_STR), - ':title' => array($article->getTitle(), PDO::PARAM_STR), - ':date' => array($article->getDate(), PDO::PARAM_STR), - ':description' => array($article->getDescription(), PDO::PARAM_STR), - ':guid' => array($article->getGuid(), PDO::PARAM_STR), - ':link' => array($article->getLink(), PDO::PARAM_STR), - ':mediaContent' => array($article->getMediaContent(), PDO::PARAM_STR), - ':provenance' => array($article->getProvenance(), PDO::PARAM_INT))); - }catch (\PDOException $e){ - throw new Exception("PDO error"); - } + + $query = 'INSERT INTO Article VALUES (:id,:title,to_date(:date,"Dy, DD Mon YYYY"),:description,:guid,:link,:mediaContent,:provenance);'; + $this->con->executeQuery($query, array(':id' => array($article->getId(), PDO::PARAM_STR), + ':title' => array($article->getTitle(), PDO::PARAM_STR), + ':date' => array($article->getDate(), PDO::PARAM_STR), + ':description' => array($article->getDescription(), PDO::PARAM_STR), + ':guid' => array($article->getGuid(), PDO::PARAM_STR), + ':link' => array($article->getLink(), PDO::PARAM_STR), + ':mediaContent' => array($article->getMediaContent(), PDO::PARAM_STR), + ':provenance' => array($article->getProvenance(), PDO::PARAM_INT))); } public function removeAllArticleForParser(){ - try{ $query = 'DELETE FROM Article;'; $this->con->executeQuery($query); - }catch(\PDOException $p){ - throw new Exception("Data is not delete."); - } + } + + public function findArticleByFlux(int $flux){ + $query = 'SELECT * FROM Article WHERE provenance = :flux;'; + $this->con->executeQuery($query, array(':flux' => array($flux, PDO::PARAM_INT))); + $this->con->executeQuery($query); + return $this->con->getResults(); } } \ No newline at end of file diff --git a/fluxRSS/DAL/FluxGateway.php b/fluxRSS/DAL/FluxGateway.php index 43bbe9f..79ee875 100755 --- a/fluxRSS/DAL/FluxGateway.php +++ b/fluxRSS/DAL/FluxGateway.php @@ -14,31 +14,20 @@ class FluxGateway } public function addFlux($flux){ - try{ - $query = 'INSERT INTO Flux VALUES (:flux);'; - $this->con->executeQuery($query, array(':flux' => array($flux->getFlux(), PDO::PARAM_STR))); - }catch (\PDOException $e){ - throw new \Exception("PDO error"); - } + $query = 'INSERT INTO Flux VALUES (:flux);'; + $this->con->executeQuery($query, array(':flux' => array($flux->getFlux(), PDO::PARAM_STR))); } public function removeFlux($flux){ - try{ - $query = 'DELETE FROM Flux WHERE flux = :flux;'; - $this->con->executeQuery($query, array(':flux' => array($flux->getFlux(), PDO::PARAM_STR))); - }catch (\PDOException $e){ - throw new \Exception("PDO error"); - } + $query = 'DELETE FROM Flux WHERE flux = :flux;'; + $this->con->executeQuery($query, array(':flux' => array($flux->getFlux(), PDO::PARAM_STR))); } public function findAllFlux(){ - try{ - $query = 'SELECT * FROM Flux;'; - $this->con->executeQuery($query); - return $this->con->getResults(); - }catch (\PDOException $e){ - throw new \Exception("PDO error"); - } + + $query = 'SELECT * FROM Flux;'; + $this->con->executeQuery($query); + return $this->con->getResults(); } public function findFlux(Flux $flux){ @@ -46,12 +35,8 @@ class FluxGateway } public function findFluxBySrc(string $flux){ - try{ - $query = 'SELECT * FROM Flux WHERE flux = :flux;'; - $this->con->executeQuery($query, array(':flux' => array($flux, PDO::PARAM_STR))); - return $this->con->getResults(); - }catch (\PDOException $e){ - throw new \Exception("PDO error"); - } + $query = 'SELECT * FROM Flux WHERE flux = :flux;'; + $this->con->executeQuery($query, array(':flux' => array($flux, PDO::PARAM_STR))); + return $this->con->getResults(); } } \ No newline at end of file diff --git a/fluxRSS/config/config.php b/fluxRSS/config/config.php index 50be0df..4184a4f 100755 --- a/fluxRSS/config/config.php +++ b/fluxRSS/config/config.php @@ -1,7 +1,7 @@ connection();; break; + + case 'deleteFlux': + $this->deleteFlux();; + break; + case 'validationFormulaire': $this->ValidationFormulaire($dVueEreur); break; @@ -56,7 +62,7 @@ class AdminControleur $articleModel = new ArticleModel(); if (AdminModel::isAdmin()) { $dVue = [ - 'data' => $articleModel->getArticles() + 'data' => $articleModel->findAllArticleByAllFlux() ]; echo $twig->render('listArticleAdmin.html', [ 'dVue' => $dVue, @@ -81,6 +87,13 @@ class AdminControleur } } + public function deleteFlux(){ + if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['flux'])){ + $fluxModel = new FluxModel(); + $fluxModel->removeFlux($_POST['flux']); + } + } + public function login(){ $username = $_POST['username']; $password = $_POST['password']; diff --git a/fluxRSS/controleur/UserControleur.php b/fluxRSS/controleur/UserControleur.php index eb86326..8bec648 100755 --- a/fluxRSS/controleur/UserControleur.php +++ b/fluxRSS/controleur/UserControleur.php @@ -60,7 +60,7 @@ class UserControleur global $twig; $articleModel = new ArticleModel(); $dVue = [ - 'data' => $articleModel->getArticles() + 'data' => $articleModel->findAllArticleByAllFlux() ]; echo $twig->render('listArticle.html', [ 'dVue' => $dVue, diff --git a/fluxRSS/metier/Flux.php b/fluxRSS/metier/Flux.php index a167fbe..88a5c8c 100755 --- a/fluxRSS/metier/Flux.php +++ b/fluxRSS/metier/Flux.php @@ -7,6 +7,10 @@ class Flux private string $id; private string $flux; + public function __construct(string $id, string $flux){ + $this->id =$id; + $this->flux = $flux; + } /** * @return string */ diff --git a/fluxRSS/model/AdminModel.php b/fluxRSS/model/AdminModel.php index cc196cd..a81acdc 100755 --- a/fluxRSS/model/AdminModel.php +++ b/fluxRSS/model/AdminModel.php @@ -15,7 +15,7 @@ class AdminModel //Validation::validationLogin($username); //Validation::validationMdp($mdp); - $gwArticle = new AdminGateway(new Connection('mysql:host=londres.uca.local;dbname=dbrorossetto', 'rorossetto', 'tpphp')); + $gwArticle = new AdminGateway(new Connection('mysql:host=londres.uca.local;dbname=dbrorossetto','rorossetto','tpphp')); $lmdp = $gwArticle->login($username); foreach ($lmdp as $motDePasse){ diff --git a/fluxRSS/model/ArticleModel.php b/fluxRSS/model/ArticleModel.php index d8e24e8..a804fe4 100755 --- a/fluxRSS/model/ArticleModel.php +++ b/fluxRSS/model/ArticleModel.php @@ -2,9 +2,10 @@ namespace model; -use DAL\{ArticleGateway, Connection}; +use DAL\{ArticleGateway, Connection, FluxGateway}; use Exception; use metier\Article; +use metier\Flux; class ArticleModel { @@ -13,7 +14,7 @@ class ArticleModel */ public static function getArticles() : array { - $gwArticle = new ArticleGateway(new Connection('mysql:host=londres.uca.local;dbname=dbrorossetto', 'rorossetto', 'tpphp')); + $gwArticle = new ArticleGateway(new Connection('mysql:host=londres.uca.local;dbname=dbrorossetto','rorossetto','tpphp')); $tabArticle = array(); $res = $gwArticle->getAllArticles(); foreach($res as $row){ @@ -21,4 +22,34 @@ class ArticleModel } return $tabArticle; } + + /** + * @throws Exception + */ + public function findArticleByFlux(Flux $flux){ + $con = new Connection('mysql:host=londres.uca.local;dbname=dbrorossetto','rorossetto','tpphp'); + $gwArticle = new ArticleGateway($con); + $dicoFluxArticle = array(); + $tabArticle = array(); + $res = $gwArticle->findArticleByFlux($flux->getId()); + + foreach ($res as $row){ + $tabArticle[] = new Article($row['id'], $row['title'],$row['datePub'],$row['description'],$row['guid'],$row['link'],$row['mediaContent'],$row['provenance'] ); + } + $dicoFluxArticle[] = [$flux,$tabArticle]; + return $dicoFluxArticle; + } + + public function findAllArticleByAllFlux(){ + $con = new Connection('mysql:host=londres.uca.local;dbname=dbrorossetto','rorossetto','tpphp'); + $gwFlux = new FluxGateway($con); + $tabFluxArticle = array(); + $res = $gwFlux->findAllFlux(); + + foreach ($res as $row) { + $flux = new Flux(($row['id']), ($row['flux'])); + $tabFluxArticle[] = $this->findArticleByFlux($flux); + } + return $tabFluxArticle; + } } \ No newline at end of file diff --git a/fluxRSS/model/FluxModel.php b/fluxRSS/model/FluxModel.php index 5116de9..74318b7 100755 --- a/fluxRSS/model/FluxModel.php +++ b/fluxRSS/model/FluxModel.php @@ -5,12 +5,11 @@ namespace model; use DAL\Connection; use DAL\FluxGateway; use metier\Flux; -require_once "config/config.php"; class FluxModel { public function FindAllFlux(){ - $gateway = new FluxGateway(new Connection('mysql:host= londres.uca.local ; dbname= dbrorossetto', 'rorossetto', 'tpphp')); + $gateway = new FluxGateway(new Connection('mysql:host=londres.uca.local;dbname=dbrorossetto','rorossetto','tpphp')); $data = array(); $result = $gateway->findAllFlux(); @@ -21,7 +20,7 @@ class FluxModel } public function addFlux(Flux $flux){ - $gateway = new FluxGateway(new Connection('mysql:host= londres.uca.local ; dbname= dbrorossetto', 'rorossetto', 'tpphp')); + $gateway = new FluxGateway(new Connection('mysql:host=londres.uca.local;dbname=dbrorossetto','rorossetto','tpphp')); $data = $this->findFlux($flux); if ($data == array()) { $gateway->addFlux($flux); @@ -29,26 +28,26 @@ class FluxModel } public function addFluxBySrc(string $flux): Flux { - $gateway = new FluxGateway(new Connection('mysql:host= londres.uca.local ; dbname= dbrorossetto', 'rorossetto', 'tpphp')); + $gateway = new FluxGateway(new Connection('mysql:host=londres.uca.local;dbname=dbrorossetto','rorossetto','tpphp')); $newFlux = new Flux($flux); $gateway->addFlux($newFlux); return $newFlux; } public function removeFlux(Flux $flux){ - $gateway = new FluxGateway(new Connection('mysql:host= londres.uca.local ; dbname= dbrorossetto', 'rorossetto', 'tpphp')); + $gateway = new FluxGateway(new Connection('mysql:host=londres.uca.local;dbname=dbrorossetto','rorossetto','tpphp')); $gateway->removeFlux($flux); } public function removeFluxBySrc(string $flux): Flux { - $gateway = new FluxGateway(new Connection('mysql:host= londres.uca.local ; dbname= dbrorossetto', 'rorossetto', 'tpphp')); + $gateway = new FluxGateway(new Connection('mysql:host=londres.uca.local;dbname=dbrorossetto','rorossetto','tpphp')); $newFlux = new Flux($flux); $gateway->removeFlux($newFlux); return $newFlux; } public function findFlux(Flux $flux){ - $gateway = new FluxGateway(new Connection('mysql:host= londres.uca.local ; dbname= dbrorossetto', 'rorossetto', 'tpphp')); + $gateway = new FluxGateway(new Connection('mysql:host=londres.uca.local;dbname=dbrorossetto','rorossetto','tpphp')); $data = array(); $result = $gateway->findFlux($flux); @@ -59,8 +58,7 @@ class FluxModel } public function findFluxBySrc(string $flux){ - $gateway = new FluxGateway(new Connection('mysql:host= londres.uca.local ; dbname= dbrorossetto', 'rorossetto', 'tpphp')); - $data = array(); + $gateway = new FluxGateway(new Connection('mysql:host=londres.uca.local;dbname=dbrorossetto','rorossetto','tpphp')); $result = $gateway->findFluxBySrc($flux); foreach ($result as $row){ diff --git a/fluxRSS/model/Parser.php b/fluxRSS/model/Parser.php index beb59f8..13ad02f 100755 --- a/fluxRSS/model/Parser.php +++ b/fluxRSS/model/Parser.php @@ -76,8 +76,8 @@ class Parser } } -$gwArt = new ArticleGateway(new Connection('mysql:host=londres.uca.local;dbname=dbrorossetto', 'rorossetto', 'tpphp')); -$gwFl = new FluxGateway(new Connection('mysql:host=londres.uca.local;dbname=dbrorossetto', 'rorossetto', 'tpphp')); +$gwArt = new ArticleGateway(new Connection($base, $login, $mdpBd)); +$gwFl = new FluxGateway(new Connection($base, $login, $mdpBd)); $pars = new Parser( $gwFl,$gwArt); diff --git a/fluxRSS/templates/listArticle.html b/fluxRSS/templates/listArticle.html index e0e3f6c..a552852 100755 --- a/fluxRSS/templates/listArticle.html +++ b/fluxRSS/templates/listArticle.html @@ -7,7 +7,8 @@ {% for value in dVue.data %}

- {% for article in value %} + {{ value[0] }} + {% for article in value[1] %}

{{article}}

diff --git a/fluxRSS/templates/listArticleAdmin.html b/fluxRSS/templates/listArticleAdmin.html index 316ba60..45acd2e 100755 --- a/fluxRSS/templates/listArticleAdmin.html +++ b/fluxRSS/templates/listArticleAdmin.html @@ -7,13 +7,19 @@ admin {% for value in dVue.data %} -

- {% for article in value %} -

- {{article}} -

+
+ {{ value[0] }} +
+ + +
+ {% for article in value[1] %} +

+ {{article}} +

+ {% endfor %} +
{% endfor %} -

{% endfor %} Vue user Déconnection