burger-quizz/view/game/index.php
2018-06-07 10:57:43 +02:00

135 lines
No EOL
3.4 KiB
PHP

<?php
//Première étape, on vérifie si l'utilisateur est connecté
//On inclue les fichiers nécessaires
require_once './dao/bdd.php';
require_once './dao/dao.php';
require_once './dao/groupe_dao.php';
require_once './metier/user.php';
require_once './metier/groupe.php';
//on lance la vérification
checkstate();
function checkstate()
{
//On récupère l'utilisateur
$user = $_SESSION["user"];
//On vérifie qu'il y a quelqu'un de connecter
if ($user == NULL)
{
include_once 'view/game/notconnected.php';
return;
}
//A-t-on fini une partie ?
if (isset($_POST["saveq0"]))
{
endGame();
return;
}
//Doit-on charger les catégories ?
if ($_POST["cat"] == NULL)
{
showCategories();
return;
}
//Si on n'a rien, on doit afficher les questions
showQuestion();
}
/*
* Affiche les catégories
*/
function showCategories()
{
//On charge les catégories
include_once './view/game/categories.php';
}
/*
* Affiche les questions après sélection de la catégorie
*/
function showQuestion()
{
//On a choisi une catégorie, on doit sélectionner aléatoirement un groupe de question
//On récupère le nomrbe de groupe de questions relatif à la catégorie sélectionnée
//Initialisation de la DAO nécessaire
$dao = new groupe_dao();
//Récupération du nombre de groupe de question pour la catégorie sélectionnée
$tmp = $dao->count($_POST["cat"]);
$max = $tmp[0];
//Mise en place de l'index
$index = rand(0, $max - 1);
//On récupère tous les groupes relatifs à la catégorie sélectionnée
$data_groupes = $dao->selectByCat($_POST["cat"]);
//On récupère l'identifiant du groupe aléatoirement choisi
$id = $data_groupes[$index]["id"];
//On charge le groupe
$group = NULL;
$group = new groupe($id);
//On inclue la page principale
include_once 'view/game/run.php';
}
/*
* On traite la fin de la partie
*/
function endGame()
{
//On inclue les fichiers nécessaires
include_once './metier/reponse_user.php';
include_once './metier/game.php';
$reponses = array(); //Tableau contenant les futurs objets réponses
$questions_id = explode("|", $_POST["questions_id"]); //Tableau des identifiants des questions
$datas = array(); //Tableau des réponses de l'utilisateur
//Parsage des réponses
$max = count($questions_id) - 1;
for ($i = 0; $i < $max; $i++)
{
$datas[$i] = $_POST["saveq$i"];
}
//Mise en place des objets réponses
$max = count($datas);
for ($i = 0; $i < $max; $i++)
{
$tmp = new reponse_user(NULL, $questions_id[$i], $datas[$i]);
$reponses[$i] = $tmp;
}
//Création d'un nouvel objet game
$game = new game(NULL, $_SESSION["user"]->getLogin(), $_POST["time"], $reponses, null);
//Sauvegarde de la partie
$result = game::saveGame($game);
//Une fois que c'est terminée, on fait un redirection pour éviter les refreshs
//et donc les doublons de sauvegarde
if ($result)
{
//Si tout va bien, on affiche la page finale avec en argument l'id de la partie
//pour afficher les statistiques
header('Location: index.php?page=finish&game=' . $game->getGameId());
} else
{
//Sinon, un message d'erreur
header('Location: index.php?page=error');
}
}
?>