135 lines
No EOL
3.4 KiB
PHP
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');
|
|
}
|
|
}
|
|
|
|
?>
|