ajout et suppression de flux fonctionne

feature/gestionFlux
maxime.point2 1 year ago
parent c7df3cfa91
commit 4c2424ef31

@ -15,23 +15,25 @@ class FluxGateway
public function addFlux(Flux $flux) public function addFlux(Flux $flux)
{ {
$query = 'INSERT INTO Flux VALUES (:flux);'; $this->addFluxBySrc($flux->getFlux());
$this->con->executeQuery($query, array(':flux' => array($flux->getFlux(), PDO::PARAM_STR)));
} }
public function getId(): int public function addFluxBySrc(string $flux)
{ {
$query = 'INSERT INTO Flux VALUES (null,:flux);';
return $this->id; var_dump($this->con->executeQuery($query, array(':flux' => array($flux, PDO::PARAM_STR))));
} }
public function removeFlux(Flux $flux){ public function removeFlux(Flux $flux){
$this->removeFluxBySrc($flux->getFlux());
}
public function removeFluxBySrc(string $flux){
$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, PDO::PARAM_STR)));
} }
public function findAllFlux(){ public function findAllFlux(){
$query = 'SELECT * FROM Flux;'; $query = 'SELECT * FROM Flux;';
$this->con->executeQuery($query); $this->con->executeQuery($query);
return $this->con->getResults(); return $this->con->getResults();

@ -2,13 +2,20 @@
namespace controleur; namespace controleur;
use http\Exception;
use metier\Flux;
use model\AdminModel; use model\AdminModel;
use model\ArticleModel; use model\ArticleModel;
use model\FluxModel; use model\FluxModel;
class AdminControleur class AdminControleur
{ {
public function __construct(){ /*public function __construct()
{
$this->init();
}*/
public function init(){
global $twig; // nécessaire pour utiliser variables globales global $twig; // nécessaire pour utiliser variables globales
//debut //debut
@ -37,6 +44,14 @@ class AdminControleur
$this->ValidationFormulaire($dVueEreur); $this->ValidationFormulaire($dVueEreur);
break; break;
case 'listFlux':
$this->listFlux();
break;
case 'ajoutFlux':
$this->ajoutFlux();
break;
//mauvaise action //mauvaise action
default: default:
$dVueEreur[] = "Erreur d'appel php"; $dVueEreur[] = "Erreur d'appel php";
@ -74,11 +89,29 @@ class AdminControleur
} }
} }
public function listFlux(){
global $twig;
$fluxModel = new FluxModel();
if (AdminModel::isAdmin()) {
$dVue = [
'data' => $fluxModel->findAllFlux()
];
echo $twig->render('listFlux.html', [
'dVue' => $dVue,
'isAdmin' => AdminModel::isAdmin()
]);
}
else {
$this->connection();
}
}
public function connection(){ public function connection(){
global $twig; // nécessaire pour utiliser variables globales global $twig; // nécessaire pour utiliser variables globales
$renderTemplate = true; $renderTemplate = true;
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['username'])){ if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['username'])){
$_REQUEST['action'] = null;
$this->login(); $this->login();
$renderTemplate = false; $renderTemplate = false;
} }
@ -90,8 +123,27 @@ class AdminControleur
public function deleteFlux(){ public function deleteFlux(){
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['flux'])){ if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['flux'])){
$fluxModel = new FluxModel(); $fluxModel = new FluxModel();
$fluxModel->removeFlux($_POST['flux']); $fluxModel->removeFluxBySrc($_POST['flux']);
$this->listArticle(); $_REQUEST['action'] = 'listFlux';
$this->init();
}
else{
$_REQUEST['action'] = 'listFlux';
$this->init();
}
}
public function ajoutFlux(){
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['fluxAdd'])){
$fluxModel = new FluxModel();
$fluxModel->addFluxBySrc($_POST['fluxAdd']);
$_REQUEST['action'] = 'listFlux';
unset($_POST['fluxAdd']);
$this->init();
}
else{
$_REQUEST['action'] = 'listFlux';
$this->init();
} }
} }
@ -102,7 +154,7 @@ class AdminControleur
$adminModel = new AdminModel(); $adminModel = new AdminModel();
$admin = $adminModel->connection($username, $password); $admin = $adminModel->connection($username, $password);
if($admin != null) { if($admin != null) {
$this->listArticle(); $this->init();
} }
else{ else{
unset($_POST['username']); unset($_POST['username']);

@ -30,7 +30,7 @@ class FrontControleur
else { else {
session_start(); session_start();
$controller=$match['target'] ?? null; $controller=$match['target'] ?? null;
$action=$match['params']['action'] ?? null; $action=$match['params']['action'] ?? "init";
try { try {
if($controller == "AdminControleur"){ if($controller == "AdminControleur"){
if (!AdminModel::isAdmin()){ if (!AdminModel::isAdmin()){

@ -7,7 +7,7 @@ use model\Parser;
class UserControleur class UserControleur
{ {
public function __construct() public function init()
{ {
global $twig; // nécessaire pour utiliser variables globales global $twig; // nécessaire pour utiliser variables globales
//debut //debut

@ -4,10 +4,10 @@ namespace metier;
class Flux class Flux
{ {
private int $id; private ?int $id;
private string $flux; private string $flux;
public function __construct(string $flux, int $id=null){ public function __construct(?int $id, string $flux){
$this->id =$id; $this->id =$id;
$this->flux = $flux; $this->flux = $flux;
} }

@ -47,7 +47,7 @@ class ArticleModel
$res = $gwFlux->findAllFlux(); $res = $gwFlux->findAllFlux();
foreach ($res as $row) { foreach ($res as $row) {
$flux = new Flux($row['flux'], (int)($row['id'])); $flux = new Flux((int)($row['id']),$row['flux']);
$tabFluxArticle[] = $this->findArticleByFluxAsStr($flux); $tabFluxArticle[] = $this->findArticleByFluxAsStr($flux);
} }
return $tabFluxArticle; return $tabFluxArticle;

@ -8,13 +8,13 @@ use metier\Flux;
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();
foreach ($result as $row){ foreach ($result as $row){
$data[] = new Flux((int)$row['id'],$row['$flux']); $data[] = new Flux((int)$row['id'],$row['flux']);
} }
return $data; return $data;
} }
@ -29,7 +29,7 @@ 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(null,$flux);
$gateway->addFlux($newFlux); $gateway->addFlux($newFlux);
return $newFlux; return $newFlux;
} }
@ -41,7 +41,7 @@ class FluxModel
public function removeFluxBySrc(string $flux) { public function removeFluxBySrc(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'));
$gateway->removeFlux($flux); $gateway->removeFluxBySrc($flux);
} }
public function findFlux(Flux $flux){ public function findFlux(Flux $flux){
@ -50,7 +50,7 @@ class FluxModel
$result = $gateway->findFlux($flux); $result = $gateway->findFlux($flux);
foreach ($result as $row){ foreach ($result as $row){
$data[] = new Flux($row['$flux'],(int)$row['id']); $data[] = new Flux((int)$row['id'],$row['$flux']);
} }
return $data; return $data;
} }
@ -61,7 +61,7 @@ class FluxModel
$result = $gateway->findFluxBySrc($flux); $result = $gateway->findFluxBySrc($flux);
foreach ($result as $row){ foreach ($result as $row){
$data[] = new Flux($row['$flux'],(int)$row['id']); $data[] = new Flux((int)$row['id'],$row['$flux']);
} }
return $data; return $data;
} }

@ -21,6 +21,7 @@ admin
</div> </div>
{% 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/listFlux">Vue flux</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>
</body> </body>
</html> </html>

@ -0,0 +1,23 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>All Flux</title>
</head>
<body>
{% for value in dVue.data %}
<div>
{{ value.getFlux() }}
<form method="post" action="deleteFlux">
<input type="hidden" name="flux" value="{{ value.getFlux() }}">
<button type="submit">Delete Flux</button>
</form>
</div>
{% endfor %}
<form method="POST" action="ajoutFlux">
<input name="fluxAdd" type="text">
<button type="submit">Ajouter Flux</button>
</form>
<a href="/~mapoint2/SAE/Php_RSS/fluxRSS/admin/">Vue article</a>
</body>
</html>
Loading…
Cancel
Save