modif vue article

pull/16/head
mapoint2 1 year ago
parent 671a1b9667
commit 1b3255f47f

@ -18,12 +18,8 @@ class AdminGateway
public function login(string $login):array public function login(string $login):array
{ {
try{
$query = 'SELECT password,mail FROM Admin WHERE name = :login;'; $query = 'SELECT password,mail FROM Admin WHERE name = :login;';
$this->con->executeQuery($query, array(':login' => array($login, PDO::PARAM_STR))); $this->con->executeQuery($query, array(':login' => array($login, PDO::PARAM_STR)));
return $this->con->getResults(); return $this->con->getResults();
}catch (\PDOException $e){
throw new \Exception("PDO error");
}
} }
} }

@ -3,6 +3,7 @@ namespace DAL;
use Exception; use Exception;
use metier\Article; use metier\Article;
use metier\Flux;
use PDO; use PDO;
class ArticleGateway class ArticleGateway
{ {
@ -21,20 +22,16 @@ class ArticleGateway
*/ */
public function getAllArticles():array public function getAllArticles():array
{ {
try {
$query = 'SELECT * FROM Article;'; $query = 'SELECT * FROM Article;';
$this->con->executeQuery($query, array()); $this->con->executeQuery($query, array());
return $this->con->getResults(); return $this->con->getResults();
}catch (\PDOException $e){
throw new Exception("PDO error");
}
} }
/** /**
* @throws Exception * @throws Exception
*/ */
public function addArticle(Article $article){ 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);'; $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), $this->con->executeQuery($query, array(':id' => array($article->getId(), PDO::PARAM_STR),
':title' => array($article->getTitle(), PDO::PARAM_STR), ':title' => array($article->getTitle(), PDO::PARAM_STR),
@ -44,17 +41,17 @@ class ArticleGateway
':link' => array($article->getLink(), PDO::PARAM_STR), ':link' => array($article->getLink(), PDO::PARAM_STR),
':mediaContent' => array($article->getMediaContent(), PDO::PARAM_STR), ':mediaContent' => array($article->getMediaContent(), PDO::PARAM_STR),
':provenance' => array($article->getProvenance(), PDO::PARAM_INT))); ':provenance' => array($article->getProvenance(), PDO::PARAM_INT)));
}catch (\PDOException $e){
throw new Exception("PDO error");
}
} }
public function removeAllArticleForParser(){ public function removeAllArticleForParser(){
try{
$query = 'DELETE FROM Article;'; $query = 'DELETE FROM Article;';
$this->con->executeQuery($query); $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();
} }
} }

@ -14,31 +14,20 @@ class FluxGateway
} }
public function addFlux($flux){ public function addFlux($flux){
try{
$query = 'INSERT INTO Flux VALUES (:flux);'; $query = 'INSERT INTO Flux VALUES (:flux);';
$this->con->executeQuery($query, array(':flux' => array($flux->getFlux(), PDO::PARAM_STR))); $this->con->executeQuery($query, array(':flux' => array($flux->getFlux(), PDO::PARAM_STR)));
}catch (\PDOException $e){
throw new \Exception("PDO error");
}
} }
public function removeFlux($flux){ public function removeFlux($flux){
try{
$query = 'DELETE FROM Flux WHERE flux = :flux;'; $query = 'DELETE FROM Flux WHERE flux = :flux;';
$this->con->executeQuery($query, array(':flux' => array($flux->getFlux(), PDO::PARAM_STR))); $this->con->executeQuery($query, array(':flux' => array($flux->getFlux(), PDO::PARAM_STR)));
}catch (\PDOException $e){
throw new \Exception("PDO error");
}
} }
public function findAllFlux(){ public function findAllFlux(){
try{
$query = 'SELECT * FROM Flux;'; $query = 'SELECT * FROM Flux;';
$this->con->executeQuery($query); $this->con->executeQuery($query);
return $this->con->getResults(); return $this->con->getResults();
}catch (\PDOException $e){
throw new \Exception("PDO error");
}
} }
public function findFlux(Flux $flux){ public function findFlux(Flux $flux){
@ -46,12 +35,8 @@ class FluxGateway
} }
public function findFluxBySrc(string $flux){ public function findFluxBySrc(string $flux){
try{
$query = 'SELECT * FROM Flux WHERE flux = :flux;'; $query = 'SELECT * FROM Flux WHERE flux = :flux;';
$this->con->executeQuery($query, array(':flux' => array($flux, PDO::PARAM_STR))); $this->con->executeQuery($query, array(':flux' => array($flux, PDO::PARAM_STR)));
return $this->con->getResults(); return $this->con->getResults();
}catch (\PDOException $e){
throw new \Exception("PDO error");
}
} }
} }

@ -1,7 +1,7 @@
<?php <?php
//gen //gen
$rep = __DIR__ . '/../'; $rep = __DIR__ . '/fluxRSS/';
// liste des modules à inclure // liste des modules à inclure
@ -9,7 +9,8 @@ $rep = __DIR__ . '/../';
//BD //BD
$base = 'dbrorossetto'; $base = 'mysql:host=londres.uca.local;dbname=dbrorossetto';
$login = 'rorossetto'; $login = 'rorossetto';
$mdp = 'tpphp'; $mdpBd = 'tpphp';
$path = '~mapoint2/public_html/SAE/Php_RSS'; $path = '~mapoint2/public_html/SAE/Php_RSS';
$nbArticle = 10;

@ -4,6 +4,7 @@ namespace controleur;
use model\AdminModel; use model\AdminModel;
use model\ArticleModel; use model\ArticleModel;
use model\FluxModel;
class AdminControleur class AdminControleur
{ {
@ -27,6 +28,11 @@ class AdminControleur
case 'connection': case 'connection':
$this->connection();; $this->connection();;
break; break;
case 'deleteFlux':
$this->deleteFlux();;
break;
case 'validationFormulaire': case 'validationFormulaire':
$this->ValidationFormulaire($dVueEreur); $this->ValidationFormulaire($dVueEreur);
break; break;
@ -56,7 +62,7 @@ class AdminControleur
$articleModel = new ArticleModel(); $articleModel = new ArticleModel();
if (AdminModel::isAdmin()) { if (AdminModel::isAdmin()) {
$dVue = [ $dVue = [
'data' => $articleModel->getArticles() 'data' => $articleModel->findAllArticleByAllFlux()
]; ];
echo $twig->render('listArticleAdmin.html', [ echo $twig->render('listArticleAdmin.html', [
'dVue' => $dVue, '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(){ public function login(){
$username = $_POST['username']; $username = $_POST['username'];
$password = $_POST['password']; $password = $_POST['password'];

@ -60,7 +60,7 @@ class UserControleur
global $twig; global $twig;
$articleModel = new ArticleModel(); $articleModel = new ArticleModel();
$dVue = [ $dVue = [
'data' => $articleModel->getArticles() 'data' => $articleModel->findAllArticleByAllFlux()
]; ];
echo $twig->render('listArticle.html', [ echo $twig->render('listArticle.html', [
'dVue' => $dVue, 'dVue' => $dVue,

@ -7,6 +7,10 @@ class Flux
private string $id; private string $id;
private string $flux; private string $flux;
public function __construct(string $id, string $flux){
$this->id =$id;
$this->flux = $flux;
}
/** /**
* @return string * @return string
*/ */

@ -15,7 +15,7 @@ class AdminModel
//Validation::validationLogin($username); //Validation::validationLogin($username);
//Validation::validationMdp($mdp); //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); $lmdp = $gwArticle->login($username);
foreach ($lmdp as $motDePasse){ foreach ($lmdp as $motDePasse){

@ -2,9 +2,10 @@
namespace model; namespace model;
use DAL\{ArticleGateway, Connection}; use DAL\{ArticleGateway, Connection, FluxGateway};
use Exception; use Exception;
use metier\Article; use metier\Article;
use metier\Flux;
class ArticleModel class ArticleModel
{ {
@ -13,7 +14,7 @@ class ArticleModel
*/ */
public static function getArticles() : array 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(); $tabArticle = array();
$res = $gwArticle->getAllArticles(); $res = $gwArticle->getAllArticles();
foreach($res as $row){ foreach($res as $row){
@ -21,4 +22,34 @@ class ArticleModel
} }
return $tabArticle; 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;
}
} }

@ -5,12 +5,11 @@ namespace model;
use DAL\Connection; use DAL\Connection;
use DAL\FluxGateway; use DAL\FluxGateway;
use metier\Flux; use metier\Flux;
require_once "config/config.php";
class FluxModel class FluxModel
{ {
public function FindAllFlux(){ 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(); $data = array();
$result = $gateway->findAllFlux(); $result = $gateway->findAllFlux();
@ -21,7 +20,7 @@ class FluxModel
} }
public function addFlux(Flux $flux){ 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); $data = $this->findFlux($flux);
if ($data == array()) { if ($data == array()) {
$gateway->addFlux($flux); $gateway->addFlux($flux);
@ -29,26 +28,26 @@ class FluxModel
} }
public function addFluxBySrc(string $flux): Flux { 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); $newFlux = new Flux($flux);
$gateway->addFlux($newFlux); $gateway->addFlux($newFlux);
return $newFlux; return $newFlux;
} }
public function removeFlux(Flux $flux){ 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); $gateway->removeFlux($flux);
} }
public function removeFluxBySrc(string $flux): 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); $newFlux = new Flux($flux);
$gateway->removeFlux($newFlux); $gateway->removeFlux($newFlux);
return $newFlux; return $newFlux;
} }
public function findFlux(Flux $flux){ 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(); $data = array();
$result = $gateway->findFlux($flux); $result = $gateway->findFlux($flux);
@ -59,8 +58,7 @@ class FluxModel
} }
public function findFluxBySrc(string $flux){ public function findFluxBySrc(string $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->findFluxBySrc($flux); $result = $gateway->findFluxBySrc($flux);
foreach ($result as $row){ foreach ($result as $row){

@ -76,8 +76,8 @@ class Parser
} }
} }
$gwArt = new ArticleGateway(new Connection('mysql:host=londres.uca.local;dbname=dbrorossetto', 'rorossetto', 'tpphp')); $gwArt = new ArticleGateway(new Connection($base, $login, $mdpBd));
$gwFl = new FluxGateway(new Connection('mysql:host=londres.uca.local;dbname=dbrorossetto', 'rorossetto', 'tpphp')); $gwFl = new FluxGateway(new Connection($base, $login, $mdpBd));
$pars = new Parser( $gwFl,$gwArt); $pars = new Parser( $gwFl,$gwArt);

@ -7,7 +7,8 @@
<body> <body>
{% for value in dVue.data %} {% for value in dVue.data %}
<p> <p>
{% for article in value %} {{ value[0] }}
{% for article in value[1] %}
<p> <p>
{{article}} {{article}}
</p> </p>

@ -7,13 +7,19 @@
<body> <body>
admin admin
{% for value in dVue.data %} {% for value in dVue.data %}
<p> <div>
{% for article in value %} {{ value[0] }}
<p> <form method="post" action="deleteFlux">
<input type="hidden" name="flux" value="{{ value[0] }}">
<button type="submit">Delete Article</button>
</form>
{% for article in value[1] %}
<p>
{{article}} {{article}}
</p> </p>
{% endfor %}
</div>
{% endfor %} {% endfor %}
</p>
{% endfor %} {% endfor %}
<a href="/~mapoint2/SAE/Php_RSS/fluxRSS/">Vue user</a> <a href="/~mapoint2/SAE/Php_RSS/fluxRSS/">Vue user</a>
<a href="/~mapoint2/SAE/Php_RSS/fluxRSS/admin/deconnection">Déconnection</a> <a href="/~mapoint2/SAE/Php_RSS/fluxRSS/admin/deconnection">Déconnection</a>

Loading…
Cancel
Save