Skip to content
Extraits de code Groupes Projets
Sélectionner une révision Git
  • 0c3d6eb1ab4824e6b1315303dd1145c798fac4d6
  • 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

PartieController.php

Blame
  • PartieController.php 11,14 Kio
    <?php
    
    /**
     * Created by PhpStorm.
     * User: phoenix
     * Date: 25/04/16
     * Time: 15:27
     */
    class PartieController extends Controller
    {
        public function displayStep0(){
            $this->view->liste = Jeu::getList();
            $this->view->display();
        }
    
        public function displayStep1(){
            session_start();
            if(!isset($_SESSION['jeu_select']))
                header("Location:../add_partie");
    
            $this->view->jeuactuel = $_SESSION['jeu_select'];
            $this->view->listej = Profil::getList();
            $this->view->display();
        }
    
        public function displayStep2(){
            session_start();
            if(!isset($_SESSION['jeu_select']))
                header("Location:../add_partie");
            if(!isset($_SESSION['joueurs_select']))
                header("Location:../add_partie/step1");
            
            
            $this->view->jeuactuel = $_SESSION['jeu_select'];
            $this->view->listejactuel = $_SESSION['joueurs_select'];
            $this->view->display();
        }
    
        public function displayStepe1(){
            session_start();
            if(!isset($_SESSION['jeu_select']) || !isset($_SESSION['equipes']))
                header("Location:../add_partie");
    
            $this->view->jeuactuel = $_SESSION['jeu_select'];
            $this->view->listej = Profil::getList();
            $this->view->equipes = $_SESSION['equipes'];
            $this->view->display();
        }
    
        public function displayStepe2(){
            session_start();
            if(!isset($_SESSION['jeu_select']))
                header("Location:../add_partie");
            if(!isset($_SESSION['equipes']))
                header("Location:../add_partie/stepe1");
    
    
            $this->view->jeuactuel = $_SESSION['jeu_select'];
            $this->view->equipes = $_SESSION['equipes'];
            $this->view->display();
        }
        
        public function displayValid(){
            $this->view->display();
        }
        
        public static function verifyStep0(){
    
            if(!isset($_POST['jeu'])) {
                //appeler une fonction d'erreur
                echo "<h1>Erreur : variables absentes</h1>";
                die();
            }
            $jeu = $_POST['jeu'];
    
            if(!Jeu::checkExistsNom($jeu)) {
                echo "<h1>Erreur : le jeu entré est introuvable dans la BD.</h1>";
                die();
            }
    
            $jeu = Jeu::getFromNom($jeu);
            session_start();
            $_SESSION['jeu_select'] = $jeu;
            if($jeu->type == 'equipes'){
                $_SESSION['equipes'] = array(array());
                header('Location:stepe1');
            }
            else
                header('Location:step1');
        }
    
        public static function addjoueurs1(){
            session_start();
            if(!isset($_SESSION['jeu_select']))
                header("Location:../add_partie");
            if(!isset($_POST["joueur"])){
                echo "<h1>Erreur : pas de joueur entré.</h1>";
                die();
            }
            $jeu = $_SESSION['jeu_select'];
            $joueur = $_POST["joueur"];
    
            if(Profil::checkExists($joueur)){
                $joueur_objet = Profil::getFromSlug($joueur);
            }
            else{
                echo "<h1>Erreur : le joueur est introuvable dans la base de données.</h1>";
                die();
            }
    
            if($jeu->type == 'equipes'){
                $ke = $_POST['equipejadd'];
                foreach ($_SESSION['equipes'] as $equipe){
                    if(in_array($joueur_objet, $equipe)){
                        echo "<h1>Erreur : le joueur a déjà été inscrit pour cette partie.</h1>";
                        die();
                    }
                }
                array_push($_SESSION['equipes'][$ke], $joueur_objet);
                header("Location:stepe1");
            }
            else{
            if (!isset($_SESSION['joueurs_select'])){
                $_SESSION['joueurs_select'] = array($joueur_objet);
                echo "<h1>L'ajout s'est bien passé.</h1>";
                header("Location:step1");
            }
    
            if(!in_array($joueur_objet, $_SESSION['joueurs_select']))
                array_push($_SESSION['joueurs_select'], $joueur_objet);
            else{
                echo "<h1>Erreur : le joueur a déjà été inscrit pour cette partie.</h1>";
                die();
            }
            echo "<h1>L'ajout s'est bien passé.</h1>";
            header("Location:step1");
            }
        }
    
        public static function deljoueurs1(){
            session_start();
            if(!isset($_SESSION['jeu_select']))
                header("Location:../add_partie");
    
            if($_SESSION['jeu_select']->type == 'duels') {
                if (!isset($_SESSION['joueurs_select']))
                    header("Location:step1");
            }
            if($_SESSION['jeu_select']->type == 'equipes') {
                if (!isset($_SESSION['equipes']))
                    header("Location:stepe1");
            }
    
            if(!isset($_POST['joueurdel']))
            {
                echo "<h1>Erreur : variables manquantes.</h1>";
                die();
            }
    
            if($_SESSION['jeu_select']->type == 'equipes'){
                unset($_SESSION['equipes'][$_POST['equipejdel']][$_POST['joueurdel']]);
                $equipe_tmp = array();
                foreach ($_SESSION['equipes'][$_POST['equipejdel']] as $j)
                    array_push($equipe_tmp, $j);
                $_SESSION['equipes'][$_POST['equipejdel']] = $equipe_tmp;
                header("Location:stepe1");
            }
            else{
                unset($_SESSION['joueurs_select'][$_POST['joueurdel']]);
                $joueurs_tmp = array();
                foreach ($_SESSION['joueurs_select'] as $j)
                    array_push($joueurs_tmp, $j);
                $_SESSION['joueurs_select'] = $joueurs_tmp;
                header("Location:step1");
            }
        }
        public static function delequipe(){
            session_start();
            if (!isset($_SESSION['jeu_select']))
                header("Location:../add_partie");
            if (!isset($_SESSION['equipes']))
                header("Location:stepe1");
            if (count($_SESSION['equipes']) <= 1){
                echo "<h1>Erreur : vous ne pouvez pas supprimer la seule équipe restante.</h1>";
                die();
            }
    
            if(!isset($_POST['equipe'])){
                echo "<h1>Erreur : variables manquantes.</h1>";
                die();
            }
    
            unset($_SESSION['equipes'][$_POST['equipe']]);
            $equipe_tmp = array();
            foreach ($_SESSION['equipes'] as $e)
                array_push($equipe_tmp, $e);
            $_SESSION['equipes'] = $equipe_tmp;
            header("Location:stepe1");
        }
    
        public static function addequipe(){
            session_start();
            if (!isset($_SESSION['jeu_select']))
                header("Location:../add_partie");
            if (count($_SESSION['equipes']) == $_SESSION['jeu_select']->max_equipes){
                echo "<h1>Erreur : vous ne pouvez pas créer d'équipe supplémentaire.</h1>";
                die();
            }
    
            array_push($_SESSION['equipes'], array());
            header("Location:stepe1");
        }
    
        public static function verifyStep1(){
            session_start();
            if(!isset($_SESSION['jeu_select']))
                header("Location:../add_partie");
            $jeu_actuel = $_SESSION['jeu_select'];
            if ($jeu_actuel->type == 'equipes'){
                if(!isset($_SESSION['equipes']))
                    header("Location:stepe1");
                $equipes = $_SESSION['equipes'];
                if (count($equipes) < $jeu_actuel->min_equipes){
                    echo "<h1>Erreur : il n'y a pas assez d'équipes.</h1>";
                    die();
                }
                if (count($equipes) > $jeu_actuel->max_equipes){
                    echo "<h1>Erreur : il y a trop d'équipes.</h1>";
                    die();
                }
    
                foreach ($equipes as $ke => $e){
                    if (count($e) < $jeu_actuel->min_joueurs){
                        $ke = $ke+1;
                        echo "<h1>Erreur : il n'y a pas assez de joueurs dans l'équipe $ke.</h1>";
                        die();
                    }
                    if (!is_null($jeu_actuel->max_joueurs)){
                    if (count($e) > $jeu_actuel->max_joueurs){
                        $ke = $ke+1;
                        echo "<h1>Erreur : il y a trop de joueurs dans l'équipe $ke.</h1>";
                        die();
                    }
                    }
                }
    
                header("Location:stepe2");
            }
            else{
                if(!isset($_SESSION['joueurs_select']))
                    header("Location:step1");
                $joueurs = $_SESSION['joueurs_select'];
                if (count($joueurs) < $jeu_actuel->min_joueurs){
                    echo "<h1>Erreur : il n'y a pas assez de joueurs.</h1>";
                    die();
                }
                if (count($joueurs) > $jeu_actuel->max_joueurs){
                    echo "<h1>Erreur : il y a trop de joueurs.</h1>";
                    die();
                }
                header('Location:step2');
            }
    
    
    
        }
    
    
        public function verifyStep2(){
            session_start();
            if(!isset($_SESSION['jeu_select']))
                header("Location:../add_partie");
    
            $jeu = $_SESSION['jeu_select'];
            if ($jeu->type == 'equipes') {
                if (!isset($_SESSION['equipes']))
                    header("Location:stepe1");
            }
            else{
            if(!isset($_SESSION['joueurs_select']))
                header("Location:../add_partie/step1");
            }
    
            if(!isset($_POST['scores'])) {
                //appeler une fonction d'erreur
                echo "<h1>Erreur : variables absentes</h1>";
                die();
            }
    
    
            $scores = $_POST["scores"];
            foreach ($scores as $s){
                if(!is_numeric($s)) {
                    echo "<h1>Erreur : les scores doivent être des nombres.</h1>";
                    die();
                }
            }
            if ($jeu->type == 'equipes') {
                $equipes = $_SESSION['equipes'];
                $ns = count($scores);
                $nj = count($equipes);
                if ($ns != $nj){
                    //appeler une fonction d'erreur
                    echo "<h1>Erreur : scores et joueurs incohérents</h1>";
                    die();
                }
    
                $pb = Partie::addPartie($equipes, $scores, $jeu);
                if(!$pb) {
                    unset($_SESSION['equipes']);
                    unset($_SESSION['jeu_select']);
                    header('Location:valid'); // Redirection vers la page OK
                }
                switch ($pb) {
                    case 2:
                        echo "<h1>Erreur de connexion à la BD.</h1>";
                        die();
                        break;
                    default:
                        echo "<h1>Erreur non gérée.</h1>";
                        die();
                        break;
                }
            }
            else{
                $joueurs = $_SESSION['joueurs_select'];
                $ns = count($scores);
                $nj = count($joueurs);
                if ($ns != $nj){
                //appeler une fonction d'erreur
                    print_r($scores);
                    echo "<h1>Erreur : scores et joueurs incohérents</h1>";
                die();
            }
            $pb = Partie::addPartie($joueurs, $scores, $jeu);
            if(!$pb) {
                unset($_SESSION['jeu_select']);
                unset($_SESSION['joueurs_select']);
                header('Location:valid'); // Redirection vers la page OK
            }
            switch ($pb) {
                case 2:
                    echo "<h1>Erreur de connexion à la BD.</h1>";
                    die();
                    break;
                default:
                    echo "<h1>Erreur non gérée.</h1>";
                    die();
                    break;
            }
            }
        }
    }