forked from antux18/ChasseTresorPange
Ajout d'un bouton pour l'énigme suivante, et la liste des énigmes.
This commit is contained in:
parent
819731ca7b
commit
357df6fbc2
31
article.php
31
article.php
@ -8,6 +8,8 @@
|
|||||||
|
|
||||||
$database = new Database();
|
$database = new Database();
|
||||||
|
|
||||||
|
$max_art = $database->getArticleNb();
|
||||||
|
|
||||||
if (isset($_GET["id"]) && isset($_GET["team"])) {
|
if (isset($_GET["id"]) && isset($_GET["team"])) {
|
||||||
$art_id = htmlspecialchars($_GET["id"]);
|
$art_id = htmlspecialchars($_GET["id"]);
|
||||||
$team_id = htmlspecialchars($_GET["team"]);
|
$team_id = htmlspecialchars($_GET["team"]);
|
||||||
@ -18,19 +20,26 @@
|
|||||||
$stmt->execute();
|
$stmt->execute();
|
||||||
$article = $stmt->fetch();
|
$article = $stmt->fetch();
|
||||||
|
|
||||||
// Recherche de l'équipe dans la base :
|
|
||||||
$stmt = $database->pdo_teams->prepare("SELECT * FROM teams WHERE id == :id");
|
|
||||||
$stmt->bindValue(":id", $team_id);
|
|
||||||
$stmt->execute();
|
|
||||||
|
|
||||||
// Vérification de l'existence du groupe et de l'énigme :
|
// Vérification de l'existence du groupe et de l'énigme :
|
||||||
if (empty($article) || empty($stmt->fetch())) {
|
if (empty($article) || !$database->checkTeamExists($team_id)) {
|
||||||
header("Location: index.php");
|
header("Location: index.php");
|
||||||
die();
|
die();
|
||||||
}
|
}
|
||||||
|
|
||||||
else {
|
else {
|
||||||
// On vérifie si l'énigme est résolue :
|
// On vérifie si l'énigme bonus n'est pas débloquée :
|
||||||
|
if (!$database->checkTeamBonus($team_id)) {
|
||||||
|
// Si c'est celle qui est sélectionnée, on retourne à la liste des énigmes :
|
||||||
|
if ($art_id == $max_art) {
|
||||||
|
header("Location: puzzles.php?team=" . $team_id);
|
||||||
|
die();
|
||||||
|
}
|
||||||
|
|
||||||
|
// On retire l'énigme bonus du total :
|
||||||
|
$max_art--;
|
||||||
|
}
|
||||||
|
|
||||||
|
// On indique si l'énigme est résolue :
|
||||||
$stmt = $database->pdo_teams->prepare("SELECT * FROM solved WHERE (team_id == :team_id AND puzzle_id == :puzzle_id)");
|
$stmt = $database->pdo_teams->prepare("SELECT * FROM solved WHERE (team_id == :team_id AND puzzle_id == :puzzle_id)");
|
||||||
$stmt->bindValue(":team_id", $team_id);
|
$stmt->bindValue(":team_id", $team_id);
|
||||||
$stmt->bindValue(":puzzle_id", $art_id);
|
$stmt->bindValue(":puzzle_id", $art_id);
|
||||||
@ -66,6 +75,14 @@
|
|||||||
<p><?= $article["text"] ?></p>
|
<p><?= $article["text"] ?></p>
|
||||||
</header>
|
</header>
|
||||||
<article>
|
<article>
|
||||||
|
<div>
|
||||||
|
<a href="puzzles.php?team=<?= $team_id ?>">
|
||||||
|
<button><?= $tr["article"]["back_but"] ?></button>
|
||||||
|
</a>
|
||||||
|
<a href="article.php?team=<?= $team_id ?>&id=<?= ($art_id % $max_art) + 1 ?>">
|
||||||
|
<button><?= $tr["article"]["next_but"] ?></button>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
<?php if ($solved) : ?>
|
<?php if ($solved) : ?>
|
||||||
<p><?= $tr["article"]["success"] ?></p>
|
<p><?= $tr["article"]["success"] ?></p>
|
||||||
<p><?= $article["answer"] ?></p>
|
<p><?= $article["answer"] ?></p>
|
||||||
|
@ -52,10 +52,16 @@
|
|||||||
return !empty($stmt->fetch());
|
return !empty($stmt->fetch());
|
||||||
}
|
}
|
||||||
|
|
||||||
// public function getArticleNb() {
|
public function getArticleNb() {
|
||||||
// $query = $this->pdo_article->query("SELECT COUNT(*) FROM puzzles");
|
$query = $this->pdo_article->query("SELECT COUNT(*) FROM puzzles");
|
||||||
// return $query->fetch()["COUNT(*)"];
|
return $query->fetch()["COUNT(*)"];
|
||||||
// }
|
}
|
||||||
|
|
||||||
|
function checkTeamBonus(int $team) {
|
||||||
|
// $team doit être une équipe existante :
|
||||||
|
$query = $this->pdo_teams->query("SELECT bonus FROM teams WHERE id = " . $team);
|
||||||
|
return $query->fetch()[0] == 1;
|
||||||
|
}
|
||||||
|
|
||||||
// public function getTeamsNb() {
|
// public function getTeamsNb() {
|
||||||
// $query = $this->pdo_teams->query("SELECT COUNT(*) FROM teams");
|
// $query = $this->pdo_teams->query("SELECT COUNT(*) FROM teams");
|
||||||
|
@ -26,6 +26,8 @@
|
|||||||
"article" => [
|
"article" => [
|
||||||
"message" => "This puzzle describes a specific place. Head to that place, then scan the QR code you'll find there.",
|
"message" => "This puzzle describes a specific place. Head to that place, then scan the QR code you'll find there.",
|
||||||
"success" => "Well done ! Your team solved this puzzle !",
|
"success" => "Well done ! Your team solved this puzzle !",
|
||||||
|
"back_but" => "Puzzle list",
|
||||||
|
"next_but" => "Next puzzle",
|
||||||
"qr_but" => "Scan QR code",
|
"qr_but" => "Scan QR code",
|
||||||
"cam_sel" => "Selected camera :",
|
"cam_sel" => "Selected camera :",
|
||||||
"f_cam" => "Front camera",
|
"f_cam" => "Front camera",
|
||||||
|
@ -26,6 +26,8 @@
|
|||||||
"article" => [
|
"article" => [
|
||||||
"message" => "Cette énigme décrit un endroit précis. Dirigez-vous vers cet endroit, puis scannez le QR code que vous-y trouverez.",
|
"message" => "Cette énigme décrit un endroit précis. Dirigez-vous vers cet endroit, puis scannez le QR code que vous-y trouverez.",
|
||||||
"success" => "Bien joué ! Votre équipe a résolu cette énigme !",
|
"success" => "Bien joué ! Votre équipe a résolu cette énigme !",
|
||||||
|
"back_but" => "Liste des énigmes",
|
||||||
|
"next_but" => "Énigme suivante",
|
||||||
"qr_but" => "Scanner le QR code",
|
"qr_but" => "Scanner le QR code",
|
||||||
"cam_sel" => "Caméra sélectionnée :",
|
"cam_sel" => "Caméra sélectionnée :",
|
||||||
"f_cam" => "Caméra avant",
|
"f_cam" => "Caméra avant",
|
||||||
|
13
style.css
13
style.css
@ -59,6 +59,7 @@ input {
|
|||||||
}
|
}
|
||||||
|
|
||||||
input[type="submit"], button {
|
input[type="submit"], button {
|
||||||
|
font-size: 14px;
|
||||||
background: var(--hl);
|
background: var(--hl);
|
||||||
border-style: none;
|
border-style: none;
|
||||||
padding: 20px;
|
padding: 20px;
|
||||||
@ -250,6 +251,13 @@ main > article img {
|
|||||||
width: 45%;
|
width: 45%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
main > article div {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
align-self: center;
|
||||||
|
gap: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
nav article {
|
nav article {
|
||||||
background-color: var(--bg-dark);
|
background-color: var(--bg-dark);
|
||||||
border-style: solid;
|
border-style: solid;
|
||||||
@ -321,6 +329,11 @@ video {
|
|||||||
|
|
||||||
main > article img {
|
main > article img {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
max-height: 100px;
|
||||||
|
}
|
||||||
|
|
||||||
|
main > article div {
|
||||||
|
flex-direction: row;
|
||||||
}
|
}
|
||||||
|
|
||||||
video {
|
video {
|
||||||
|
4
todo.md
4
todo.md
@ -3,8 +3,8 @@
|
|||||||
[x] Ajouter pages avec nom des membres équipe
|
[x] Ajouter pages avec nom des membres équipe
|
||||||
[x] Empêcher retour à la liste d'équipe une fois sélectionnée
|
[x] Empêcher retour à la liste d'équipe une fois sélectionnée
|
||||||
[x] Input au lieu de liste équipe
|
[x] Input au lieu de liste équipe
|
||||||
[ ] Bouton retour aux énigmes
|
[x] Bouton retour aux énigmes
|
||||||
[ ] Bouton énigme suivante
|
[x] Bouton énigme suivante
|
||||||
[ ] Carte avec toutes les énigmes
|
[ ] Carte avec toutes les énigmes
|
||||||
[ ] Ordre énigmes aléatoire
|
[ ] Ordre énigmes aléatoire
|
||||||
[ ] CSS du cadre QR Code
|
[ ] CSS du cadre QR Code
|
Loading…
Reference in New Issue
Block a user