Sélectionner une révision Git
audio_timing_dialogue.cpp
-
Thomas Goyne a rédigéThomas Goyne a rédigé
JeuController.php 5,13 Kio
<?php
include(ROOT."/Image.php");
class JeuController extends Controller {
public function display() {
$slug = $this->route["params"]["slug"]; //cf. le commentaire dans ProfilController.php
$this->view->classement = Classement::getFromSlug($slug);
if(in_array($slug, Jeu::getSlugList())) { // si le nom du jeu cherché est dans notre BDD, on peut l'afficher
$this->view->jeu = Jeu::getFromSlug($slug);
$this->view->display();
}
else {
header('Location:'.BASE_URL.'/404');
}
}
public function displayListe() {
$this->view->liste = Jeu::getList();
$this->view->display();
}
public function listeJson() {
$this->view->liste = Jeu::getList();
$this->view->display();
}
public function redirect() {
$slug = $this->route["params"]["slug"];
$slugjeu = self::slugify($slug);
header('Location:jeu/'.$slugjeu);
}
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
if(isset($_FILES['image'])) {
list($err, $image) = getImage($_FILES['image'], 512, 512);
if ($err == 0) {
saveImage($image, ROOT."/www/images/jeu/".$data['slug_jeu'].".jpg");
} elseif($err == 1) {
session_start(); // on démarre une session pour avoir accès aux variables superglobales de session
$_SESSION["addRequestErrCode"] = 2; // 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)
die();
} else {
session_start(); // on démarre une session pour avoir accès aux variables superglobales de session
$_SESSION["addRequestErrCode"] = $err; // 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)
die();
}
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"] = 2; // 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)
}
}
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
}
public function displayFavorisValid() { // la fonction d'affichage de réussite
session_start(); // on démarre une session pour avoir accès aux variables superglobales de session
$slug_jeu = $this->route["params"]["slug"];
if(!isset($_SESSION['connected'])) { // vérification que membre connecté
$this->view->msg_error = "Vous n'êtes pas connecté !";
$this->view->sous_msg = "Connectez-vous, puis revenez ajouter ce jeu. :)";
$this->view->display(); // on affiche la page avec le message d'erreur
}
else if(!(Jeu::checkExists($slug_jeu))) { // vérification que jeu existe
$this->view->msg_error = "Ce jeu n'existe pas !";
$this->view->sous_msg = "Vous pouvez peut-être demander son ajout via le formulaire de demande d'ajout de jeu. :)";
$this->view->display(); // on affiche la page avec le message d'erreur
}
else if(Profil::checkJeuFavoris($_SESSION['user']->slug, $slug_jeu)) { // si jeu déjà dans favoris => on le retire
Profil::upadteJeuFavoris($_SESSION['user']->slug, $slug_jeu, 0);
$this->view->msg_success = "Ce jeu a été retiré de vos favoris !";
$this->view->sous_msg = "Il en faut pour tous les goûts ! :)";
$this->view->display(); // on affiche la page avec le message de réussite
}
else { // sinon, on le met en favoris
if(Profil::checkADejaJoue($_SESSION['user']->slug, $slug_jeu)) { // si une ligne joueur-jeu existe déjà => UPDATE
Profil::upadteJeuFavoris($_SESSION['user']->slug, $slug_jeu, 1);
}
else { // sinon => INSERT avec des null pour le classement et le score
Profil::insertJeuFavoris($_SESSION['user']->slug, $slug_jeu, 1);
}
$this->view->msg_success = "Ce jeu a été ajouté à vos favoris !";
$this->view->sous_msg = ":)";
$this->view->display(); // on affiche la page avec le message de réussite
}
}
}