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