Ajout bootstrap + corrections propreté du code

evenements
Clément Verdoire 1 year ago
parent ec76db2afc
commit a2a4f2006e

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 467 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 160 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 467 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 467 KiB

@ -76,4 +76,19 @@ class Validation
}
return false;
}
public static function validerEvenement(string $titre, string $description, string $date, int $nbPlaceMax, string $img) : bool
{
if(!empty($titre) && !empty($description) && !empty($date) && !empty($nbPlaceMax) && !empty($img))
{
if(self::validerIntPossitif($nbPlaceMax))
{
if(self::validateImage($img))
{
return true;
}
}
}
return false;
}
}

@ -1,20 +1,13 @@
<?php
namespace App\controleur;
use App\config\Validation;
use App\gateway\Connection;
use App\gateway\ImageGateway;
use App\gateway\ImageSaver;
use App\gateway\OffreGateway;
use App\metier\Image;
use App\modele\NiveauEtudes;
use App\modele\Offre;
use App\modele\OffreModele;
use App\modele\TypeContrat;
use App\modele\ImageModele;
use App\modele\UtilisateurModele;
use App\TwigExtensions;
class UtilisateurControleur
{
@ -25,7 +18,7 @@ class UtilisateurControleur
//$action = NULL;
$action = "listerEvenement";
} else {
$action = \App\config\Validation::nettoyerString($_REQUEST["action"]);
$action = Validation::nettoyerString($_REQUEST["action"]);
}
switch ($action) {
case NULL:
@ -35,9 +28,6 @@ class UtilisateurControleur
case "connection":
$this->connection();
break;
// case "inscription":
// $this->inscription();
// break;
case "consulterOffres":
$this->consulterOffres();
break;
@ -45,12 +35,8 @@ class UtilisateurControleur
$this->consulterProfilLimite();
break;
case "creerOffre":
//echo "test";
$this->creerOffre();
break;
// case "publierOffre":
// $this->publierOffre();
// break;
case "testAction":
$this->testAction();
break;
@ -82,40 +68,6 @@ class UtilisateurControleur
echo $twig->render('connexion.html', []);
}
// protected function inscription()
// {
// global $twig;
// $dVueErreur = []; // Tableau pour stocker les erreurs, le cas échéant
// if (isset($_POST['email'], $_POST['username'], $_POST['password'])) {
// $email = \App\config\Validation::nettoyerString($_POST['email']);
// $motDePasse = \App\config\Validation::nettoyerString($_POST['password']);
// // Validez les données d'inscription, par exemple, vérifiez si l'email est unique
// // Vous pouvez également effectuer d'autres validations nécessaires
// $userModel = new \App\modele\UtilisateurModele();
// $nouvelUtilisateur = $userModel->inscription($email, $motDePasse);
// // Si l'inscription a réussi, redirigez l'utilisateur vers une page de confirmation
// // Vous pouvez également gérer les erreurs ici en cas d'échec de l'inscription
// if ($nouvelUtilisateur instanceof \App\metier\Alumni) {
// // L'inscription a réussi, redirigez l'utilisateur vers une page de confirmation
// // par exemple :
// header('Location: index.php?action=inscription_success');
// exit();
// } else {
// // L'inscription a échoué, ajoutez un message d'erreur
// $dVueErreur[] = "L'inscription a échoué, veuillez réessayer.";
// }
// }
// // Affichez le formulaire d'inscription ou les erreurs le cas échéant
// echo $twig->render('inscription.html', ['dVueErreur' => $dVueErreur]);
// }
protected function accueil()
{
global $twig;
@ -167,7 +119,7 @@ class UtilisateurControleur
protected function listerEvenement()
{
$mdl = new \App\modele\UtilisateurModele();
$mdl = new UtilisateurModele();
$evenements = $mdl->getEvenement();
global $twig;
@ -176,41 +128,37 @@ class UtilisateurControleur
protected function creerEvenement()
{
if(isset($_FILES["image"]))
{
//$imgMdl = new ImageModele;
//$img = $imgMdl->publierImage();
global $twig;
if (isset($_FILES["image"])) {
$img = ImageSaver::SaveImage('image');
$mdl = new \App\modele\UtilisateurModele();
if (!Validation::validerEvenement($_POST["titre"], $_POST["description"], $_POST["date"], $_POST["nbPlaceMax"], $img[1])) {
$mdl = new UtilisateurModele();
$mdl->ajouterEvenement($_POST["titre"], $_POST["description"], $_POST["date"], $_POST["nbPlaceMax"], $img[1]);
$mdl->ajouterEvenement($img[1]);
global $twig;
$evenements = $mdl->getEvenement();
echo $twig->render('evenement.html', ['evenements' => $evenements]);
}
else
{
global $twig;
$this->listerEvenement();
} else {
$dVueErreur[] ="Erreur lors de la création de l'évènement";
echo $twig->render("erreur.html",['dVueErreur' => $dVueErreur]);
}
} else {
echo $twig->render('creerEvenement.html', []);
}
}
protected function supprimerEvenement()
{
$mdl = new \App\modele\UtilisateurModele();
$mdl = new UtilisateurModele();
$mdl->deleteEvenement($_GET["id"]);
global $twig;
$evenements = $mdl->getEvenement();
echo $twig->render('evenement.html', ['evenements' => $evenements]);
$this->listerEvenement();
}
protected function avoirDetailEvenement()
{
$mdl = new \App\modele\UtilisateurModele();
$mdl = new UtilisateurModele();
$evenement = $mdl->getEvenementById($_GET["id"]);
global $twig;
@ -219,17 +167,16 @@ class UtilisateurControleur
protected function rechercherEvenement()
{
$mdl = new \App\modele\UtilisateurModele();
$mdl = new UtilisateurModele();
$evenements = $mdl->getEvenement();
if(isset($_POST["recherche"]) AND !empty($_POST["recherche"]))
{
$recherche = \App\config\Validation::nettoyerString($_POST["recherche"]);
$recherche = Validation::nettoyerString($_POST["recherche"]);
$evenements = $mdl->getEvenementByTitre($recherche);
}
global $twig;
echo $twig->render('evenement.html', ['evenements' => $evenements]);
}
}

@ -40,9 +40,9 @@ class EvenementGateway
public function getAllEvenement()
{
$query='SELECT * FROM Evenement';
$query = 'SELECT * FROM Evenement ORDER BY id DESC';
$this->con->executeQuery($query);
$res=$this->con->getResults();
$res = $this->con->getResults();
return $res;
}

@ -1,69 +1,24 @@
<?php
namespace App\modele;
use App\metier\Alumni;
use App\gateway\Connection;
use App\gateway\EvenementGateway;
use App\metier\Evenement;
use App\metier\Image;
use App\config;
class UtilisateurModele
{
/**
* @description Charger le flux d'activiter
* @return array flux
*/
public function LoadFeed() : array
private $con;
public function __construct()
{
// TO DO
return [];
global $dsn, $username, $password;
$this->con = new Connection($dsn, $username, $password);
}
/**
* @description se connecter
* @param string email
* @param string hash
* @return \App\metier\Alumni
*/
// public function Login(string $email,string $hash) : \App\metier\Alumni
// {
// // TO DO
// return new \App\metier\Alumni(null,null,null);
// }
/**
* @description s'inscrire
* @param string email
* @param string hash
* @param string $pseudo
* @return \Alumni chargé
*/
// public function inscription(string $email, string $hashpassword): \App\metier\Alumni
// {
// $dsn = "mysql:host=localhost;dbname=dbAlica";
// $username = "test";
// $password = "test";
// $role = "Utilisateur";
// $con = new \App\gateway\Connection($dsn, $username, $password);
// $gate = new \App\gateway\AlumniGateway($con);
// // Insérez le nouvel utilisateur dans la base de données en utilisant AlumniGateway
// if ($gate->insert($email, $hashpassword, $role)) {
// // L'insertion a réussi, retournez le nouvel utilisateur
// $nouvelUtilisateur = new \App\metier\Alumni($email, $hashpassword, $role);
// return $nouvelUtilisateur;
// } else {
// // L'insertion a échoué, renvoyez un utilisateur vide pour indiquer l'échec
// return new \App\metier\Alumni(null, null, null);
// }
// }
public function getEvenement() : array
{
global $dsn, $username, $password;
$con = new \App\gateway\Connection($dsn, $username, $password);
$gate = new \App\gateway\EvenementGateway($con);
$gateImage = new \App\gateway\ImageGateway($con);
$gate = new EvenementGateway($this->con);
$data = $gate->getAllEvenement();
@ -71,8 +26,7 @@ class UtilisateurModele
foreach($data as $row)
{
$evenement[] = new \App\metier\Evenement(
$evenement[] = new Evenement(
$row['id'],
$row['organisateur'],
$row['titre'],
@ -85,17 +39,9 @@ class UtilisateurModele
return $evenement;
}
public function ajouterEvenement(string $img)
public function ajouterEvenement(string $titre, string $description, string $date, int $nbPlaceMax, string $img)
{
global $dsn, $username, $password;
$con = new \App\gateway\Connection($dsn, $username, $password);
$gate = new \App\gateway\EvenementGateway($con);
$titre = $_POST["titre"];
$description = $_POST["description"];
$date = $_POST["date"];
$nbPlaceMax = $_POST["nbPlaceMax"];
$gate = new EvenementGateway($this->con);
$evenement = new Evenement(
$gate->getNewId(),
@ -112,25 +58,17 @@ class UtilisateurModele
public function deleteEvenement(int $id)
{
global $dsn, $username, $password;
$con = new \App\gateway\Connection($dsn, $username, $password);
$gate = new \App\gateway\EvenementGateway($con);
$gate = new EvenementGateway($this->con);
$gate->deleteEvenement($id);
}
public function getEvenementById(int $id) : Evenement
{
global $dsn, $username, $password;
$con = new \App\gateway\Connection($dsn, $username, $password);
$gate = new \App\gateway\EvenementGateway($con);
$gate = new EvenementGateway($this->con);
$data = $gate->findById($id);
$evenement = new \App\metier\Evenement(
$evenement = new Evenement(
$data[0]['id'],
$data[0]['organisateur'],
$data[0]['titre'],
@ -145,11 +83,7 @@ class UtilisateurModele
public function getEvenementByTitre(string $titre) : array
{
global $dsn, $username, $password;
$con = new \App\gateway\Connection($dsn, $username, $password);
$gate = new \App\gateway\EvenementGateway($con);
//$gateImage = new \App\gateway\ImageGateway($con);
$gate = new EvenementGateway($this->con);
$data = $gate->findByTitle($titre);
@ -157,9 +91,7 @@ class UtilisateurModele
foreach($data as $row)
{
//$imgRaw = $gateImage->obtenirParId($row['image']);
$evenement[] = new \App\metier\Evenement(
$evenement[] = new Evenement(
$row['id'],
$row['organisateur'],
$row['titre'],
@ -169,6 +101,7 @@ class UtilisateurModele
$row['image']
);
}
return $evenement;
}
}

@ -1,29 +1,49 @@
<!DOCTYPE html>
<html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Créer un Événement</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
</head>
<body>
<h1>Créer un Événement</h1>
<form action="index.php?action=creerEvenement" method="post" enctype="multipart/form-data">
<label for="titre">Titre de l'Événement :</label>
<input type="text" id="titre" name="titre" required><br><br>
<label for="description">Description de l'Événement :</label>
<textarea id="description" name="description" rows="4" required></textarea><br><br>
<label for="date">Date de l'Événement :</label>
<input type="date" id="date" name="date" required><br><br>
<label for="nbPlaceMax">Nombre maximal d'inscrits :</label>
<input type="number" id="nbPlaceMax" name="nbPlaceMax" required><br><br>
<input type="file" name="image" id="image" required>
<br>
<input type="submit" value="Créer l'Événement">
</form>
<div class="container mt-5">
<h1 class="text-center">Créer un Événement</h1>
<form action="index.php?action=creerEvenement" method="post" enctype="multipart/form-data">
<div class="form-group">
<label for="titre">Titre de l'Événement :</label>
<input type="text" class="form-control" id="titre" name="titre" required>
</div>
<div class="form-group">
<label for="description">Description de l'Événement :</label>
<textarea class="form-control" id="description" name="description" rows="4" required></textarea>
</div>
<div class="form-group">
<label for="date">Date de l'Événement :</label>
<input type="date" class="form-control" id="date" name="date" required>
</div>
<div class="form-group">
<label for="nbPlaceMax">Nombre maximal d'inscrits :</label>
<input type="number" class="form-control" id="nbPlaceMax" name="nbPlaceMax" required>
</div>
<div class="form-group">
<label for="image">Image de l'Événement :</label>
<input type="file" class="form-control-file" name="image" id="image" required>
</div>
<div class="form-group">
<input type="submit" class="btn btn-primary" value="Créer l'Événement">
</div>
</form>
</div>
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.5.3/dist/umd/popper.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script>
</body>
</html>

@ -31,16 +31,18 @@
<li class="list-group-item">
<div class="infos">
<h2>{{ evenement.titre }}</h2>
<p><strong>Organisateur:</strong> {{ evenement.organisateurId}}</p>
<p><strong>Organisateur:</strong> {{ evenement.getNomOrganisateur() }}</p>
<p><strong>Date:</strong> {{ evenement.date }}</p>
<p><strong>Description:</strong> {{ evenement.description }}</p>
<img src="uploads/{{evenement.getImage()}}" width="250px" class="img-fluid">
<img src="uploads/{{ evenement.getImage() }}" width="250px" class="img-fluid" alt="{{ evenement.titre }}">
<p><strong>Places disponibles:</strong> {{ evenement.nbPlaceMax }}</p>
<a href="../public/index.php?action=avoirDetailEvenement&id={{ evenement.id }}" class="btn btn-primary">Détails</a>
</div>
<a href="../public/index.php?action=supprimerEvenement&id={{ evenement.id }}" id="deleteButton">
<img src="assets/close.png" alt="Supprimer" width="20px">
</a>
<form action="../public/index.php?action=supprimerEvenement&id={{ evenement.id }}" method="post">
<button type="submit" class="btn btn-primary" id="deleteButton">
<img src="assets/close.png" alt="Supprimer" width="20px">
</button>
</form>
</li>
{% endfor %}
{% else %}

Loading…
Cancel
Save