Skip to content
Extraits de code Groupes Projets
Sélectionner une révision Git
  • 858d94a4e55f257c056b9a246b6e9efb6b59d766
  • master par défaut protégée
  • dev
  • dev-admin
  • migration-pg
  • dev-partie
  • dev-deplacement-msg-erreurs
  • dev-jeux-favoris
  • dev-update-forms
  • dev-header-profil-deconnexion
  • dev-contact
  • dev_page_accueil
  • dev-edit-profil
  • dev-classement
  • dev_espace_membre
  • dev-images
  • javascript_valid_form
  • application_design_views
  • dev-table
  • dev-nestor
20 résultats

JeuController.php

Blame
  • 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
    		}
        }
    }