Skip to content
Extraits de code Groupes Projets
Valider 6f16523a rédigé par vbochet's avatar vbochet
Parcourir les fichiers

Ajout de fichiers et modification de la classe Jeu pour implémenter le...

Ajout de fichiers et modification de la classe Jeu pour implémenter le formulaire de demande d'ajout de jeu. Mise à jour de la page d'accueil.
parent 6295c399
Aucune branche associée trouvée
Aucune étiquette associée trouvée
2 requêtes de fusion!21Merge de Dev dans Master,!1Merge de dev-nestor sur dev
......@@ -6,9 +6,42 @@ class JeuController extends Controller {
$this->view->jeu = Jeu::getFromSlug($slug);
$this->view->display();
}
public function displayListe() {
$this->view->liste = Jeu::getList();
$this->view->display();
}
public function displayFormAdd() {
$this->view->display();
}
public function addRequest() {
if(!isset($_POST['nom']) || !isset($_POST['description'])) { // si l'une des données manque, erreur
//appeler une fonction d'erreur
echo "<h1>Erreur : variables absentes</h1>";
die();
}
$data = $_POST;
$data['slug_jeu'] = self::slugify($_POST['nom']);
$result = Jeu::checkExists($data['slug_jeu']); // vérifie si le jeu n'est pas encore dans la BDD
if($result == 0) { // connexion valide
Jeu::addRequest($data['nom'], $data['description'], $data['slug_jeu'], 0);// on ajoute le jeu à la BDD avec
header('Location:requestvalid'); // on redirige vers la page OK
}
else {
session_start(); // on démarre une session pour avoir accès aux variables superglobales de session
$_SESSION["addRequestErrCode"] = $result; // on stocke le code d'erreur
header('Location:../addjeu'); // on redirige vers la page de formulaire (il faut faire un retour dans le dossier parent pour que ça fonctionne)
}
//$this->view->display();
}
public function displayRequestValid() { // la fonction d'affichage de réussite
$this->view->display(); // on affiche la page avec le message de réussite
}
}
......@@ -28,6 +28,21 @@ class Router { // classe PHP permettant l'analyse de l'URL des requêtes
$result["action"] = "displayListe"; // on veut afficher la liste des jeux, donc on donne l'action "displayListe"
// il n'y a pas de paramètres attendus, on n'affecte pas $result["params"]
}
else if($parts[0] == "addjeu" && count($parts) == 1) { // on veut afficher le formulaire d'ajout(url/addjeu)
$result["controller"] = "Jeu";
$result["action"] = "displayFormAdd"; // on veut afficher le formulaire
// il n'y a pas de paramètres attendus, on n'affecte pas $result["params"]
}
else if($parts[0] == "addjeu" && count($parts) == 2 && $parts[1] == "addrequest") { // on veut enregistrer la demande d'ajout (addjeu/addrequest)
$result["controller"] = "Jeu"; // le contrôleur à instancier sera "JeuController", on met donc "Jeu" dans la variable de résultat
$result["action"] = "addRequest"; // on veut ajouter le jeu à la BDD, donc on donne l'action "addRequest"
// il n'y a pas de paramètres attendus, on n'affecte pas $result["params"]
}
else if($parts[0] == "addjeu" && count($parts) == 2 && $parts[1] == "requestvalid") { // l'enregistrement de la demande a été effectué, on affiche un message de confirmation (addjeu/requestvalid)
$result["controller"] = "Jeu";
$result["action"] = "displayRequestValid";
// il n'y a pas de paramètres attendus, on n'affecte pas $result["params"]
}
/*** consultation des profils ***/
else if($parts[0] == "profil" && count($parts) == 2) { // consultation d'un profil : 2 morceaux (profil/pseudoDeLaPersonne)
......
......@@ -5,7 +5,7 @@ class Jeu extends Model {
public static function getFromSlug($slug_jeu) {
$db = Database::getInstance();
$sql = "SELECT * FROM jeux WHERE slug = :slug";
$sql = "SELECT * FROM R_jeu WHERE slug = :slug";
$stmt = $db->prepare($sql);
$stmt->setFetchMode(PDO::FETCH_CLASS, "Jeu"); // règle le type dans lequel on doit mettre les données (PDO va chercher les attributs de la classe de même nom que ses colonnes de BDD et mettre dedans les valeurs correspondantes)
$stmt->execute(array(":slug" => $slug_jeu));
......@@ -14,13 +14,38 @@ class Jeu extends Model {
public static function getList() {
$db = Database::getInstance();
$sql = "SELECT * FROM jeux";
$sql = "SELECT * FROM R_jeu";
$stmt = $db->query($sql);
$stmt->setFetchMode(PDO::FETCH_CLASS, "Jeu");
return $stmt->fetchAll();
}
public static function checkExists($slug_jeu) { // méthode permettant de vérifier si un jeu existe dans la BDD
$db = Database::getInstance(); // on récupère la connexion à la BDD
$sql = "SELECT * FROM R_jeu WHERE slug = :slug";
$req = $db->prepare($sql); // on prépare la requête
$req->execute(array(":slug" => $slug_jeu)); // on remplace les variables dans la requête
if($result = $req->fetch()) { // on récupère l'enregistrement, s'il existe
return 1;
}
return 0; // on aurait pu mettre deux return (un dans le if et un ici), mais bon...
}
public static function addRequest($nom_jeu, $description, $slug_jeu, $est_valide) {
$db = Database::getInstance();
$sql = "INSERT INTO R_jeu (nom, description, slug, est_valide) VALUES (:nom, :description, :slug, :est_valide);";
$stmt = $db->prepare($sql);
if($stmt->execute(array(":nom" => $nom_jeu, ":description" => $description, ":slug" => $slug_jeu, ":est_valide" => $est_valide))) {
//ok
}
else {
echo "Arise, ça marche pas..."; die();
}
}
}
......
......@@ -17,6 +17,7 @@
<li><a href="jeu/<?php echo $jeu->slug;?>"><?php echo $jeu->nom;?></a></li>
<?php endforeach;?>
</ul>
<h2 style="margin-bottom:-2px;"><a href="addjeu">Demander à ajouter un jeu</a></h2>
<h2 style="margin-bottom:-4px;">Liste de profils</h2>
<em>(modifs à venir lorsqu'on aura défini la BDD)</em>
......
<?php session_start(); ?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>Formulaire de demande d'ajout de jeu</title>
</head>
<body>
<header>
<h1>Formulaire de demande d'ajout de jeu</h1>
</header>
<?php if(isset($_SESSION['addRequestErrCode'])) {
echo '<h3 style="color:red;">Ce jeu est déjà dans la base !</h3>';
unset($_SESSION['addRequestErrCode']);
} ?>
<form method="post" action="addjeu/addrequest">
<label for="nom">Nom du jeu :</label> <input type="text" name="nom" required="" id="nom" /> <br/>
<label for="description">Description :</label> <textarea name="description" id="description" ></textarea> <br/>
<input type="submit" />
</form>
<footer>
<p>Pied de page...</p>
</footer>
</body>
</html>
<?php session_start(); ?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>Demande enregistrée</title>
</head>
<body>
<header>
<h1 style="color:green;">Votre demande a été enregistrée !</h1>
</header>
<p>Elle sera traitée par les administrateurs dès que possible. :)</p>
<footer>
<p>Le pied de page</p>
</footer>
</body>
</html>
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter