You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
99 lines
2.8 KiB
99 lines
2.8 KiB
<?php
|
|
|
|
namespace controleur;
|
|
|
|
use model\AdminModel;
|
|
use model\ArticleModel;
|
|
|
|
class AdminControleur
|
|
{
|
|
public function __construct(){
|
|
global $twig; // nécessaire pour utiliser variables globales
|
|
//debut
|
|
|
|
//on initialise un tableau d'erreur
|
|
$dVueEreur = [];
|
|
|
|
try {
|
|
$action = $_REQUEST['action'] ?? null;
|
|
|
|
switch($action) {
|
|
//pas d'action, on réinitialise 1er appel
|
|
case 'listArticle':
|
|
case null:
|
|
$this->listArticle();
|
|
break;
|
|
|
|
case 'connection':
|
|
$this->connection();;
|
|
break;
|
|
case 'validationFormulaire':
|
|
$this->ValidationFormulaire($dVueEreur);
|
|
break;
|
|
|
|
//mauvaise action
|
|
default:
|
|
$dVueEreur[] = "Erreur d'appel php";
|
|
echo $twig->render('erreur.html', ['dVueErreur'=>$dVueEreur,'isAdmin' => (AdminModel::isAdmin())]);
|
|
break;
|
|
}
|
|
} catch (\PDOException $e) {
|
|
//si erreur BD, pas le cas ici
|
|
$dVueEreur[] = 'Erreur PDO : ' . $e->getMessage();
|
|
echo $twig->render('erreur.html', ['dVueEreur' => $dVueEreur]);
|
|
} catch (\Exception $e2) {
|
|
$dVueEreur[] = 'Erreur : ' . $e2->getMessage();
|
|
echo $twig->render('erreur.html', ['dVueEreur' => $dVueEreur]);
|
|
}
|
|
|
|
//fin
|
|
exit(0);
|
|
}
|
|
|
|
public function listArticle()
|
|
{
|
|
global $twig;
|
|
$articleModel = new ArticleModel();
|
|
if (AdminModel::isAdmin()) {
|
|
$dVue = [
|
|
'data' => $articleModel->getArticles()
|
|
];
|
|
echo $twig->render('listArticleAdmin.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'])){
|
|
$this->login();
|
|
$renderTemplate = false;
|
|
}
|
|
if($renderTemplate) {
|
|
echo $twig->render('Connection.html');
|
|
}
|
|
}
|
|
|
|
public function login(){
|
|
$username = $_POST['username'];
|
|
$password = $_POST['password'];
|
|
|
|
$adminModel = new AdminModel();
|
|
$admin = $adminModel->connection($username, $password);
|
|
if($admin != null) {
|
|
$this->listArticle();
|
|
}
|
|
else{
|
|
unset($_POST['username']);
|
|
unset($_POST['password']);
|
|
$this->connection();
|
|
}
|
|
}
|
|
} |