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

AdminController.php

Blame
  • AdminController.php 20,25 Kio
    <?php
    include(ROOT."/Image.php");
    
    class AdminController extends Controller {
        
        public function display() {
            $this->view->display();
        }
    
        public function displayJeu() {
            $this->view->nonValide = Admin::getListeJeuNonValide();
            $this->view->Valide = Admin::getListeJeuValide();
            $this->view->display();
        }
        
        public function acceptJeu() {
            $slug = $this->route["params"]["slug"];
            if(Admin::acceptJeu($slug)) {
                header("Location:valide/ok");
            } else {
                session_start();
                $_SESSION['adminErr'] = 1;
                header("Location:../../jeu");
            }
        }
        
        public function displayAcceptJeuOK() {
            $this->view->display();
        }
    
        public function displayModifPartieOK() {
            $this->view->display();
        }
    
        public function supprimeJeu() {
            $slug = $this->route["params"]["slug"];
            Admin::supprJeu($slug);
            unlink(ROOT."/www/images/jeu/".$slug.".jpg");
            header("Location:supprime/ok");
        }
    
        public function displaySupprimeJeuOK() {
            $this->view->display();
        }
        
        public function unAcceptJeu() {
            $slug = $this->route["params"]["slug"];
            if(Admin::unacceptJeu($slug)) {
                header("Location:unvalide/ok");
            } else {
                session_start();
                $_SESSION['adminErr'] = 1;
                header("Location:../../jeu");
            }
        }
        
        public function displayUnAcceptJeuOK() {
            $this->view->display();
        }
        
        public function displayModifJeu() {
            $slug = $this->route["params"]["slug"];
            $this->view->jeu = Jeu::getFromSlug($slug);
            $this->view->display();
        }
    
        public function displayModifJeuOK() {
            $this->view->display();
        }
        public function verifyModifJeu() {
            $slug = $this->route["params"]["slug"];
            if(!isset($_POST['min_joueurs']) || !isset($_POST['type']) || !isset($_POST['type_scores'])) {
                session_start();
                $_SESSION['modifJeuErrCode'] = 1;
                header("location:../modif");
                die();
            }
            if(isset($_FILES['image'])) {
                list($err, $image) = getImage($_FILES['image'], 512, 512);
                if ($err == 0) {
                    saveImage($image, ROOT . "/www/images/jeu/" . $_POST['slug_jeu'] . ".jpg");
                } elseif($err == 2) {
                    $_SESSION["addRequestErrCode"] = $err; // on stocke le code d'erreur
                    header('Location:../modif'); // on redirige vers la page de formulaire (il faut faire un retour dans le dossier parent pour que ça fonctionne)
                    die();
                }
            }
            $data = $_POST;
            foreach (array('max_joueurs', 'min_equipes', 'max_equipes') as $truc) {
                if ($data[$truc] == 0) {
                    $data[$truc] = null;
                }
            }
            Admin::setModifJeu($slug, $data);
            header("Location:ok");
        }
        
        public function displayJoueur() {
            $this->view->joueurs = Profil::getList();
            $this->view->display();
        }
        public function supprimeJoueur() {
            $slug = $this->route["params"]["slug"];
            Admin::supprJoueur($slug);
            unlink(ROOT."/www/images/avatar/".$slug.".jpg");
            header("Location:supprime/ok");
        }
    
        public function displaySupprimeJoueurOK() {
            $this->view->display();
        }
        
        public function displayListPartie() {
            $this->view->listPartie = Admin::getListPartie();
            $this->view->display();        
        }
        
        public function initModifPartie()  {
            session_start();
            $id = $this->route["params"]["slug"];
            $partie = Partie::getFromId($id);
            $jeuactuel = Jeu::getFromSlug($partie->jeu);
            if($jeuactuel->type == "equipes"){
                $_SESSION['equipes'] = Admin::getEquipes($id);
                $_SESSION['jeu_select'] = $jeuactuel;
                $_SESSION['id_partie'] = $id;
                header("location:modif/stepe1");
                die();
            } else {
                $_SESSION['joueurs_select'] = Admin::getListeJoueur($id);
                $_SESSION['jeu_select'] = $jeuactuel;
                $_SESSION['id_partie'] = $id;
                header("location:modif/step1");
                die();
            }
        }
        
        public function displayModifPartieStepe1()
        {
            session_start();
            if (!isset($_SESSION['jeu_select']) || !isset($_SESSION['equipes'])) {
                header("Location:../add_partie");
                die();
            }
            if(isset($_SESSION['errMsg'])){
                $this->view->errMsg = $_SESSION['errMsg'];
                unset($_SESSION['errMsg']);
            }
            if (is_null($_SESSION['jeu_select']->max_joueurs)) {
                $this->view->maxj = "plus de";
            }
            else {
                $this->view->maxj = $_SESSION['jeu_select']->max_joueurs;
            }
            if (is_null($_SESSION['jeu_select']->max_equipes)) {
                $this->view->maxe = "plus d'";
            }
            else{
                $this->view->maxe = $_SESSION['jeu_select']->max_equipes." ";
            }
            $this->view->jeuactuel = $_SESSION['jeu_select'];
            $this->view->listej = Profil::getList();
            $this->view->equipes = $_SESSION['equipes'];
            $this->view->display();
        }
    
        public function displayModifPartieStep1()
        {
            session_start();
            if (!isset($_SESSION['jeu_select'])) {
                header("Location:../add_partie");
    			die();
    		}
            if(isset($_SESSION['errMsg'])){
                $this->view->errMsg = $_SESSION['errMsg'];
                unset($_SESSION['errMsg']);
            }
    
            if ($_SESSION['jeu_select']->max_joueurs === "")
                $this->view->max = "plus";
            else
                $this->view->max = $_SESSION['jeu_select']->max_joueurs;
    
            $this->view->jeuactuel = $_SESSION['jeu_select'];
            $this->view->listej = Profil::getList();
            $this->view->display();
        }
    
        private static function error($errstr, $step){
            session_start();
            $_SESSION['errMsg'] = $errstr;
            if($step == "step0") {
                header("Location:../add_partie");
                die();
            }
            else if($step == "step1") {
                header("Location:step1");
                die();
            }
            else if($step == "step2") {
                header("Location:step2");
                die();
            }
            else if($step == "stepe1") {
                header("Location:stepe1");
                die();
            }
            else if($step == "stepe2") {
                header("Location:stepe2");
                die();
            }
            else {
                header("Location:../add_partie");
                die();
            }
        }
    
        public static function ModifPartieaddjoueurs1()
        {
            session_start();
            if (!isset($_SESSION['jeu_select'])) {
                header("Location:../add_partie");
                die();
            }
    
            $jeu = $_SESSION['jeu_select'];
    
            if (!isset($_POST["joueur"])) {
                if ($jeu->type == 'equipes') {
                    self::error("<h1>Erreur : pas de joueur entré.</h1>", "stepe1");
                    die();
                }
                else {
                    self::error("<h1>Erreur : pas de joueur entré.</h1>", "step1");
                    die();
                }
            }
    
            $joueur = $_POST["joueur"];
    
            if (Profil::checkExists($joueur)) {
                $joueur_objet = Profil::getFromSlug($joueur);
            }
            else {
                if ($jeu->type == 'equipes') {
                    self::error("<h1>Erreur : le joueur est introuvable dans la base de données.</h1>", "stepe1");
                    die();
                }
                else {
                    self::error("<h1>Erreur : le joueur est introuvable dans la base de données.</h1>", "step1");
                    die();
                }
            }
    
            if ($jeu->type == 'equipes') {
                $ke = $_POST['equipejadd'];
                foreach ($_SESSION['equipes'] as $equipe) {
                    if (in_array($joueur_objet, $equipe)) {
                        self::error("<h1>Erreur : le joueur a déjà été inscrit pour cette partie.</h1>", "stepe1");
                        die();
                    }
                }
                array_push($_SESSION['equipes'][$ke], $joueur_objet);
                header("Location:stepe1");
                die();
            }
            else {
                if (!isset($_SESSION['joueurs_select'])) {
                    $_SESSION['joueurs_select'] = array($joueur_objet);
                    header("Location:step1");
                    die();
                }
    
                if (!in_array($joueur_objet, $_SESSION['joueurs_select']))
                    array_push($_SESSION['joueurs_select'], $joueur_objet);
                else {
                    self::error("<h1>Erreur : le joueur a déjà été inscrit pour cette partie.</h1>", "step1");
                    die();
                }
                header("Location:step1");
                die();
            }
        }
    
        public static function ModifPartieclearstep1()
        {
            session_start();
            if (!isset($_SESSION['jeu_select'])) {
                header("Location:../add_partie");
                die();
            }
            $jeu_actuel = $_SESSION['jeu_select'];
            if ($jeu_actuel->type == 'equipes') {
                if (!isset($_SESSION['equipes'])) {
                    header("Location:stepe1");
                    die();
                }
                $_SESSION['equipes'] = array(array());
                header("Location:stepe1");
                die();
            }
            else {
                if (!isset($_SESSION['joueurs_select'])) {
                    header("Location:step1");
                    die();
                }
                unset($_SESSION['joueurs_select']);
                header("Location:step1");
                die();
            }
        }
    
        public static function ModifPartiedeljoueurs1()
        {
            session_start();
            if (!isset($_SESSION['jeu_select'])) {
                header("Location:../add_partie");
                die();
            }
    
            if ($_SESSION['jeu_select']->type == 'duels') {
                if (!isset($_SESSION['joueurs_select'])) {
                    header("Location:step1");
                    die();
                }
            }
            if ($_SESSION['jeu_select']->type == 'equipes') {
                if (!isset($_SESSION['equipes'])) {
                    header("Location:stepe1");
                    die();
                }
            }
    
            if (!isset($_POST['joueurdel'])) {
                if ($_SESSION['jeu_select']->type == 'equipes') {
                    self::error("<h1>Erreur : variables manquantes.</h1>", "stepe1");
                    die();
                }
                else {
                    self::error("<h1>Erreur : variables manquantes.</h1>", "step1");
                    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");
                die();
            }
            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");
                die();
            }
        }
    
        public static function ModifPartiedelequipe()
        {
            session_start();
            if (!isset($_SESSION['jeu_select'])) {
                header("Location:../add_partie");
                die();
            }
            if (!isset($_SESSION['equipes'])) {
                header("Location:stepe1");
                die();
            }
            if (count($_SESSION['equipes']) <= 1) {
                self::error("<h1>Erreur : vous ne pouvez pas supprimer la seule équipe restante.</h1>", "stepe1");
                die();
            }
    
            if (!isset($_POST['equipe'])) {
                self::error("<h1>Erreur : variables manquantes.</h1>", "stepe1");
                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");
            die();
        }
    
        public static function ModifPartieaddequipe()
        {
            session_start();
            if (!isset($_SESSION['jeu_select'])) {
                header("Location:../add_partie");
    			die();
    		}
            if (count($_SESSION['equipes']) == $_SESSION['jeu_select']->max_equipes) {
                self::error("<h1>Erreur : vous ne pouvez pas créer d'équipe supplémentaire.</h1>", "stepe1");
    			die();
            }
    
            array_push($_SESSION['equipes'], array());
            header("Location:stepe1");
    		die();
        }
    
        public static function verifyModifPartieStep1()
        {
            session_start();
            if (!isset($_SESSION['jeu_select'])) {
                header("Location:../add_partie");
                die();
            }
            $jeu_actuel = $_SESSION['jeu_select'];
            if ($jeu_actuel->type == 'equipes') {
                if (!isset($_SESSION['equipes'])) {
                    header("Location:stepe1");
                    die();
                }
                $equipes = $_SESSION['equipes'];
                if (count($equipes) < $jeu_actuel->min_equipes) {
                    self::error("<h1>Erreur : il n'y a pas assez d'équipes.</h1>", "stepe1");
                    die();
                }
                if (count($equipes) > $jeu_actuel->max_equipes) {
                    self::error("<h1>Erreur : il y a trop d'équipes.</h1>", "stepe1");
                    die();
                }
    
                foreach ($equipes as $ke => $e) {
                    if (count($e) < $jeu_actuel->min_joueurs) {
                        $ke = $ke + 1;
                        self::error("<h1>Erreur : il n'y a pas assez de joueurs dans l'équipe $ke.</h1>", "stepe1");
                        die();
                    }
                    if (!is_null($jeu_actuel->max_joueurs)) {
                        if (count($e) > $jeu_actuel->max_joueurs) {
                            $ke = $ke + 1;
                            self::error("<h1>Erreur : il y a trop de joueurs dans l'équipe $ke.</h1>", "stepe1");
                            die();
                        }
                    }
                }
    
                header("Location:stepe2");
                die();
            }
            else {
                if (!isset($_SESSION['joueurs_select'])) {
                    header("Location:step1");
                    die();
                }
                $joueurs = $_SESSION['joueurs_select'];
                if (count($joueurs) < $jeu_actuel->min_joueurs) {
                    self::error("<h1>Erreur : il n'y a pas assez de joueurs.</h1>", "step1");
                    die();
                }
                if (count($joueurs) > $jeu_actuel->max_joueurs) {
                    self::error("<h1>Erreur : il y a trop de joueurs.</h1>", "step1");
                    die();
                }
                header('Location:step2');
                die();
            }
        }
    
    
    
        public function displayModifPartieStep2()
        {
            session_start();
            $id = $this->route["params"]["slug"];
            if (!isset($_SESSION['jeu_select'])) {
                header("Location:../add_partie");
                die();
            }
            if (!isset($_SESSION['joueurs_select'])) {
                header("Location:../add_partie/step1");
                die();
            }
            if(isset($_SESSION['errMsg'])){
                $this->view->errMsg = $_SESSION['errMsg'];
                unset($_SESSION['errMsg']);
            }
    
    
            $this->view->jeuactuel = $_SESSION['jeu_select'];
            $this->view->listejactuel = $_SESSION['joueurs_select'];
            if($this->view->jeuactuel->type_scores == "scores") {
                $this->view->scorePartie = Admin::getListeScorePartie($id);
            } else {
                $this->view->classement = Admin::getListeClassement($id);
            }
            $this->view->display();
        }
    
        public function displayModifPartieStepe2()
        {
            session_start();
            $id = $this->route["params"]["slug"];
            if (!isset($_SESSION['jeu_select'])) {
                header("Location:../../../partie");
    			die();
    		}
            if (!isset($_SESSION['equipes'])) {
                header("Location:../initModif");
    			die();
    		}
            if(isset($_SESSION['errMsg'])){
                $this->view->errMsg = $_SESSION['errMsg'];
                unset($_SESSION['errMsg']);
            }
    
            $this->view->jeuactuel = $_SESSION['jeu_select'];
            $this->view->equipes = $_SESSION['equipes'];
            if($this->view->jeuactuel->type_scores == "scores") {
                $this->view->scorePartie = Admin::getListeScorePartie($id);
            } else {
                $this->view->classement = Admin::getListeClassement($id);
            }
            $this->view->display();
        }
    
        public function verifyModifPartieStep2()
        {
            $id = $this->route["params"]["slug"];
            session_start();
            if (!isset($_SESSION['jeu_select'])) {
                self::error("<h1>Erreur : le jeu doit être renseigné.</h1>", "step0");
                die();
            }
    
            $jeu = $_SESSION['jeu_select'];
            if ($jeu->type == 'equipes') {
                if (!isset($_SESSION['equipes'])){
                    header("Location:stepe1");
                    die();
                }
            }
            else {
                if (!isset($_SESSION['joueurs_select'])) {
                    header("Location:step1");
                    die();
                }
            }
    
            if (!isset($_POST['scores'])) {
                if ($jeu->type == 'equipes') {
                    self::error("<h1>Erreur : variables absentes</h1>", "stepe2");
                    die();
                }
                else {
                    self::error("<h1>Erreur : variables absentes</h1>", "step2");
                    die();
                }
            }
    
            $scores = $_POST["scores"];
            foreach ($scores as $s) {
                if (!is_numeric($s)) {
                    if ($jeu->type == 'equipes') {
                        self::error("<h1>Erreur : les scores doivent être des nombres.</h1>", "stepe2");
                        die();
                    }
                    else {
                        self::error("<h1>Erreur : les scores doivent être des nombres.</h1>", "step2");
                        die();
                    }
                }
            }
            if ($jeu->type == 'equipes') {
                $equipes = $_SESSION['equipes'];
                $ns = count($scores);
                $nj = count($equipes);
                if ($ns != $nj) {
                    self::error("<h1>Erreur : scores et joueurs incohérents</h1>", "stepe2");
                    die();
                }
                $pb = Admin::ModifPartie($id,$equipes, $scores, $jeu);
                if (!$pb) {
                    unset($_SESSION['equipes']);
                    unset($_SESSION['jeu_select']);
                    header('Location:valid'); // Redirection vers la page OK
                    die();
                }
                switch ($pb) {
                    case 2:
                        self::error("<h1>Erreur de connexion à la BD.</h1>", "stepe2");
                        die();
                        break;
                    default:
                        self::error("<h1>Erreur non gérée.</h1>", "stepe2");
                        die();
                        break;
                }
            }
            else {
                $joueurs = $_SESSION['joueurs_select'];
                $ns = count($scores);
                $nj = count($joueurs);
                if ($ns != $nj) {
                    self::error("<h1>Erreur : scores et joueurs incohérents</h1>", "step2");
                    die();
                }
                $pb = Admin::ModifPartie($id, $joueurs, $scores, $jeu);
                if (!$pb) {
                    unset($_SESSION['jeu_select']);
                    unset($_SESSION['joueurs_select']);
                    //self::error("<h1>DEBUGGING</h1>", "step2");
                    //die();
                    header('Location:valid'); // Redirection vers la page OK
                    die();
                }
                switch ($pb) {
                    case 2:
                        self::error("<h1>Erreur de connexion à la BD.</h1>", "step2");
                        die();
                        break;
                    default:
                        self::error("<h1>Erreur non gérée.</h1>", "step2");
                        die();
                        break;
                }
            }
        }
        
        public function supprPartie() {
            $id = $this->route["params"]["slug"];
            Admin::supprPartie($id);
            header("Location:supprime/ok");
        }
        
        public function displaysupprPartieOK() {
            $this->view->display();
        }
    
    }