diff --git a/fluxRSS/src/DAL/ArticleGateway.php b/fluxRSS/src/DAL/ArticleGateway.php index e08f763..d56f000 100755 --- a/fluxRSS/src/DAL/ArticleGateway.php +++ b/fluxRSS/src/DAL/ArticleGateway.php @@ -5,6 +5,7 @@ use Exception; use metier\Article; use metier\Flux; use PDO; +use DateTime; class ArticleGateway { private $con; @@ -22,31 +23,48 @@ class ArticleGateway */ public function getAllArticles():array { - $query = 'SELECT * FROM Article;'; - $this->con->executeQuery($query, array()); - return $this->con->getResults(); + try { + $query = 'SELECT * FROM Article;'; + $this->con->executeQuery($query, array()); + return $this->con->getResults(); + }catch (\PDOException $e){ + throw new Exception("PDO error"); + } } + /** * @throws Exception */ public function addArticle(Article $article){ - $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), - ':datePub' => 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))); + try { + $query = 'INSERT INTO Article VALUES (:id,:title,:datePub,:description,:guid,:link,:mediaContent,:provenance);'; + + $this->con->executeQuery($query, array(':id' => array($article->getId(), PDO::PARAM_INT), + ':title' => array($article->getTitle(), PDO::PARAM_STR), + ':datePub' => 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"); + } } + + 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))); diff --git a/fluxRSS/src/controleur/AdminControleur.php b/fluxRSS/src/controleur/AdminControleur.php index 1f261a8..ce8d5ed 100755 --- a/fluxRSS/src/controleur/AdminControleur.php +++ b/fluxRSS/src/controleur/AdminControleur.php @@ -61,8 +61,9 @@ class AdminControleur global $twig; $articleModel = new ArticleModel(); if (AdminModel::isAdmin()) { + $data = $articleModel->getArticles(); $dVue = [ - 'data' => $articleModel->findAllArticleByAllFlux() + 'data' => $data ]; echo $twig->render('listArticleAdmin.html', [ 'dVue' => $dVue, diff --git a/fluxRSS/src/controleur/FrontControleur.php b/fluxRSS/src/controleur/FrontControleur.php index 6995f84..66e646d 100755 --- a/fluxRSS/src/controleur/FrontControleur.php +++ b/fluxRSS/src/controleur/FrontControleur.php @@ -17,7 +17,7 @@ class FrontControleur global $twig; $router = new AltoRouter(); - $router->setBasePath('~mapoint2/SAE/Php_RSS/fluxRSS/'); + $router->setBasePath('~rorossetto/Php_RSS/fluxRSS/'); $router->map('GET', '/', 'UserControleur'); $router->map('GET|POST','/user/[a:action]?','UserControleur'); $router->map('GET|POST','/admin/[a:action]?','AdminControleur'); diff --git a/fluxRSS/src/metier/Flux.php b/fluxRSS/src/metier/Flux.php index b45e587..18b9f38 100755 --- a/fluxRSS/src/metier/Flux.php +++ b/fluxRSS/src/metier/Flux.php @@ -7,10 +7,17 @@ class Flux private int $id; private string $flux; - public function __construct(string $flux, int $id=null){ - $this->id =$id; + /** + * @param int $id + * @param string $flux + */ + public function __construct(int $id, string $flux) + { + $this->id = $id; $this->flux = $flux; } + + /** * @return string */ diff --git a/fluxRSS/src/model/ArticleModel.php b/fluxRSS/src/model/ArticleModel.php index 332d0c7..e29faae 100755 --- a/fluxRSS/src/model/ArticleModel.php +++ b/fluxRSS/src/model/ArticleModel.php @@ -36,7 +36,7 @@ class ArticleModel 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]; + $dicoFluxArticle = [$flux,$tabArticle]; return $dicoFluxArticle; } @@ -47,8 +47,8 @@ class ArticleModel $res = $gwFlux->findAllFlux(); foreach ($res as $row) { - $flux = new Flux($row['flux'], (int)($row['id'])); - $tabFluxArticle[] = $this->findArticleByFluxAsStr($flux); + $flux = new Flux((int)($row['id']), $row['flux']); + $tabFluxArticle[] = $this->findArticleByFlux($flux); } return $tabFluxArticle; } diff --git a/fluxRSS/src/test/test.php b/fluxRSS/src/test/test.php index ff5c34a..2c77ddb 100755 --- a/fluxRSS/src/test/test.php +++ b/fluxRSS/src/test/test.php @@ -10,4 +10,5 @@ require '../../vendor/autoload.php'; $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')); $pars = new Parser( $gwFl,$gwArt); - +var_dump($pars); +$pars->addAllArticles(); \ No newline at end of file diff --git a/fluxRSS/templates/listArticleAdmin.html b/fluxRSS/templates/listArticleAdmin.html index 256f419..18b3500 100755 --- a/fluxRSS/templates/listArticleAdmin.html +++ b/fluxRSS/templates/listArticleAdmin.html @@ -7,6 +7,10 @@
admin {% for value in dVue.data %} ++ {{value}} +
+ {% endfor %} Vue user Déconnection