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

@ -2,13 +2,20 @@
namespace controleur;
use http\Exception;
use metier\Flux;
use model\AdminModel;
use model\ArticleModel;
use model\FluxModel;
class AdminControleur
{
public function __construct(){
/*public function __construct()
{
$this->init();
}*/
public function init(){
global $twig; // nécessaire pour utiliser variables globales
//debut
@ -37,6 +44,14 @@ class AdminControleur
$this->ValidationFormulaire($dVueEreur);
break;
case 'listFlux':
$this->listFlux();
break;
case 'ajoutFlux':
$this->ajoutFlux();
break;
//mauvaise action
default:
$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(){
global $twig; // nécessaire pour utiliser variables globales
$renderTemplate = true;
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['username'])){
$_REQUEST['action'] = null;
$this->login();
$renderTemplate = false;
}
@ -90,8 +123,27 @@ class AdminControleur
public function deleteFlux(){
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['flux'])){
$fluxModel = new FluxModel();
$fluxModel->removeFlux($_POST['flux']);
$this->listArticle();
$fluxModel->removeFluxBySrc($_POST['flux']);
$_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();
$admin = $adminModel->connection($username, $password);
if($admin != null) {
$this->listArticle();
$this->init();
}
else{
unset($_POST['username']);

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

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

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

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

@ -8,13 +8,13 @@ use metier\Flux;
class FluxModel
{
public function FindAllFlux(){
public function findAllFlux(){
$gateway = new FluxGateway(new Connection('mysql:host=londres.uca.local;dbname=dbrorossetto','rorossetto','tpphp'));
$data = array();
$result = $gateway->findAllFlux();
foreach ($result as $row){
$data[] = new Flux((int)$row['id'],$row['$flux']);
$data[] = new Flux((int)$row['id'],$row['flux']);
}
return $data;
}
@ -29,7 +29,7 @@ class FluxModel
public function addFluxBySrc(string $flux): Flux {
$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);
return $newFlux;
}
@ -41,7 +41,7 @@ class FluxModel
public function removeFluxBySrc(string $flux) {
$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){
@ -50,7 +50,7 @@ class FluxModel
$result = $gateway->findFlux($flux);
foreach ($result as $row){
$data[] = new Flux($row['$flux'],(int)$row['id']);
$data[] = new Flux((int)$row['id'],$row['$flux']);
}
return $data;
}
@ -61,7 +61,7 @@ class FluxModel
$result = $gateway->findFluxBySrc($flux);
foreach ($result as $row){
$data[] = new Flux($row['$flux'],(int)$row['id']);
$data[] = new Flux((int)$row['id'],$row['$flux']);
}
return $data;
}

@ -21,6 +21,7 @@ admin
</div>
{% endfor %}
<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>
</body>
</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