Compare commits
1 commit
Author | SHA1 | Date | |
---|---|---|---|
|
a37cde1244 |
52
README.md
|
@ -7,20 +7,6 @@ nécessaires liées à la semaine d’accueil.
|
||||||
Le site est fait à une fin humoristique. Il sert à guider les PPAs mais également à les
|
Le site est fait à une fin humoristique. Il sert à guider les PPAs mais également à les
|
||||||
amuser avant leur rentrée.
|
amuser avant leur rentrée.
|
||||||
|
|
||||||
# 2023
|
|
||||||
Des modifications ont été apportées au site par Théo Mougnibas notamment sur :
|
|
||||||
|
|
||||||
- les variables globales et le template
|
|
||||||
- les menus
|
|
||||||
- la structure de la base de donnée
|
|
||||||
- tout le fonctionnement de la com ville
|
|
||||||
- améliorations du panneau d'administration
|
|
||||||
- Tout le fonctionnement des mots croisés
|
|
||||||
- ajout de la possibilité pour la com ville et photos d'upload eux-même leurs photos
|
|
||||||
|
|
||||||
Si vous avez des questions dessus, n'hésitez pas :D
|
|
||||||
|
|
||||||
## 2022
|
|
||||||
Des connaissances en HTML et CSS sont requises mais peuvent être plus ou moin apprises sur le tas, la page de la com_ville en revanche demande des connaissances en php(voir avec Baptiste Rébillard pour le fonctionnemet ou dans la section "pages" qui arrivera plus tard dans ce readme).
|
Des connaissances en HTML et CSS sont requises mais peuvent être plus ou moin apprises sur le tas, la page de la com_ville en revanche demande des connaissances en php(voir avec Baptiste Rébillard pour le fonctionnemet ou dans la section "pages" qui arrivera plus tard dans ce readme).
|
||||||
|
|
||||||
Le site est originelement celui de Arnaud Vergnet, mais en 2022 Baptiste Rébillard et Guillaume Joffre ont entrepris de le modifier de fond en comble (Baptiste le back et Guillaume le front).
|
Le site est originelement celui de Arnaud Vergnet, mais en 2022 Baptiste Rébillard et Guillaume Joffre ont entrepris de le modifier de fond en comble (Baptiste le back et Guillaume le front).
|
||||||
|
@ -29,9 +15,6 @@ Donc si vous avez des questions le site on le connait par coeur !
|
||||||
Ce readme est également rédigé par Baptiste Rébillard il faudra donc le mettre à jour mais s'il n'est pas assez compréhensible il ne faut pas hésiter à me poser des questions.
|
Ce readme est également rédigé par Baptiste Rébillard il faudra donc le mettre à jour mais s'il n'est pas assez compréhensible il ne faut pas hésiter à me poser des questions.
|
||||||
|
|
||||||
PS : je suis éclaté en orthographe donc je m'excuse... Donc ce document va sûrement vous arracher les yeux mais il a le mérite d'exister !
|
PS : je suis éclaté en orthographe donc je m'excuse... Donc ce document va sûrement vous arracher les yeux mais il a le mérite d'exister !
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Structure
|
# Structure
|
||||||
|
|
||||||
Les vues et script (pages vues par l'utilisateur) sont dans le main folder (./).
|
Les vues et script (pages vues par l'utilisateur) sont dans le main folder (./).
|
||||||
|
@ -93,7 +76,7 @@ id = 1; answer = réponse de l'énigme de la plaquette; point = nombre de points
|
||||||
| name | varchar(30) | | |
|
| name | varchar(30) | | |
|
||||||
| team | tinyint(11) | | X |
|
| team | tinyint(11) | | X |
|
||||||
|
|
||||||
on doit tout entrer manuellement dans la base de données en revanche le formulaire du mot croisé va se construire automatiquement sans rien faire au fur et a mesure qu'on y ajoute des nom à deviner.
|
on doit tout entrer manuellement dans la base de données en revanche le formulaire du mot croisé va se construire automatiquement sans rien faire au fur et a mesure qu'on y ajotue des nom à deviner.
|
||||||
|
|
||||||
id correspont donc au numéro du mot à trouver, name au mot à trouver, et team reste à NULL tout le temps et ne servirait que si on modifiai le php pour ajouter des points de manière différente.
|
id correspont donc au numéro du mot à trouver, name au mot à trouver, et team reste à NULL tout le temps et ne servirait que si on modifiai le php pour ajouter des points de manière différente.
|
||||||
|
|
||||||
|
@ -134,6 +117,15 @@ Par défaut il faut avoir une seule ligne vide, le script se chargera de la modi
|
||||||
| team | tinyint(1) | | |
|
| team | tinyint(1) | | |
|
||||||
| id_staff | text | | |
|
| id_staff | text | | |
|
||||||
|
|
||||||
|
### ville
|
||||||
|
|
||||||
|
| Nom | Type | AUTO_INCREMENT | NULL |
|
||||||
|
| :----------- |:------------:|:---------------:|:-----:|
|
||||||
|
| session | int(11) | X | |
|
||||||
|
| state | int(11) | | |
|
||||||
|
| time_begin | int(11) | | |
|
||||||
|
|
||||||
|
ici il y a les session car il y a la session du matin et la session de l'après midi, cette table permet de savoir quelle session à été lancé, et le temps(unix) à laquelle la session à été lancé si elle l'a été.
|
||||||
|
|
||||||
### ville_epreuve
|
### ville_epreuve
|
||||||
|
|
||||||
|
@ -142,18 +134,9 @@ Par défaut il faut avoir une seule ligne vide, le script se chargera de la modi
|
||||||
| id | int(11) | X | |
|
| id | int(11) | X | |
|
||||||
| indice | text | | |
|
| indice | text | | |
|
||||||
| reponse | varchar(50) | | |
|
| reponse | varchar(50) | | |
|
||||||
| photo | varchar(50) | | X |
|
| photo | varchar(20) | | X |
|
||||||
| id_equipe | int(11) | | X |
|
|
||||||
| est_finale | BOOLEAN | | |
|
|
||||||
| ordre | int(11) | | |
|
|
||||||
| est_trouvee | BOOLEAN | | |
|
|
||||||
|
|
||||||
ici il va falloir mettre chaque épreuve à la main, indice correspond à ce qui va etre affiché aux PPA à chaque étape, la réponse à ce que doivent deviner les PPA, et éventuellement une photos pour les aider qui se trouve dans "assets/img/ville/"
|
ici il va falloir mettre chaque épreuve à la main, indice correspond à ce qui va etre affiché aux PPA à chaque étape, la réponse à ce que doivent deviner les PPA, et éventuellement une photos pour les aider qui se trouve dans "assets/img/ville/"
|
||||||
Le champ "id_equipe" est une clé étrangère faisant reférence à la taple ville_equipe. Cette clé est utile si l'on veut mettre des indices différents pour chaque équipe (NULL si universel).
|
|
||||||
Le bouléen "est_finale" va servir à mettre fin au chronomètre si l'équipe trouve la réponse de l'énigme.
|
|
||||||
L'entier "ordre" est simplement là pour spécifier la position dans laquelle l'énigme va apparaître dans le parcours de l'équipe.
|
|
||||||
|
|
||||||
Le bouléen "est_trouvee" va simplement indiquer si une épreuve est complétée ou non
|
|
||||||
|
|
||||||
### ville_equipe
|
### ville_equipe
|
||||||
|
|
||||||
|
@ -161,22 +144,15 @@ Le bouléen "est_trouvee" va simplement indiquer si une épreuve est complétée
|
||||||
| :----------- |:------------:|:---------------:|:-----:|
|
| :----------- |:------------:|:---------------:|:-----:|
|
||||||
| id | int(11) | X | |
|
| id | int(11) | X | |
|
||||||
| nom | varchar(50) | | |
|
| nom | varchar(50) | | |
|
||||||
|
| begin | int(11) | | |
|
||||||
| temps | text | | X |
|
| temps | text | | X |
|
||||||
|
|
||||||
les identifiants des équipes ne doivent pas bouger, les noms c'est juste pour l'affichage utilisateur.
|
les identifiants des équipes ne doivent pas bouger, les noms c'est juste pour l'affichage utilisateur et le "begin" est l'étape à laquelle démarre l'équipe, car ils ne démarrent pas tous à la même épreuve !
|
||||||
la colonne temps permet d'enregistrer les temps à chaque étape (en temps unix évidemment).
|
la colonne temps permet d'enregistrer les temps à chaque étape (en temps unix évidemment).
|
||||||
|
|
||||||
|
|
||||||
# Pages
|
# Pages
|
||||||
|
|
||||||
|
|
||||||
### globals.php
|
|
||||||
|
|
||||||
> Dans toutes ces pages, vous retrouverez plusieurs fois les noms des teams.
|
|
||||||
Pour les changer de manière globale, modifiez les valeurs de $TEAM1 et $TEAM2 dans assets/scripts/globals.php
|
|
||||||
|
|
||||||
le fichier globals.php contient aussi la carte du site pour build dynamiquement le menu des liens/
|
|
||||||
|
|
||||||
### anim.php
|
### anim.php
|
||||||
Page sans complexité, juste du contenu, demander le contenu auprès de la com'anim.
|
Page sans complexité, juste du contenu, demander le contenu auprès de la com'anim.
|
||||||
### blouse.php
|
### blouse.php
|
||||||
|
@ -308,7 +284,7 @@ Il faut juste modifier les noms des équipes car tout va être gérer via l'espa
|
||||||
|
|
||||||
### team.php
|
### team.php
|
||||||
Il y a deux sections via 2 liens :
|
Il y a deux sections via 2 liens :
|
||||||
team.php?id=team1 et team.php?id=team1 ( pas besoin de modifier les lien avec le nom des équipes si vous avez déjà update les variables globales TEAM1 et TEAEM2 dans assets/scripts/globals.php),
|
team.php?id=pkpeach et team.php?id=pkpeach il faut donc modifier les lien avec le nom des équipes (ligne 16 et 42),
|
||||||
sinon il va falloir harceler le prez et vice prez pour avoir les petits messages encourageant pour les équipes, si ça prend un peu de temps n'oublie pas que tu peux utiliser la page "construction.php" expliqué un peu plus haut dans ce readme.
|
sinon il va falloir harceler le prez et vice prez pour avoir les petits messages encourageant pour les équipes, si ça prend un peu de temps n'oublie pas que tu peux utiliser la page "construction.php" expliqué un peu plus haut dans ce readme.
|
||||||
|
|
||||||
### vacances.php
|
### vacances.php
|
||||||
|
|
|
@ -1,50 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
|
|
||||||
include "script.php";
|
|
||||||
|
|
||||||
include "../script/db_init.php";
|
|
||||||
|
|
||||||
|
|
||||||
if($user['perm'] < 3) {
|
|
||||||
header('Location: deco.php');
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if(isset($_GET["radio_bdd"])){
|
|
||||||
|
|
||||||
switch($_GET["radio_bdd"]){
|
|
||||||
|
|
||||||
case "drop":
|
|
||||||
//drop_bdd($LISTE_TABLES,$db);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case "create":
|
|
||||||
create_bdd($LISTE_TABLES_DROP,$db);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
?>
|
|
||||||
|
|
||||||
<!DOCTYPE html>
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<meta charset="utf-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
||||||
<title>Admin / index</title>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<main>
|
|
||||||
|
|
||||||
<form action="/admin/bdd.php">
|
|
||||||
<input type="radio" name="radio_bdd" id="drop_bdd" value="drop">
|
|
||||||
<label for="drop_bdd">Supprimer la base de données</label>
|
|
||||||
<input type="radio" name="radio_bdd" id="create_bdd" value="create">
|
|
||||||
<label for="create_bdd">Créer la base de données</label>
|
|
||||||
<input type="submit" value="CLIQUE PAS SUR MOI, PAS LE VENDREDI STP">
|
|
||||||
</form>
|
|
||||||
</main>
|
|
||||||
|
|
||||||
|
|
||||||
</body>
|
|
|
@ -1,114 +0,0 @@
|
||||||
<?php
|
|
||||||
include "script.php";
|
|
||||||
|
|
||||||
$refresh_rate = 15; //refresh rate en seconde (en gros on refresh la page toute les 15sec)
|
|
||||||
|
|
||||||
if($user['perm'] < 1) {
|
|
||||||
header('Location: deco.php');
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// Compress image
|
|
||||||
function compressImage($source, $destination, $quality) {
|
|
||||||
|
|
||||||
$info = getimagesize($source);
|
|
||||||
|
|
||||||
if ($info['mime'] == 'image/jpeg')
|
|
||||||
$image = imagecreatefromjpeg($source);
|
|
||||||
|
|
||||||
elseif ($info['mime'] == 'image/gif')
|
|
||||||
$image = imagecreatefromgif($source);
|
|
||||||
|
|
||||||
elseif ($info['mime'] == 'image/png')
|
|
||||||
$image = imagecreatefrompng($source);
|
|
||||||
|
|
||||||
imagejpeg($image, $destination, $quality);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// ajout d'une epreuve
|
|
||||||
if(isset($_POST['add_photo'])){
|
|
||||||
|
|
||||||
//$upload_state prend plusieurs valeurs :
|
|
||||||
// 1 si tout est valide et l'image n'existe pas déjà
|
|
||||||
// 0 si une verification a invalidé le fichier
|
|
||||||
|
|
||||||
|
|
||||||
$EXT_WHITELIST = array("gif","jpg","jpeg","png");
|
|
||||||
|
|
||||||
/* gestion des uploads d'images indices */
|
|
||||||
$target_dir = "../assets/img/com_photo/full_q/";
|
|
||||||
$target_file = $target_dir . basename($_FILES["photo"]["name"]);
|
|
||||||
$upload_state = 1;
|
|
||||||
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));
|
|
||||||
// Check if image file is a actual image or fake image
|
|
||||||
$check = $_FILES["photo"]["size"] > pow(2,6);;
|
|
||||||
if($check !== false) {
|
|
||||||
$upload_state = 1;
|
|
||||||
} else {
|
|
||||||
$upload_state = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (file_exists($target_file)) {
|
|
||||||
$upload_state = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
// limite de taille
|
|
||||||
if ($_FILES["photo"]["size"] > pow(2,40)) {
|
|
||||||
$upload_state = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
// check le type de fichier
|
|
||||||
if (!in_array($imageFileType,$EXT_WHITELIST)){
|
|
||||||
$upload_state = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
switch($upload_state){
|
|
||||||
case 1:
|
|
||||||
compressImage($_FILES["photo"]["tmp_name"],"../assets/img/com_photo/thumbs/".$_FILES["photo"]["name"],10);
|
|
||||||
move_uploaded_file($_FILES["photo"]["tmp_name"],$target_file);
|
|
||||||
break;
|
|
||||||
case 0:
|
|
||||||
?> <script>
|
|
||||||
alert("L'image envoyée n'a pas passées tout les tests de vérifications.");
|
|
||||||
</script>
|
|
||||||
<?php
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
?>
|
|
||||||
<!DOCTYPE html>
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<meta charset="utf-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
||||||
<title>Admin / Com'Photo</title>
|
|
||||||
<link rel="stylesheet" type="text/css" href="com_ville.css" />
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<main>
|
|
||||||
|
|
||||||
<form method="POST" enctype="multipart/form-data">
|
|
||||||
<input type="file" name="photo" placeholder="image.png" id="photo" class="input_inline" accept=".png,.jpg,.jpeg,.gif">
|
|
||||||
<label for="photo">Seulement les images au format gif, png, jpeg et jpg sont acceptées.</label>
|
|
||||||
<input type="submit" name="add_photo" value="Ajouter la photo" class="submit_inline">
|
|
||||||
</form>
|
|
||||||
|
|
||||||
<h3>Difficultés pour convertir vos images au bon format ? Essayez <a href="https://image.online-convert.com/convert-to-jpg">Ce site</a></h3>
|
|
||||||
|
|
||||||
</main>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
|
@ -1,8 +1,6 @@
|
||||||
<?php
|
<?php
|
||||||
include "script.php";
|
include "script.php";
|
||||||
|
|
||||||
include "../assets/scripts/globals.php";
|
|
||||||
|
|
||||||
if($user['perm'] < 3) {
|
if($user['perm'] < 3) {
|
||||||
header('Location: deco.php');
|
header('Location: deco.php');
|
||||||
}
|
}
|
||||||
|
@ -10,38 +8,20 @@ if($user['perm'] < 3) {
|
||||||
$req = $db->query("SELECT * FROM enigma WHERE id = 1");
|
$req = $db->query("SELECT * FROM enigma WHERE id = 1");
|
||||||
$r = $req -> fetchAll(PDO::FETCH_ASSOC);
|
$r = $req -> fetchAll(PDO::FETCH_ASSOC);
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
Le principe est qu'une seule énigme est émise en même temps,
|
|
||||||
il s'agit de la même pour les deux équipes.
|
|
||||||
D'où le fait que l'id de l'entrée est hardcode à 1.
|
|
||||||
|
|
||||||
La série de if est faite pour n'avoir qu'a remplir la/les colonne(s) dans l'interface
|
|
||||||
que l'on souhaite modifier dans la BDD.
|
|
||||||
*/
|
|
||||||
|
|
||||||
if(isset($_POST['send'])) {
|
if(isset($_POST['send'])) {
|
||||||
|
|
||||||
// on vérifie les privilèges de l'utilisateur
|
|
||||||
if($user['perm'] >= 3) {
|
if($user['perm'] >= 3) {
|
||||||
|
|
||||||
|
|
||||||
if(isset($_POST['answer']) AND !empty($_POST['answer'])) {
|
if(isset($_POST['answer']) AND !empty($_POST['answer'])) {
|
||||||
$ans = htmlspecialchars($_POST['answer']);
|
$ans = htmlspecialchars($_POST['answer']);
|
||||||
$req = $db->prepare("UPDATE enigma SET answer = ? WHERE id = 1");
|
$req = $db->prepare("UPDATE enigma SET answer = ? WHERE id = 1");
|
||||||
$req->execute(array($ans));
|
$req->execute(array($ans));
|
||||||
}
|
}
|
||||||
|
|
||||||
if(isset($_POST['points']) AND !empty($_POST['points'])) {
|
if(isset($_POST['points']) AND !empty($_POST['points'])) {
|
||||||
$point = (int) htmlspecialchars($_POST['points']);
|
$point = (int) htmlspecialchars($_POST['points']);
|
||||||
$req = $db->prepare("UPDATE enigma SET point = ? WHERE id = 1");
|
$req = $db->prepare("UPDATE enigma SET point = ? WHERE id = 1");
|
||||||
$req->execute(array($point));
|
$req->execute(array($point));
|
||||||
}
|
}
|
||||||
|
|
||||||
if(isset($_POST['team']) AND !empty($_POST['team'])) {
|
if(isset($_POST['team']) AND !empty($_POST['team'])) {
|
||||||
switch (htmlspecialchars($_POST['team'])) {
|
switch (htmlspecialchars($_POST['team'])) {
|
||||||
|
|
||||||
// le cas "t" est lorsque aucune équipe n'a encore trouvé
|
|
||||||
case "t":
|
case "t":
|
||||||
$t_int = NULL;
|
$t_int = NULL;
|
||||||
break;
|
break;
|
||||||
|
@ -71,13 +51,11 @@ if(isset($_POST['send'])) {
|
||||||
<form method="POST">
|
<form method="POST">
|
||||||
<input type="texte" name="answer" placeholder="answer" class="input_inline">
|
<input type="texte" name="answer" placeholder="answer" class="input_inline">
|
||||||
<input type="number" name ="points" placeholder="points" class="input_inline">
|
<input type="number" name ="points" placeholder="points" class="input_inline">
|
||||||
<select name="team" class="input_inline" id="team">
|
<select name="team" class="input_inline">
|
||||||
<option value="t">AUCUNE EQUIPE</option>
|
<option value="t">NULL</option>
|
||||||
<option value="t0"><?=$TEAM1?></option>
|
<option value="t0">Pkpeach</option>
|
||||||
<option value="t1"><?=$TEAM2?></option>
|
<option value="t1">Boomario</option>
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<label for="team">Equipe ayant trouvé l'énigme.</label>
|
|
||||||
<input type="submit" name="send" value="Mettre à jour" class="submit_inline">
|
<input type="submit" name="send" value="Mettre à jour" class="submit_inline">
|
||||||
</form>
|
</form>
|
||||||
<table class="acces">
|
<table class="acces">
|
||||||
|
@ -91,14 +69,13 @@ if(isset($_POST['send'])) {
|
||||||
<td><?= $r[0]['id'] ?></td>
|
<td><?= $r[0]['id'] ?></td>
|
||||||
<td><?= $r[0]['answer'] ?></td>
|
<td><?= $r[0]['answer'] ?></td>
|
||||||
<td><?= $r[0]['point'] ?></td>
|
<td><?= $r[0]['point'] ?></td>
|
||||||
<td>
|
<td><?php
|
||||||
<?php
|
|
||||||
switch ($r[0]['team']) {
|
switch ($r[0]['team']) {
|
||||||
case "0":
|
case "0":
|
||||||
echo $TEAM1;
|
echo "Pkpeach";
|
||||||
break;
|
break;
|
||||||
case "1":
|
case "1":
|
||||||
echo $TEAM2;
|
echo "Boomario";
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
?></td>
|
?></td>
|
||||||
|
|
|
@ -140,7 +140,7 @@ if(isset($_POST['send'])) {
|
||||||
<input type="text" placeholder="identifiant INSA" name="pseudo" class="input_inline">
|
<input type="text" placeholder="identifiant INSA" name="pseudo" class="input_inline">
|
||||||
<select name="perm" class="input_inline">
|
<select name="perm" class="input_inline">
|
||||||
<option value="v0">GDA - Perm 0</option>
|
<option value="v0">GDA - Perm 0</option>
|
||||||
<option value="v1">Ville/Photo - Perm 1</option>
|
<option value="v1">Ville - Perm 1</option>
|
||||||
<option value="v2">Bureau - Perm 2</option>
|
<option value="v2">Bureau - Perm 2</option>
|
||||||
<option value="v3">Admin - Perm 3</option>
|
<option value="v3">Admin - Perm 3</option>
|
||||||
</select>
|
</select>
|
||||||
|
@ -172,7 +172,7 @@ if(isset($_POST['send'])) {
|
||||||
echo "<a href='?ville=".$admin['id']."'><font color='green'>GDA</font></a>";
|
echo "<a href='?ville=".$admin['id']."'><font color='green'>GDA</font></a>";
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
echo "<a href='?bur=".$admin['id']."'><font color='#3498DB'>Ville/Photo</font></a>";
|
echo "<a href='?bur=".$admin['id']."'><font color='#3498DB'>Ville</font></a>";
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
echo "<a href='?adm=".$admin['id']."'><font color='orange'>Bureau</font></a>";
|
echo "<a href='?adm=".$admin['id']."'><font color='orange'>Bureau</font></a>";
|
||||||
|
|
|
@ -1,14 +1,9 @@
|
||||||
<?php
|
<?php
|
||||||
$page = "index";
|
$page = "index";
|
||||||
include "script.php";
|
include "script.php";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//CAS
|
//CAS
|
||||||
require_once("../phpCAS-1.3.6/CAS.php");
|
require_once("../phpCAS-1.3.6/CAS.php");
|
||||||
|
|
||||||
|
|
||||||
// Initialize phpCAS
|
// Initialize phpCAS
|
||||||
phpCAS::client(CAS_VERSION_2_0, "cas.insa-toulouse.fr", 443, 'cas', true);
|
phpCAS::client(CAS_VERSION_2_0, "cas.insa-toulouse.fr", 443, 'cas', true);
|
||||||
|
|
||||||
|
@ -44,8 +39,6 @@ if(isset($_POST['login'])) {
|
||||||
session_destroy();
|
session_destroy();
|
||||||
header('Refresh:0');
|
header('Refresh:0');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
?>
|
?>
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html>
|
<html>
|
||||||
|
@ -74,8 +67,6 @@ if(isset($_POST['login'])) {
|
||||||
echo "<font color='red'>Admin</font>";
|
echo "<font color='red'>Admin</font>";
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
echo "<br> Si l'onglet que vous recherchez n'est pas disponible, demandez avec amour et volupté une élévation d'acces à un respo web.";
|
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
?>
|
?>
|
||||||
<form method="POST">
|
<form method="POST">
|
||||||
|
@ -87,8 +78,6 @@ if(isset($_POST['login'])) {
|
||||||
echo "<font color='red'>".$error."</font>";
|
echo "<font color='red'>".$error."</font>";
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
|
|
||||||
|
|
||||||
</main>
|
</main>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
|
@ -1,80 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
|
|
||||||
include "script.php";
|
|
||||||
|
|
||||||
include "../script/db_init.php";
|
|
||||||
|
|
||||||
|
|
||||||
if($user['perm'] < 3) {
|
|
||||||
header('Location: deco.php');
|
|
||||||
}
|
|
||||||
|
|
||||||
?>
|
|
||||||
|
|
||||||
<!DOCTYPE html>
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<meta charset="utf-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
||||||
<title>Admin / Mots croisés</title>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
|
|
||||||
<?php
|
|
||||||
|
|
||||||
if(isset($_POST["AJ_MOT"])){
|
|
||||||
|
|
||||||
$mot = htmlspecialchars($_POST["mot"]);
|
|
||||||
$req = $db->prepare("INSERT INTO mots_croise(name,trouve) VALUES(?,?)");
|
|
||||||
$req->execute(array($mot,0));
|
|
||||||
echo "exec";
|
|
||||||
|
|
||||||
}
|
|
||||||
if(isset($_POST["SUPP_MOT"])){
|
|
||||||
$req = $db->prepare("DELETE FROM mots_croise WHERE id=?");
|
|
||||||
$req->execute(array($_POST["id_mot"]));
|
|
||||||
}
|
|
||||||
|
|
||||||
?>
|
|
||||||
|
|
||||||
<main>
|
|
||||||
|
|
||||||
<form method="POST">
|
|
||||||
<input type="text" name="mot" id="mot_input" placeholder="mot à deviner" class="input_inline">
|
|
||||||
<input type="text" name="AJ_MOT" value="AJ_MOT" hidden>
|
|
||||||
<input type="submit" value="ajouter ce mot" class="submit_inline">
|
|
||||||
</form>
|
|
||||||
<h4>/!\Ajoutez les mots dans l'ordre de la grille/!\<h4>
|
|
||||||
<?php
|
|
||||||
$req = $db->query('SELECT * FROM mots_croise');
|
|
||||||
?>
|
|
||||||
<table class="acces">
|
|
||||||
<tr>
|
|
||||||
<th width="10%">ID (db)</th>
|
|
||||||
<th width="60%">Mot</th>
|
|
||||||
<th width="30%">Action</th>
|
|
||||||
</tr>
|
|
||||||
|
|
||||||
<?php
|
|
||||||
while($mot = $req->fetch()) {
|
|
||||||
?>
|
|
||||||
<tr>
|
|
||||||
<td><?= $mot['id'] ?></td>
|
|
||||||
<td><?= $mot['name'] ?></td>
|
|
||||||
<td>
|
|
||||||
<form method="POST">
|
|
||||||
<input type="text" name="SUPP_MOT" value="SUPP_MOT" hidden>
|
|
||||||
<input type="number" value="<?=$mot['id']?>" name="id_mot" hidden>
|
|
||||||
<input type="submit" value="supprimer" class="submit_inline">
|
|
||||||
</form>
|
|
||||||
</td>
|
|
||||||
|
|
||||||
</tr>
|
|
||||||
<?php } ?>
|
|
||||||
|
|
||||||
</table>
|
|
||||||
</main>
|
|
||||||
|
|
||||||
|
|
||||||
</body>
|
|
|
@ -78,14 +78,7 @@ if(isset($_POST['send'])) {
|
||||||
|
|
||||||
header('Refresh: 0');
|
header('Refresh: 0');
|
||||||
} else {
|
} else {
|
||||||
if(isset($_POST['day']) AND !empty($_POST['day'])
|
if(isset($_POST['day']) AND !empty($_POST['day']) AND isset($_POST['title']) AND !empty($_POST['title']) AND isset($_POST['description']) AND !empty($_POST['description']) AND isset($_POST['color']) AND !empty($_POST['color']) AND isset($_POST['order_start']) AND !empty($_POST['order_start']) AND isset($_POST['length']) AND !empty($_POST['length']) AND isset($_POST['num_planning']) AND !empty($_POST['num_planning']) AND isset($_POST['opacity'])) {
|
||||||
AND isset($_POST['title']) AND !empty($_POST['title'])
|
|
||||||
AND isset($_POST['description']) AND !empty($_POST['description'])
|
|
||||||
AND isset($_POST['color']) AND !empty($_POST['color'])
|
|
||||||
AND isset($_POST['order_start']) AND !empty($_POST['order_start'])
|
|
||||||
AND isset($_POST['length']) AND !empty($_POST['length'])
|
|
||||||
AND isset($_POST['num_planning']) AND !empty($_POST['num_planning'])
|
|
||||||
AND isset($_POST['opacity'])) {
|
|
||||||
|
|
||||||
$day = (int) htmlspecialchars($_POST['day']);
|
$day = (int) htmlspecialchars($_POST['day']);
|
||||||
$title = htmlspecialchars($_POST['title']);
|
$title = htmlspecialchars($_POST['title']);
|
||||||
|
@ -229,5 +222,4 @@ if(isset($_POST['send'])) {
|
||||||
</table>
|
</table>
|
||||||
</main>
|
</main>
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
</html>
|
</html>
|
175
admin/prototype_com_ville.php
Normal file
|
@ -0,0 +1,175 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<title>Title</title>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.cmv-progress {
|
||||||
|
color: white;
|
||||||
|
min-height: 200px;
|
||||||
|
background-color: #333;
|
||||||
|
}
|
||||||
|
|
||||||
|
h5.cmv-title {
|
||||||
|
font-size: 1.1em;
|
||||||
|
padding: 1em 1em 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cmv-container {
|
||||||
|
display:flex;
|
||||||
|
position:relative;
|
||||||
|
width:90%;
|
||||||
|
margin:auto;
|
||||||
|
height:100px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cmv-step {
|
||||||
|
position: relative;
|
||||||
|
width: 36px;
|
||||||
|
height: 36px;
|
||||||
|
background-color: #ccc;
|
||||||
|
color: black;
|
||||||
|
z-index: 5;
|
||||||
|
border-radius: 50%;
|
||||||
|
line-height: 36px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cmv-step.fait, .cmv-step.active {
|
||||||
|
background-color: #06a6b7;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cmv-step.active:before {
|
||||||
|
content: "";
|
||||||
|
position: absolute;
|
||||||
|
display: block;
|
||||||
|
background-color: white;
|
||||||
|
margin: 15%;
|
||||||
|
width: 70%;
|
||||||
|
height: 70%;
|
||||||
|
border-radius: 50%;
|
||||||
|
z-index: -15;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cmv-way {
|
||||||
|
position: relative;
|
||||||
|
flex: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cmv-way.fait:before {
|
||||||
|
background-color: #06a6b7;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cmv-way:before {
|
||||||
|
content: "";
|
||||||
|
display: block;
|
||||||
|
width: 120%; height: 1px;
|
||||||
|
margin-left: -10%;
|
||||||
|
margin-top: 17px;
|
||||||
|
background-color: #eee;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cmv-fixed:before {
|
||||||
|
content: "";
|
||||||
|
width:1px; height: 7px;
|
||||||
|
background-color: white;
|
||||||
|
position: absolute;
|
||||||
|
top:42px;
|
||||||
|
left: 18px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cmv-fixed {
|
||||||
|
color: white;
|
||||||
|
width: 100%;
|
||||||
|
margin-top: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cmv-relative {
|
||||||
|
content: "52m";
|
||||||
|
position: absolute;
|
||||||
|
color: white;
|
||||||
|
text-align: center;
|
||||||
|
width: 100%;
|
||||||
|
top: -10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
</style>
|
||||||
|
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<div class="cmv-progress">
|
||||||
|
|
||||||
|
<h5 id="cmv-title" class="cmv-title">Equipe 1-1</h5>
|
||||||
|
|
||||||
|
<div class="cmv-container">
|
||||||
|
|
||||||
|
<?php
|
||||||
|
|
||||||
|
/** Pour une équipe donnée */
|
||||||
|
|
||||||
|
/** $depart : Le point de départ de cette équipe */
|
||||||
|
$depart = 4;
|
||||||
|
|
||||||
|
/** $etape : À quelle étape en est cette équipe */
|
||||||
|
$etape = 5;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/** $i va de 1 à 17 (inclus), 17 étant le nombre d'étapes */
|
||||||
|
for ($i = 1; $i <= 17; $i++) {
|
||||||
|
|
||||||
|
/** $node : Le numéro dans la node à l'emplacement $i
|
||||||
|
* exemple : si une équipe commence au point 7 alors la première node ($i = 1)
|
||||||
|
* va contenir $node = 7 À UTILISER POUR LES TEMPS ! */
|
||||||
|
$node = ($i + $depart - 2) % 17 + 1;
|
||||||
|
|
||||||
|
/** $current : À quel index est placé la node correspondante à l'$etape
|
||||||
|
* exemple : une équipe qui commence au point 17 en est au point 3,
|
||||||
|
* elle est donc affichée comme étant au niveau de la node d'index 4 ($i = 4)
|
||||||
|
* puisque de gauche à droite les premières nodes sont 17 - 1 - 2 - 3 */
|
||||||
|
$current = $etape - $depart + 1;
|
||||||
|
if ($current < 0) {
|
||||||
|
$current = $current + 17;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Si le point $i a été fait (fait), est en train d'être fait (actuel), ou n'a pas encore été atteint */
|
||||||
|
$state = '';
|
||||||
|
if ($i < $current) {
|
||||||
|
$state = ' fait';
|
||||||
|
} elseif ($i === $current) {
|
||||||
|
$state = ' active';
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
echo '<div class="cmv-step'.$state.'">';
|
||||||
|
echo $node;
|
||||||
|
|
||||||
|
if ($i <= $current) {
|
||||||
|
// --:-- doit être remplacé par l'heure à laquelle le point $node a été atteint
|
||||||
|
echo '<div class="cmv-fixed">--:--</div>';
|
||||||
|
}
|
||||||
|
echo '</div>';
|
||||||
|
|
||||||
|
if ($i < 17) {
|
||||||
|
echo '<div class="cmv-way'.$state.'">';
|
||||||
|
if ($i < $current) {
|
||||||
|
echo '<div class="cmv-relative">--m</div>'; // --mn doit être remplacé par le deltaT entre les points $node et $node+1
|
||||||
|
}
|
||||||
|
echo '</div>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -1,5 +1,6 @@
|
||||||
<?php
|
<?php
|
||||||
include_once "../script/db.php";
|
include "../script/db.php";
|
||||||
|
|
||||||
session_start();
|
session_start();
|
||||||
|
|
||||||
if(isset($_SESSION['id'])) {
|
if(isset($_SESSION['id'])) {
|
||||||
|
@ -24,26 +25,20 @@ if($user_exist != 1) {
|
||||||
|
|
||||||
switch ($user['perm']) {
|
switch ($user['perm']) {
|
||||||
case 1:
|
case 1:
|
||||||
$content = $content."<a href='ville.php'><li class='yellow'>Com'ville</li></a>"
|
$content = $content."<a href='ville.php'><li class='yellow'>Com'ville</li></a>";
|
||||||
."<a href='com_photo.php'><li class='yellow'>Com'Photo</li></a>";
|
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
$content = $content
|
$content = $content
|
||||||
."<a href='ville.php'><li class='yellow'>Com'ville</li></a>"
|
."<a href='ville.php'><li class='yellow'>Com'ville</li></a>"
|
||||||
.'<a href="planning.php"><li class="orange">Planning</li></a>'
|
.'<a href="planning.php"><li class="orange">Planning</li></a>';
|
||||||
."<a href='com_photo.php'><li class='yellow'>Com'Photo</li></a>";
|
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
$content = $content
|
$content = $content
|
||||||
."<a href='ville.php'><li class='yellow'>Com'ville</li></a>"
|
."<a href='ville.php'><li class='yellow'>Com'ville</li></a>"
|
||||||
."<a href=\"planning.php\"><li class=\"orange\">Planning</li></a>"
|
.'<a href="planning.php"><li class="orange">Planning</li></a>'
|
||||||
."<a href='com_photo.php'><li class='yellow'>Com'Photo</li></a>"
|
.'<a href="gestion_des_acces.php"><li class="red">Gestion des accès</li></a>'
|
||||||
."<a href=\"mots_croises.php\"><li class=\"orange\">Mots croises</li></a>"
|
.'<a href="enigma.php"><li class="red">Enigma</li></a>'
|
||||||
."<a href=\"gestion_des_acces.php\"><li class=\"red\">Gestion des accès</li></a>"
|
.'<a href="../matomo" target="_matomo"><li class="red">Matomo</li></a>';
|
||||||
."<a href=\"enigma.php\"><li class=\"red\">Enigma</li></a>"
|
|
||||||
."<a href=\"../matomo\" target=\"_matomo\"><li class=\"red\">Matomo</li></a>"
|
|
||||||
."<a href=\"bdd.php\"><li class=\"red\">/!\DANGER ZONE/!\</li></a>";
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,6 @@
|
||||||
<?php
|
<?php
|
||||||
include "script.php";
|
include "script.php";
|
||||||
|
|
||||||
include "../assets/scripts/globals.php";
|
|
||||||
|
|
||||||
$req = $db->query('SELECT id, texte, points, team, id_staff FROM scores');
|
$req = $db->query('SELECT id, texte, points, team, id_staff FROM scores');
|
||||||
|
|
||||||
|
|
||||||
|
@ -75,8 +73,8 @@ if(isset($_POST['send'])) {
|
||||||
<input type="text" placeholder="Texte" name="texte" class="input_inline">
|
<input type="text" placeholder="Texte" name="texte" class="input_inline">
|
||||||
<input type="number" placeholder="point" name="point" class="input_inline">
|
<input type="number" placeholder="point" name="point" class="input_inline">
|
||||||
<select name="team" class="input_inline">
|
<select name="team" class="input_inline">
|
||||||
<option value="t0"><?=$TEAM1?></option>
|
<option value="t0">Pkpeach</option>
|
||||||
<option value="t1"><?=$TEAM2?></option>
|
<option value="t1">Boomario</option>
|
||||||
</select>
|
</select>
|
||||||
<input type="submit" name="send" value="Ajouter" class="submit_inline">
|
<input type="submit" name="send" value="Ajouter" class="submit_inline">
|
||||||
</form>
|
</form>
|
||||||
|
@ -88,8 +86,8 @@ if(isset($_POST['send'])) {
|
||||||
<br><br>
|
<br><br>
|
||||||
<form method="POST">
|
<form method="POST">
|
||||||
<input type="submit" name="teamall" value="All" class="submit_inline">
|
<input type="submit" name="teamall" value="All" class="submit_inline">
|
||||||
<input type="submit" name="team0" value="<?=$TEAM1?>" class="submit_inline">
|
<input type="submit" name="team0" value="Pkpeach" class="submit_inline">
|
||||||
<input type="submit" name="team1" value="<?=$TEAM2?>" class="submit_inline">
|
<input type="submit" name="team1" value="Boomario" class="submit_inline">
|
||||||
</form>
|
</form>
|
||||||
<br><br>
|
<br><br>
|
||||||
<table class="acces">
|
<table class="acces">
|
||||||
|
@ -111,10 +109,10 @@ if(isset($_POST['send'])) {
|
||||||
<td><?php
|
<td><?php
|
||||||
switch ($stat['team']) {
|
switch ($stat['team']) {
|
||||||
case "0":
|
case "0":
|
||||||
echo $TEAM1;
|
echo "Pkpeach";
|
||||||
break;
|
break;
|
||||||
case "1":
|
case "1":
|
||||||
echo $TEAM2;
|
echo "Boomario";
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
?></td>
|
?></td>
|
||||||
|
|
553
admin/ville.php
|
@ -7,132 +7,41 @@ if($user['perm'] < 1) {
|
||||||
header('Location: deco.php');
|
header('Location: deco.php');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(isset($_POST['start1'])) {
|
||||||
|
$req = $db->prepare("UPDATE ville SET state = ?, time_begin = ? WHERE session = 1");
|
||||||
|
$req->execute(array(1, time()));
|
||||||
// ajout d'une epreuve
|
header('Refresh: 0');
|
||||||
if(isset($_POST['add_epreuve'])){
|
}
|
||||||
|
if(isset($_POST['start2'])) {
|
||||||
//$upload_state prend plusieurs valeurs :
|
$req = $db->prepare("UPDATE ville SET state = ?, time_begin = ? WHERE session = 2");
|
||||||
// 1 si tout est valide et l'image n'existe pas déjà
|
$req->execute(array(1, time()));
|
||||||
// 0 si une verification a invalidé le fichier
|
header('Refresh: 0');
|
||||||
// 2 si l'image existe déjà mais l'upload est valide, on va alors utiliser le nom pour la bdd
|
|
||||||
$file_name = null;
|
|
||||||
if($_FILES["photo"]["name"] != ""){
|
|
||||||
echo $_FILES["photo"]["name"];
|
|
||||||
$EXT_WHITELIST = array("gif","jpg","jpeg","raw","png","svg");
|
|
||||||
|
|
||||||
/* gestion des uploads d'images indices */
|
|
||||||
$target_dir = "../assets/img/com_ville/";
|
|
||||||
$target_file = $target_dir . basename($_FILES["photo"]["name"]);
|
|
||||||
$upload_state = 1;
|
|
||||||
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));
|
|
||||||
// Check if image file is a actual image or fake image
|
|
||||||
$check = $_FILES["photo"]["size"] > pow(2,2);;
|
|
||||||
if($check !== false) {
|
|
||||||
$upload_state = 1;
|
|
||||||
} else {
|
|
||||||
$upload_state = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (file_exists($target_file)) {
|
|
||||||
$upload_state = 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
// limite de taille
|
|
||||||
if ($_FILES["photo"]["size"] > pow(2,40)) {
|
|
||||||
$upload_state = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
// check le type de fichier
|
|
||||||
if (!in_array($imageFileType,$EXT_WHITELIST)){
|
|
||||||
$upload_state = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
$file_name = "";
|
|
||||||
switch($upload_state){
|
|
||||||
case 1:
|
|
||||||
move_uploaded_file($_FILES["photo"]["tmp_name"],$target_file);
|
|
||||||
$file_name = htmlspecialchars($_FILES["photo"]["name"]);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 2:
|
|
||||||
$file_name = htmlspecialchars($_FILES["photo"]["name"]);
|
|
||||||
break;
|
|
||||||
case 0:
|
|
||||||
?> <script>
|
|
||||||
alert("L'image envoyée n'a pas passées tout les tests de vérifications.");
|
|
||||||
</script>
|
|
||||||
<?php
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$_POST['est_finale'] = $_POST['est_finale'] == 'on' ? 1 : 0;
|
|
||||||
|
|
||||||
$req = $db->prepare("INSERT INTO ville_epreuve(indice,reponse,photo,id_equipe,est_finale,ordre,est_trouvee) VALUES(?,?,?,?,?,?,?)");
|
|
||||||
$req->execute(array(htmlspecialchars($_POST['indice']),
|
|
||||||
htmlspecialchars($_POST['reponse']),
|
|
||||||
$file_name,
|
|
||||||
(int)htmlspecialchars($_POST['id_equipe']),
|
|
||||||
(int)htmlspecialchars($_POST['est_finale']),
|
|
||||||
(int)htmlspecialchars($_POST['ordre']),
|
|
||||||
0
|
|
||||||
|
|
||||||
));
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//ajout d'une equipe
|
if(isset($_POST['stop1'])) {
|
||||||
if(isset($_POST['add_equipe'])){
|
$req = $db->query("UPDATE ville SET state = 2 WHERE session = 1");
|
||||||
$req = $db->prepare("INSERT INTO ville_equipe(nom,temps) VALUES(?,?)");
|
header('Refresh: 0');
|
||||||
$req->execute(array(htmlspecialchars($_POST['nom']),NULL));
|
}
|
||||||
|
if(isset($_POST['stop2'])) {
|
||||||
|
$req = $db->query("UPDATE ville SET state = 2 WHERE session = 2");
|
||||||
|
header('Refresh: 0');
|
||||||
}
|
}
|
||||||
|
|
||||||
// suppression d'une équipe
|
if(isset($_POST['reset1'])) {
|
||||||
if(isset($_POST['del_equipe'])){
|
if(htmlspecialchars($_POST['code']) == "anti-missclick") {
|
||||||
$req = $db->prepare("DELETE FROM ville_equipe WHERE id=?");
|
$req = $db->query("UPDATE ville SET state = 0, time_begin = 0 WHERE session = 1");
|
||||||
$req->execute(array(htmlspecialchars((int)$_POST['id_ekip'])));
|
$req = $db->query("UPDATE ville_equipe SET temps = NULL WHERE id < 17");
|
||||||
|
header('Refresh: 0');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
if(isset($_POST['reset2'])) {
|
||||||
//suppression d'une épreuve
|
if(htmlspecialchars($_POST['code']) == "anti-missclick") {
|
||||||
|
$req = $db->query("UPDATE ville SET state = 0, time_begin = 0 WHERE session = 2");
|
||||||
if(isset($_POST['del_epreuve'])){
|
$req = $db->query("UPDATE ville_equipe SET temps = NULL WHERE id > 16");
|
||||||
$req = $db->prepare("DELETE FROM ville_epreuve WHERE id=?");
|
header('Refresh: 0');
|
||||||
$req->execute(array((int)$_POST['id_epreuve']));
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// reinitialiser la progression d'une equipe,
|
|
||||||
// utile si l'on fait plusieurs sessions
|
|
||||||
if(isset($_POST['reset_ekip'])){
|
|
||||||
$req = $db->prepare("UPDATE ville_epreuve SET est_trouvee=0 WHERE id_equipe=?");
|
|
||||||
$req->execute(array(htmlspecialchars((int)$_POST['id_equipe'])));
|
|
||||||
$req = $db->prepare("UPDATE ville_equipe SET temps=NULL WHERE id=?");
|
|
||||||
$req->execute(array(htmlspecialchars((int)$_POST['id_equipe'])));
|
|
||||||
}
|
|
||||||
|
|
||||||
if(isset($_POST['copier_chemin'])){
|
|
||||||
$sql = "INSERT INTO ville_epreuve (id_equipe, indice, reponse, photo, est_finale, ordre)
|
|
||||||
SELECT ?, indice, reponse, photo, est_finale, ordre
|
|
||||||
FROM ville_epreuve
|
|
||||||
WHERE id_equipe = ?";
|
|
||||||
|
|
||||||
$stmt = $db->prepare($sql);
|
|
||||||
$stmt->execute([htmlspecialchars((int)$_POST["id_equipe_dst"]), htmlspecialchars((int)$_POST["id_equipe_og"])]);
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
?>
|
?>
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html>
|
<html>
|
||||||
|
@ -144,84 +53,348 @@ if(isset($_POST['copier_chemin'])){
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<main>
|
<main>
|
||||||
|
|
||||||
<form method="POST" enctype="multipart/form-data">
|
|
||||||
<input type="text" name="indice" placeholder="indice" class="input_inline">
|
|
||||||
<input type="text" name="reponse" placeholder="réponse" class="input_inline">
|
|
||||||
<input type="file" name="photo" placeholder="image.png" id="photo" class="input_inline">
|
|
||||||
<input type="number" name="id_equipe" id="id_equipe" class="input_inline" value="<?= isset($_GET["ekip"]) ? (int)$_GET["ekip"]:1;?>">
|
|
||||||
<label for="id_equipe">id de l'équipe</label>
|
|
||||||
<br>
|
|
||||||
<input type="radio" name="est_finale" id="est_finale" class="input_inline">
|
|
||||||
<label for="est_finale">ultime épreuve</label>
|
|
||||||
<input type="number" name="ordre" id="ordre" class="input_inline">
|
|
||||||
<label for="ordre">ordre de l'épreuve</label>
|
|
||||||
<input type="submit" name="add_epreuve" value="Ajouter l'épreuve" class="submit_inline">
|
|
||||||
</form>
|
|
||||||
|
|
||||||
<hr>
|
|
||||||
<form method="POST">
|
|
||||||
<input type="text" name="nom" placeholder="nom de l'équipe" class="input_inline">
|
|
||||||
<input type="submit" name="add_equipe" value="Ajouter l'équipe" class="submit_inline">
|
|
||||||
</form>
|
|
||||||
|
|
||||||
<hr>
|
|
||||||
<form method="POST">
|
|
||||||
<input type="number" name="id_equipe" id="id_equipe" class="input_inline" value="<?= isset($_GET["ekip"]) ? (int)$_GET["ekip"]:1;?>">
|
|
||||||
<input type="submit" name="reset_ekip" value="Reinitialiser la progression de l'équipe" class="submit_inline">
|
|
||||||
</form>
|
|
||||||
|
|
||||||
<hr>
|
|
||||||
<h4>Copier le chemin d'une équipe pour une autre équipe</h4>
|
|
||||||
<form method="POST">
|
|
||||||
<input type="number" name="id_equipe_og" id="id_equipe_og" class="input_inline" value="<?= isset($_GET["ekip"]) ? (int)$_GET["ekip"]:1;?>">
|
|
||||||
<label for="id_equipe_og">Equipe d'origine</label>
|
|
||||||
<input type="number" name="id_equipe_dst" id="id_equipe_dst" class="input_inline" value="0">
|
|
||||||
<label for="id_equipe_dst">Equipe de destination</label>
|
|
||||||
<input type="submit" name="copier_chemin" value="Copier le chemin" class="submit_inline">
|
|
||||||
</form>
|
|
||||||
|
|
||||||
|
|
||||||
<h4>Equipes déjà enregistrées :</h4>
|
|
||||||
<table class="acces">
|
|
||||||
<?php
|
<?php
|
||||||
$req = $db->query('SELECT * FROM ville_equipe');
|
if(isset($_GET['session']) AND !empty($_GET['session']))
|
||||||
while($equipe = $req->fetch()) {
|
{
|
||||||
|
$session = (int) htmlspecialchars($_GET['session']);
|
||||||
|
if($session == 1) {
|
||||||
|
?>
|
||||||
|
<a href="ville.php?session=1" class="href_session_selected">Session matin</a>
|
||||||
|
<a href="ville.php?session=2" class="href_session">Session aprem</a>
|
||||||
|
<br>
|
||||||
|
<?php
|
||||||
|
$req = $db->query("SELECT state FROM ville WHERE session = 1");
|
||||||
|
$r = $req -> fetchAll(PDO::FETCH_ASSOC);
|
||||||
|
|
||||||
echo "<th><a href=\"?ekip=".$equipe['id']."\">".htmlspecialchars($equipe['nom'])."(".$equipe['id'].")"."<a></th><wbr>";
|
if($r[0]['state'] == 0) {
|
||||||
|
?>
|
||||||
|
<font color="green">Session non demarré, </font>
|
||||||
|
<form method="POST">
|
||||||
|
<input type="submit" name="start1" value="Démarrer la session" class="submit_inline"></form>
|
||||||
|
</form>
|
||||||
|
<?php
|
||||||
|
} elseif($r[0]['state'] >= 1) {
|
||||||
|
if($r[0]['state'] == 1) {
|
||||||
|
?>
|
||||||
|
<font color="orange">Session en cours, </font>
|
||||||
|
<form method="POST">
|
||||||
|
<input type="submit" name="stop1" value="Stopper la session" class="submit_inline"></form>
|
||||||
|
</form>
|
||||||
|
|
||||||
|
<META HTTP-EQUIV="Refresh" CONTENT="<?= $refresh_rate ?>">
|
||||||
|
|
||||||
|
<?php
|
||||||
|
} elseif($r[0]['state'] == 2) {
|
||||||
|
?>
|
||||||
|
<font color="red">Session terminé, </font>
|
||||||
|
<form method="POST">
|
||||||
|
<input type="text" name="code" placeholder="anti-missclick" class="input_inline">
|
||||||
|
<input type="submit" name="reset1" value="Reset la session" class="submit_inline"></form>
|
||||||
|
</form>
|
||||||
|
<?php
|
||||||
|
}
|
||||||
|
echo "<br><br><br>";
|
||||||
|
|
||||||
|
$reqsession = $db->query("SELECT state, time_begin FROM ville WHERE session = 1");
|
||||||
|
$rs = $reqsession -> fetchAll(PDO::FETCH_ASSOC);
|
||||||
|
|
||||||
|
$reqe = $db->query('SELECT * FROM ville_equipe WHERE id < 17');
|
||||||
|
while($e = $reqe->fetch()) {
|
||||||
|
$temps_init = $e["temps"];
|
||||||
|
$tab_time = NULL;
|
||||||
|
$tab_time = explode(";", $temps_init);
|
||||||
|
$temps_begin = date("H:i:s",$rs[0]['time_begin']);
|
||||||
|
|
||||||
|
if($temps_init == NULL) {
|
||||||
|
$avancement = (int) 0;
|
||||||
|
$delta_time_0 = gmdate("H:i:s",time()-$rs[0]['time_begin']);
|
||||||
|
} else {
|
||||||
|
$avancement = count($tab_time);
|
||||||
|
$def_time = $tab_time[$avancement-1] - $rs[0]['time_begin'];
|
||||||
|
$delta_time_0 = gmdate("H:i:s",$tab_time['0']-$rs[0]['time_begin']);
|
||||||
|
}
|
||||||
|
|
||||||
|
//node 0
|
||||||
|
?>
|
||||||
|
<div class="cmv-progress">
|
||||||
|
<h5 id="cmv-title" class="cmv-title">Equipe <?= $e['nom'] ?></h5>
|
||||||
|
<div class="cmv-container">
|
||||||
|
<div class="cmv-step fait">0
|
||||||
|
<div class="cmv-fixed"><?= $temps_begin ?></div> <!-- avec "--:--" = heure de départ -->
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="cmv-way fait">
|
||||||
|
<div class="cmv-relative"><?= $delta_time_0 ?></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<?php
|
||||||
|
|
||||||
|
/** Pour une équipe donnée */
|
||||||
|
|
||||||
|
/** $depart : Le point de départ de cette équipe */
|
||||||
|
$depart = $e['begin'];
|
||||||
|
|
||||||
|
/** $etape : À quelle étape en est cette équipe, si on l'utilise il faut décommenter quelques ligne plus bas : "$current = $etape - $depart + 1;" et commenter "$current = $avancement+1;" */
|
||||||
|
//$etape = 1;
|
||||||
|
|
||||||
|
/** $i va de 1 à 17 (inclus), 17 étant le nombre d'étapes */
|
||||||
|
for ($i = 1; $i <= 17; $i++) {
|
||||||
|
|
||||||
|
/** $node : Le numéro dans la node à l'emplacement $i
|
||||||
|
* exemple : si une équipe commence au point 7 alors la première node ($i = 1)
|
||||||
|
* va contenir $node = 7 À UTILISER POUR LES TEMPS ! */
|
||||||
|
$node = ($i + $depart - 2) % 17 + 1;
|
||||||
|
|
||||||
|
/** $current : À quel index est placé la node correspondante à l'$etape
|
||||||
|
* exemple : une équipe qui commence au point 17 en est au point 3,
|
||||||
|
* elle est donc affichée comme étant au niveau de la node d'index 4 ($i = 4)
|
||||||
|
* puisque de gauche à droite les premières nodes sont 17 - 1 - 2 - 3 */
|
||||||
|
|
||||||
|
//$current = $etape - $depart + 1;
|
||||||
|
|
||||||
|
$current = $avancement+1;
|
||||||
|
|
||||||
|
if ($current < 0) {
|
||||||
|
$current = $current + 17;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Si le point $i a été fait (fait), est en train d'être fait (actuel), ou n'a pas encore été atteint */
|
||||||
|
$state = '';
|
||||||
|
if ($i < $current) {
|
||||||
|
$state = ' fait';
|
||||||
|
} elseif ($i === $current) {
|
||||||
|
$state = ' active';
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
echo '<div class="cmv-step'.$state.'">';
|
||||||
|
echo $node;
|
||||||
|
|
||||||
|
if ($i <= $current) {
|
||||||
|
// --:-- doit être remplacé par l'heure à laquelle le point $node a été atteint
|
||||||
|
if($i == $current) {
|
||||||
|
echo '<div class="cmv-fixed">'.date("H:i:s",time()).'</div>';
|
||||||
|
} else {
|
||||||
|
echo '<div class="cmv-fixed">'.date("H:i:s",$tab_time[$i-1]).'</div>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
echo '</div>';
|
||||||
|
|
||||||
|
if ($i < 17) {
|
||||||
|
echo '<div class="cmv-way'.$state.'">';
|
||||||
|
if ($i < $current) {
|
||||||
|
if($i < $current-1) {
|
||||||
|
echo '<div class="cmv-relative">'.gmdate("H:i:s",$tab_time[$i]-$tab_time[$i-1]).'</div>'; // --mn doit être remplacé par le deltaT entre les points $node et $node+1
|
||||||
|
} else {
|
||||||
|
echo '<div class="cmv-relative">'.gmdate("H:i:s",time()-$tab_time[$i-1]).'</div>';
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
echo '</div>';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
?>
|
?>
|
||||||
</table>
|
|
||||||
<hr>
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
<?php
|
<?php
|
||||||
$ekip = isset($_GET["ekip"]) ? (int)$_GET["ekip"]:1;
|
} //fin du while e
|
||||||
$req = $db->prepare('SELECT * FROM ville_epreuve WHERE id_equipe=?');
|
}
|
||||||
$req->execute(array($ekip));
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
} elseif($session == 2) {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
<a href="ville.php?session=1" class="href_session">Session matin</a>
|
||||||
|
<a href="ville.php?session=2" class="href_session_selected">Session aprem</a>
|
||||||
|
<br>
|
||||||
|
<?php
|
||||||
|
$req = $db->query("SELECT state FROM ville WHERE session = 2");
|
||||||
|
$r = $req -> fetchAll(PDO::FETCH_ASSOC);
|
||||||
|
|
||||||
|
if($r[0]['state'] == 0) {
|
||||||
|
?>
|
||||||
|
<font color="green">Session non demarré, </font>
|
||||||
<form method="POST">
|
<form method="POST">
|
||||||
<input type="number" name="ekip" id="id_equipe" placeholder="numéro de l'équipe" class="input_inline">
|
<input type="submit" name="start2" value="Démarrer la session" class="submit_inline"></form>
|
||||||
<label for="ekip">Numéro de l'équipe dont tu veux voir le tableau</label>
|
|
||||||
<input type="submit" name="aff_equipe" value="Afficher le tableau de l'équipe" class="submit_inline">
|
|
||||||
</form>
|
</form>
|
||||||
|
<?php
|
||||||
|
} elseif($r[0]['state'] >= 1) {
|
||||||
|
if($r[0]['state'] == 1) {
|
||||||
|
?>
|
||||||
|
<font color="orange">Session en cours, </font>
|
||||||
|
<form method="POST">
|
||||||
|
<input type="submit" name="stop2" value="Stopper la session" class="submit_inline"></form>
|
||||||
|
</form>
|
||||||
|
|
||||||
|
<META HTTP-EQUIV="Refresh" CONTENT="<?= $refresh_rate ?>">
|
||||||
|
|
||||||
|
<?php
|
||||||
|
} elseif($r[0]['state'] == 2) {
|
||||||
|
?>
|
||||||
|
<font color="red">Session terminé, </font>
|
||||||
|
<form method="POST">
|
||||||
|
<input type="text" name="code" placeholder="anti-missclick" class="input_inline">
|
||||||
|
<input type="submit" name="reset2" value="Reset la session" class="submit_inline"></form>
|
||||||
|
</form>
|
||||||
|
<?php
|
||||||
|
}
|
||||||
|
echo "<br><br><br>";
|
||||||
|
|
||||||
|
$reqsession = $db->query("SELECT state, time_begin FROM ville WHERE session = 2");
|
||||||
|
$rs = $reqsession -> fetchAll(PDO::FETCH_ASSOC);
|
||||||
|
|
||||||
|
$reqe = $db->query('SELECT * FROM ville_equipe WHERE id > 16');
|
||||||
|
while($e = $reqe->fetch()) {
|
||||||
|
$temps_init = $e["temps"];
|
||||||
|
$tab_time = NULL;
|
||||||
|
$tab_time = explode(";", $temps_init);
|
||||||
|
$temps_begin = date("H:i:s",$rs[0]['time_begin']);
|
||||||
|
|
||||||
|
if($temps_init == NULL) {
|
||||||
|
$avancement = (int) 0;
|
||||||
|
$delta_time_0 = gmdate("H:i:s",time()-$rs[0]['time_begin']);
|
||||||
|
} else {
|
||||||
|
$avancement = count($tab_time);
|
||||||
|
$def_time = $tab_time[$avancement-1] - $rs[0]['time_begin'];
|
||||||
|
$delta_time_0 = gmdate("H:i:s",$tab_time['0']-$rs[0]['time_begin']);
|
||||||
|
}
|
||||||
|
|
||||||
|
//node 0
|
||||||
|
?>
|
||||||
|
<div class="cmv-progress">
|
||||||
|
<h5 id="cmv-title" class="cmv-title">Equipe <?= $e['nom'] ?></h5>
|
||||||
|
<div class="cmv-container">
|
||||||
|
<div class="cmv-step fait">0
|
||||||
|
<div class="cmv-fixed"><?= $temps_begin ?></div> <!-- avec "--:--" = heure de départ -->
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="cmv-way fait">
|
||||||
|
<div class="cmv-relative"><?= $delta_time_0 ?></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<?php
|
||||||
|
|
||||||
|
/** Pour une équipe donnée */
|
||||||
|
|
||||||
|
/** $depart : Le point de départ de cette équipe */
|
||||||
|
$depart = $e['begin'];
|
||||||
|
|
||||||
|
/** $etape : À quelle étape en est cette équipe, si on l'utilise il faut décommenter quelques ligne plus bas : "$current = $etape - $depart + 1;" et commenter "$current = $avancement+1;" */
|
||||||
|
//$etape = 1;
|
||||||
|
|
||||||
|
/** $i va de 1 à 17 (inclus), 17 étant le nombre d'étapes */
|
||||||
|
for ($i = 1; $i <= 17; $i++) {
|
||||||
|
|
||||||
|
/** $node : Le numéro dans la node à l'emplacement $i
|
||||||
|
* exemple : si une équipe commence au point 7 alors la première node ($i = 1)
|
||||||
|
* va contenir $node = 7 À UTILISER POUR LES TEMPS ! */
|
||||||
|
$node = ($i + $depart - 2) % 17 + 1;
|
||||||
|
|
||||||
|
/** $current : À quel index est placé la node correspondante à l'$etape
|
||||||
|
* exemple : une équipe qui commence au point 17 en est au point 3,
|
||||||
|
* elle est donc affichée comme étant au niveau de la node d'index 4 ($i = 4)
|
||||||
|
* puisque de gauche à droite les premières nodes sont 17 - 1 - 2 - 3 */
|
||||||
|
|
||||||
|
//$current = $etape - $depart + 1;
|
||||||
|
|
||||||
|
$current = $avancement+1;
|
||||||
|
|
||||||
|
if ($current < 0) {
|
||||||
|
$current = $current + 17;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Si le point $i a été fait (fait), est en train d'être fait (actuel), ou n'a pas encore été atteint */
|
||||||
|
$state = '';
|
||||||
|
if ($i < $current) {
|
||||||
|
$state = ' fait';
|
||||||
|
} elseif ($i === $current) {
|
||||||
|
$state = ' active';
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
echo '<div class="cmv-step'.$state.'">';
|
||||||
|
echo $node;
|
||||||
|
|
||||||
|
if ($i <= $current) {
|
||||||
|
// --:-- doit être remplacé par l'heure à laquelle le point $node a été atteint
|
||||||
|
if($i == $current) {
|
||||||
|
echo '<div class="cmv-fixed">'.date("H:i:s",time()).'</div>';
|
||||||
|
} else {
|
||||||
|
echo '<div class="cmv-fixed">'.date("H:i:s",$tab_time[$i-1]).'</div>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
echo '</div>';
|
||||||
|
|
||||||
|
if ($i < 17) {
|
||||||
|
echo '<div class="cmv-way'.$state.'">';
|
||||||
|
if ($i < $current) {
|
||||||
|
if($i < $current-1) {
|
||||||
|
echo '<div class="cmv-relative">'.gmdate("H:i:s",$tab_time[$i]-$tab_time[$i-1]).'</div>'; // --mn doit être remplacé par le deltaT entre les points $node et $node+1
|
||||||
|
} else {
|
||||||
|
echo '<div class="cmv-relative">'.gmdate("H:i:s",time()-$tab_time[$i-1]).'</div>';
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
echo '</div>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<?php
|
||||||
|
} //fin du while e
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
} else {
|
||||||
|
header('Location: ../error.php');
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
?>
|
||||||
|
<a href="ville.php?session=1" class="href_session">Session matin</a>
|
||||||
|
|
||||||
|
<a href="ville.php?session=2" class="href_session">Session aprem</a>
|
||||||
|
|
||||||
<table class="acces">
|
<table class="acces">
|
||||||
<tr>
|
<tr>
|
||||||
<th width="10%">ID (db)</th>
|
<th width="10%">ID (db)</td>
|
||||||
<th width="70%">Indice</th>
|
<th width="70%">Indice</td>
|
||||||
<th width="10%">Reponse</th>
|
<th width="10%">reponse</td>
|
||||||
<th width="10%">Photos</th>
|
<th width="10%">photos</td>
|
||||||
<th width="10%">Id_equipe</th>
|
|
||||||
<th width="10%">Est finale</th>
|
|
||||||
<th width="10%">Ordre</th>
|
|
||||||
<th width="10%">Est trouvée</th>
|
|
||||||
<th width="10%">Action</th>
|
|
||||||
|
|
||||||
</tr>
|
</tr>
|
||||||
<?php
|
<?php
|
||||||
|
$req = $db->query('SELECT id, indice, reponse, photo FROM ville_epreuve');
|
||||||
|
|
||||||
|
|
||||||
while($epreuve = $req->fetch()) {
|
while($epreuve = $req->fetch()) {
|
||||||
?>
|
?>
|
||||||
<tr>
|
<tr>
|
||||||
|
@ -229,23 +402,11 @@ if(isset($_POST['copier_chemin'])){
|
||||||
<td><?= $epreuve['indice'] ?></td>
|
<td><?= $epreuve['indice'] ?></td>
|
||||||
<td><?= $epreuve['reponse'] ?></td>
|
<td><?= $epreuve['reponse'] ?></td>
|
||||||
<td><?php if(isset($epreuve['photo'])) { ?><img src="../assets/img/com_ville/<?= $epreuve['photo'] ?>" style="height: 100px;"><?php } else { echo "<font color='red'>no photos</font>"; }?></td>
|
<td><?php if(isset($epreuve['photo'])) { ?><img src="../assets/img/com_ville/<?= $epreuve['photo'] ?>" style="height: 100px;"><?php } else { echo "<font color='red'>no photos</font>"; }?></td>
|
||||||
<td><?= $epreuve['id_equipe'] ?></td>
|
|
||||||
<td><?= $epreuve['est_finale'] == 0 ? "non":"oui" ?></td>
|
|
||||||
<td><?= $epreuve['ordre'] ?></td>
|
|
||||||
<td><?= $epreuve['est_trouvee'] == 0 ? "non":"oui" ?></td>
|
|
||||||
<td>
|
|
||||||
<form method="POST">
|
|
||||||
<input type="text" name="del_epreuve" value="del_epreuve" hidden>
|
|
||||||
<input type="number" value="<?=$epreuve['id']?>" name="id_epreuve" hidden>
|
|
||||||
<input type="submit" value="supprimer">
|
|
||||||
</form>
|
|
||||||
</td>
|
|
||||||
|
|
||||||
</tr>
|
</tr>
|
||||||
<?php } ?>
|
<?php } ?>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<?php ?>
|
<?php } ?>
|
||||||
</main>
|
</main>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
62
anim.php
|
@ -1,33 +1,51 @@
|
||||||
<?php
|
<?php
|
||||||
ob_start(); // Start reading html
|
ob_start(); // Start reading html
|
||||||
include "assets/scripts/globals.php";
|
|
||||||
|
|
||||||
?>
|
?>
|
||||||
<main>
|
<main>
|
||||||
|
|
||||||
|
<div class="box-jaune">
|
||||||
|
<span class="corners corners-top"></span>
|
||||||
|
<span class="corners corners-bottom"></span>
|
||||||
|
|
||||||
<div class="zone_txt">
|
<div class="title">Message de la Com'anim</div>
|
||||||
<p>
|
|
||||||
Vous savez, moi je ne pense pas qu’il y ait de bonnes ou de mauvaises semaines d’accueil. Moi
|
<span class="circles circles-top"></span>
|
||||||
si je devais résumer aujourd’hui la Com’Anim avec vous,
|
<span class="circles circles-bottom"></span>
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
Je dirais que c’est avant tout du rire et de la bienveillance.
|
|
||||||
Des rencontres entre PPA, des liens qui se créeront et qui dureront.
|
|
||||||
Et c’est assez curieux de se dire que les rencontres, les hasards forgent une destinée, parce que
|
|
||||||
quand on a le goût de l’INSA, le goût de l’entraide, on trouve nécessairement un GDA prêt à vous
|
|
||||||
tendre la main.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
Et ce sera le cas de tous les Petits Prodiges Amusés et ils diront merci à la Com’Anim ils
|
|
||||||
danseront la Com’Anim ils chanteront la Com’Anim ils ne seront que joie. Et quand les Supaéro
|
|
||||||
nous diront mais comment faites-vous pour faire une semaine d’accueil si réussie ? Eh bien je
|
|
||||||
leur répondrai simplement que c’est cet esprit, ces valeurs de l’INSA qui nous ont poussés à
|
|
||||||
créer cette si belle semaine.
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<p>Coucou Petit.e Pêche Agréable,</p>
|
||||||
|
|
||||||
|
<p>Nous c’est la Com’Anim, on est là pour t’accueillir dans la joie et la bonne humeur avec de RATvissantes activités faites mains. Voici un petit mot pour découvrir notre Com en détails :</p>
|
||||||
|
|
||||||
|
<p><font color="red">C</font>ombative peu importe le budget (très) serré.</p>
|
||||||
|
|
||||||
|
<p><font color="red">O</font>pérationnelle, le stock de peau de banane complet.</p>
|
||||||
|
|
||||||
|
<p><font color="red">M</font>eilleure Com, mais ça tu le découvriRAT par toi-même.</p>
|
||||||
|
|
||||||
|
<p><font color="red">‘</font></p>
|
||||||
|
|
||||||
|
<p><font color="red">A</font>ssurée, tout est prêt, on t’attend.</p>
|
||||||
|
|
||||||
|
<p><font color="red">N</font>aturelle et toujours humble.</p>
|
||||||
|
|
||||||
|
<p><font color="red">I</font>maginative, deux plots et un ballon nous suffise.</p>
|
||||||
|
|
||||||
|
<p><font color="red">M</font>ultitâches : soirée déguisée, concert, rencontre on est là !</p>
|
||||||
|
|
||||||
|
<p><strong style="text-decoration: underline;">Attention très important :</strong> Le mardi au soir, il y aura une soirée déguisée. Nous comptons sur toi pour RATmener ton meilleur déguisement sur le thème de ton choix. Il y aura des prix pour les plus créatifs…</p>
|
||||||
|
|
||||||
|
<p>Gros bisous,</p>
|
||||||
|
|
||||||
|
<p>On a hâte de vous <s>épuiser</s> rencontrer 😊</p>
|
||||||
|
|
||||||
|
<p>Julimace et aladin</p>
|
||||||
|
<br><br>
|
||||||
|
<p><strong><font color="red">PS :</font></strong> n'hésitez pas si vous avez des questions, on répond <strong>RAT</strong>pidement : <a href="https://www.instagram.com/julie_brgs_/" class="link">@julie_brgs_</a> & <a href="https://www.instagram.com/andrea.ldn/" class="link">@andrea.ldn</a></p>
|
||||||
|
</section>
|
||||||
</main>
|
</main>
|
||||||
<?php
|
<?php
|
||||||
$infopage = ["", "Com'anim", ob_get_clean(), "", "anim","Message de la Com'anim"]; //relativepath, pagetitle, pagecontent, pagescript, pagename | cf structure/template.php ligne 2 à 6
|
$infopage = ["", "Com'anim", ob_get_clean(), "", "anim"]; //relativepath, pagetitle, pagecontent, pagescript, pagename | cf structure/template.php ligne 2 à 6
|
||||||
include("structure/template.php");
|
include("structure/template.php");
|
||||||
?>
|
?>
|
|
@ -1,139 +1,125 @@
|
||||||
.menu {
|
.menu {
|
||||||
position: fixed;
|
position: fixed;
|
||||||
width: 98vw;
|
bottom: -2px;
|
||||||
|
left: 0;
|
||||||
|
width: 100%;
|
||||||
|
height: auto;
|
||||||
z-index: 2;
|
z-index: 2;
|
||||||
|
|
||||||
overflow: visible;
|
overflow: visible;
|
||||||
transition: transform 0.3s;
|
transition: transform 0.3s;
|
||||||
bottom: 0;
|
|
||||||
border-radius: 20px;
|
|
||||||
margin-left: 1vw;
|
|
||||||
margin-right: 1vw;
|
|
||||||
margin-bottom: 1vh;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.tuyau {
|
||||||
#menu ul {
|
|
||||||
flex-wrap: wrap;
|
|
||||||
padding: 0;
|
|
||||||
margin: 0;
|
|
||||||
list-style: none;
|
|
||||||
display: flex;
|
|
||||||
justify-content: center;
|
|
||||||
color: #fff;
|
|
||||||
height: auto;
|
|
||||||
align-items: center;
|
|
||||||
background-color:#FFF2C8;
|
|
||||||
background-image: url("../img/bordure-sans-fond.svg");
|
|
||||||
border-radius: 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#menu li {
|
|
||||||
margin: 0 10px;
|
|
||||||
font-weight: 900;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
#menu a {
|
|
||||||
display: block; /* Add this line to make the link fill the entire menu item */
|
|
||||||
padding: 15px; /* Add some padding for better readability and clickable area */
|
|
||||||
color: #6D071A;
|
|
||||||
text-decoration: none;
|
|
||||||
background-repeat: no-repeat;
|
|
||||||
background-position: center;
|
|
||||||
background-size: cover;
|
|
||||||
font-size: 30px !important;
|
|
||||||
background-color: rgba(45, 47, 45, 0);
|
|
||||||
border-radius: 5px;
|
|
||||||
font-weight: 900;
|
|
||||||
}
|
|
||||||
|
|
||||||
#menu a:hover{
|
|
||||||
color: #09c758;
|
|
||||||
transform: translateY(-2px);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*hide the mobile menu by default*/
|
|
||||||
|
|
||||||
.topnav{
|
|
||||||
visibility: hidden;
|
|
||||||
height: 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* Add styles for smartphones screens */
|
|
||||||
@media all and (max-width: 800px) {
|
|
||||||
|
|
||||||
|
|
||||||
.menu{
|
|
||||||
visibility: hidden;
|
|
||||||
height: 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* Style the navigation menu */
|
|
||||||
.topnav {
|
|
||||||
visibility: visible;
|
|
||||||
overflow-y: scroll;
|
|
||||||
background-color: #333;
|
|
||||||
position: fixed;
|
position: fixed;
|
||||||
width: 95%;
|
bottom: -2px;
|
||||||
z-index: 100;
|
right: 3vw;
|
||||||
border-radius: 10px;
|
width: 8%;
|
||||||
margin-top: 1vh;
|
min-width: 6.3vmax;
|
||||||
height: auto;
|
height: auto;
|
||||||
margin-left: 2.5%;
|
z-index: 2;
|
||||||
margin-right: 2.5%;
|
cursor: pointer;
|
||||||
}
|
|
||||||
|
|
||||||
/* Hide the links inside the navigation menu (except for logo/home) */
|
transition: transform 0.3s;
|
||||||
.topnav #mobile_menu_links {
|
overflow: visible;
|
||||||
display: none;
|
}
|
||||||
}
|
|
||||||
|
|
||||||
/* Style navigation menu links */
|
.menu-link use {
|
||||||
.topnav a {
|
transition: transform 50ms;
|
||||||
color: white;
|
transform-origin: center;
|
||||||
padding: 1vh 1vw;
|
}
|
||||||
text-decoration: none;
|
|
||||||
font-size: 4vh;
|
.menu-link.menu-bottom-line use {
|
||||||
|
transform-origin: bottom;
|
||||||
|
}
|
||||||
|
|
||||||
|
.menu-link text {
|
||||||
|
transition: transform 50ms;
|
||||||
|
}
|
||||||
|
|
||||||
|
.menu .menu-link:hover text {
|
||||||
|
fill: #FFDC00;
|
||||||
|
transform: translateY(-1px);
|
||||||
|
}
|
||||||
|
|
||||||
|
.menu-link:hover use {
|
||||||
|
transform: scaleY(1.1);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.menu svg {
|
||||||
|
overflow: visible;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.mobile-menu {
|
||||||
display: block;
|
display: block;
|
||||||
margin-left: auto;
|
position: fixed;
|
||||||
margin-right: auto;
|
top: 0; left: 0;
|
||||||
text-align: center;
|
overflow: hidden;
|
||||||
}
|
width: 100%;
|
||||||
|
z-index: 20;
|
||||||
|
|
||||||
.topnav li {
|
height: 0;
|
||||||
|
background: rgba(15, 15, 23, 0);
|
||||||
|
|
||||||
|
transition: background-color 0.2s linear;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mobile-menu .containerF3g {
|
||||||
|
width: 100%; height: 100%;
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mobile-grid {
|
||||||
display: flex;
|
display: flex;
|
||||||
text-align: center;
|
flex-wrap: wrap;
|
||||||
}
|
padding: 2vh 60px;
|
||||||
|
min-height: 100vh;
|
||||||
|
justify-content: center;
|
||||||
|
align-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
/* Style the hamburger menu */
|
.mobile-menu-link {
|
||||||
.topnav a.icon {
|
min-width: 100px;
|
||||||
background: black;
|
width: 50%;
|
||||||
|
display: block;
|
||||||
|
opacity: 0;
|
||||||
|
cursor: pointer;
|
||||||
|
transform: translateY(10%);
|
||||||
|
transition: transform 0.2s ease-out, opacity 0.2s linear 0.05s;
|
||||||
|
}
|
||||||
|
|
||||||
|
nav.mobile-menu.open .mobile-menu-link {
|
||||||
|
transform: translateY(0);
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.menu-link:hover text {
|
||||||
|
fill: #FFDC00;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mobile-brick {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
span.close-mobile-menu {
|
||||||
|
color: #FFF;
|
||||||
|
font-size: 80px;
|
||||||
display: block;
|
display: block;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
right: 0;
|
-webkit-user-select: none; /* Safari */
|
||||||
top: 0;
|
-moz-user-select: none; /* Firefox */
|
||||||
}
|
-ms-user-select: none; /* IE10+/Edge */
|
||||||
|
user-select: none; /* Standard */
|
||||||
/* Add a grey background color on mouse-over */
|
cursor: pointer;
|
||||||
.topnav a:hover {
|
bottom: 0;
|
||||||
background-color: #ddd;
|
right: 20px;
|
||||||
color: black;
|
transition: color 0.5s;
|
||||||
}
|
|
||||||
|
|
||||||
.active {
|
|
||||||
background-color: rgb(27, 170, 22);;
|
|
||||||
color: white;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
span.close-mobile-menu:hover {
|
||||||
|
color: #FFDC00;
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,12 @@
|
||||||
|
section {
|
||||||
|
display: block;
|
||||||
|
background-color: rgba(255,255,255,0.5);
|
||||||
|
width: 80%;
|
||||||
|
max-width: 800px;
|
||||||
|
margin-left: auto;
|
||||||
|
margin-right: auto;
|
||||||
|
padding: 50px;
|
||||||
|
font-size: 1.2rem;
|
||||||
|
margin-top: 40px;
|
||||||
|
text-align: left;
|
||||||
|
}
|
|
@ -1,3 +1,19 @@
|
||||||
|
section {
|
||||||
|
background-color: rgba(255,255,255,0.5);
|
||||||
|
max-width: 800px;
|
||||||
|
margin-left: auto;
|
||||||
|
margin-right: auto;
|
||||||
|
padding-bottom: 50px;
|
||||||
|
font-size: 1.2rem;
|
||||||
|
margin-top: 40px;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#texte {
|
||||||
|
margin: 50px;
|
||||||
|
}
|
||||||
|
|
||||||
section ul li {
|
section ul li {
|
||||||
list-style: inside;
|
list-style: inside;
|
||||||
}
|
}
|
||||||
|
@ -21,9 +37,3 @@ section ul li {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ul-couleurs{
|
|
||||||
background-color:#FFFFFF;
|
|
||||||
border-radius: 10px;
|
|
||||||
padding: 10px;
|
|
||||||
}
|
|
|
@ -10,30 +10,6 @@ section {
|
||||||
margin-top: 40px;
|
margin-top: 40px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ekip{
|
|
||||||
|
|
||||||
width: 20vw;
|
|
||||||
height: 10vh;
|
|
||||||
border-radius: 5px;
|
|
||||||
font-size: large;
|
|
||||||
}
|
|
||||||
|
|
||||||
.btn-equipe{
|
|
||||||
|
|
||||||
background-color: #a06827;
|
|
||||||
color: #ffffff;
|
|
||||||
padding: 5vh 10vw 5vh 10vw;
|
|
||||||
margin-top: 30px;
|
|
||||||
border-radius: 10px;
|
|
||||||
|
|
||||||
font-size: large;
|
|
||||||
font-weight: bolder;
|
|
||||||
}
|
|
||||||
|
|
||||||
.main-form{
|
|
||||||
font-size: 2vw;
|
|
||||||
}
|
|
||||||
|
|
||||||
a.team {
|
a.team {
|
||||||
display: block;
|
display: block;
|
||||||
color: black;
|
color: black;
|
||||||
|
@ -114,29 +90,3 @@ th {
|
||||||
td.title {
|
td.title {
|
||||||
color: red;
|
color: red;
|
||||||
}
|
}
|
||||||
|
|
||||||
@keyframes rotate-zoom {
|
|
||||||
0% {
|
|
||||||
transform: rotate(0deg) scale(1);
|
|
||||||
}
|
|
||||||
25%{
|
|
||||||
transform: rotate(90deg) scale(1.5);
|
|
||||||
}
|
|
||||||
50% {
|
|
||||||
transform: rotate(180deg) scale(2);
|
|
||||||
}
|
|
||||||
75%{
|
|
||||||
transform: rotate(270deg) scale(1.5);
|
|
||||||
}
|
|
||||||
100% {
|
|
||||||
transform: rotate(360deg) scale(1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.prez-ep {
|
|
||||||
animation-name: rotate-zoom;
|
|
||||||
animation-duration: 2s; /* Adjust the duration as desired */
|
|
||||||
animation-timing-function: linear;
|
|
||||||
animation-iteration-count: infinite;
|
|
||||||
width: 30%;
|
|
||||||
height: 30%;
|
|
||||||
}
|
|
|
@ -0,0 +1,64 @@
|
||||||
|
body {
|
||||||
|
color: white;
|
||||||
|
background-color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
.box-jaune h1 {
|
||||||
|
margin: 0 0 0.5em;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
section h1 {
|
||||||
|
margin: 0;
|
||||||
|
padding: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
section h4 {
|
||||||
|
margin: 0;
|
||||||
|
padding: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#main_content {
|
||||||
|
display: block;
|
||||||
|
background-color: rgba(255,255,255,0); //pour mettre un magnifique fond
|
||||||
|
width: 40%;
|
||||||
|
margin-left: auto;
|
||||||
|
margin-right: auto;
|
||||||
|
font-size: 1.2rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
section {
|
||||||
|
display: block;
|
||||||
|
width: 80%;
|
||||||
|
padding: 0;
|
||||||
|
margin: 20px auto auto;
|
||||||
|
align-items: center;
|
||||||
|
border: 5px solid white;
|
||||||
|
background: rgba(0,0,0,0.5);
|
||||||
|
}
|
||||||
|
|
||||||
|
section ul {
|
||||||
|
list-style-type: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
section li {
|
||||||
|
margin-bottom: 30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
section .title_com {
|
||||||
|
width: 100%;
|
||||||
|
background-color: white;
|
||||||
|
color: black;
|
||||||
|
margin: 0px;
|
||||||
|
padding: 10px 0px 10px 0px;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.fonction_bureau {
|
||||||
|
display: inline-block;
|
||||||
|
background-color: white;
|
||||||
|
color: black;
|
||||||
|
padding: 10px;
|
||||||
|
margin-top: 0;
|
||||||
|
font-size: 1.5rem;
|
||||||
|
}
|
|
@ -1,30 +0,0 @@
|
||||||
#taupe{
|
|
||||||
|
|
||||||
top: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
#decompte{
|
|
||||||
|
|
||||||
margin-top: 5%;
|
|
||||||
width: 100%;
|
|
||||||
height: 200%;
|
|
||||||
font-size: 10vh;
|
|
||||||
color: rgb(196, 23, 23);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* ajuste le décompte pour les petits écrans*/
|
|
||||||
@media all and (max-width: 800px) {
|
|
||||||
|
|
||||||
#decompte{
|
|
||||||
font-size: 7vh;
|
|
||||||
color: rgb(40, 230, 11);
|
|
||||||
border-radius: 10px;
|
|
||||||
width: 95%;
|
|
||||||
margin-left: 2.5%;
|
|
||||||
margin-right: 2.5%;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,33 +1,11 @@
|
||||||
#decompte{
|
#msg_acc {
|
||||||
|
display: block;
|
||||||
margin-top: 5%;
|
background-color: rgba(255,255,255,0.5);
|
||||||
width: 70%;
|
width: 80%;
|
||||||
height: 200%;
|
max-width: 800px;
|
||||||
font-size: 10vh;
|
margin-left: auto;
|
||||||
color: rgb(230, 11, 11);
|
margin-right: auto;
|
||||||
padding: 10px;
|
padding: 50px;
|
||||||
border-radius: 10px;
|
font-size: 1.2rem;
|
||||||
margin-right: 15vw;
|
margin-top: 40px;
|
||||||
margin-left: 15vw;
|
|
||||||
z-index: 1;
|
|
||||||
/*background-color: rgba(255, 228, 196, 0.378);*/
|
|
||||||
border-width: 10px;
|
|
||||||
border-color: red;
|
|
||||||
border: solid;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ajuste le décompte pour les petits écrans*/
|
|
||||||
@media all and (max-width: 800px) {
|
|
||||||
|
|
||||||
#decompte{
|
|
||||||
font-size: 7vh;
|
|
||||||
color: rgb(45, 255, 13);
|
|
||||||
background-color: rgba(27, 187, 205, 0.188);
|
|
||||||
border-radius: 10px;
|
|
||||||
width: 95%;
|
|
||||||
margin-left: 2.5%;
|
|
||||||
margin-right: 2.5%;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
|
@ -1,31 +1,39 @@
|
||||||
main {
|
main {
|
||||||
color: rgb(0, 0, 0);
|
color: white;
|
||||||
font-size: 1.4rem;
|
font-size: 1.4rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
section {
|
||||||
|
display: block;
|
||||||
|
width: 80%;
|
||||||
|
padding: 0;
|
||||||
|
margin: 20px auto auto;
|
||||||
|
align-items: center;
|
||||||
|
border: 5px solid white;
|
||||||
|
background: rgba(0,0,0,0.5);
|
||||||
|
}
|
||||||
|
|
||||||
div p {
|
section p {
|
||||||
padding: 0 12px;
|
padding: 0 12px;
|
||||||
}
|
}
|
||||||
|
|
||||||
div h1 {
|
section h1 {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
background-color: rgba(45, 100, 145, 0.497);
|
background-color: white;
|
||||||
color: black;
|
color: black;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 10px 0 10px 0;
|
padding: 10px 0 10px 0;
|
||||||
border-radius: 5px;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
div .title_contact {
|
section .title_contact {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
background-color: rgba(45, 100, 145, 0.497);
|
background-color: white;
|
||||||
color: black;
|
color: black;
|
||||||
padding: 10px;
|
padding: 10px;
|
||||||
margin-top: 0;
|
margin-top: 0;
|
||||||
font-size: 1.5rem;
|
font-size: 1.5rem;
|
||||||
border-radius: 5px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.starterpack {
|
.starterpack {
|
||||||
|
|
|
@ -1,3 +1,12 @@
|
||||||
|
#desc {
|
||||||
|
display: block;
|
||||||
|
background-color: rgba(255,255,255,0.5);
|
||||||
|
width: 80vw;
|
||||||
|
margin: auto;
|
||||||
|
padding: 50px;
|
||||||
|
font-size: 1.2rem;
|
||||||
|
margin-top: 40px;
|
||||||
|
}
|
||||||
|
|
||||||
iframe {
|
iframe {
|
||||||
width: 50vw;
|
width: 50vw;
|
||||||
|
@ -6,11 +15,12 @@ iframe {
|
||||||
|
|
||||||
#video {
|
#video {
|
||||||
display: block;
|
display: block;
|
||||||
width: 70vw;
|
width: 80vw;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
margin: auto;
|
margin: auto;
|
||||||
margin-top: 20px;
|
margin-top: 20px;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
|
border: 5px solid white;
|
||||||
}
|
}
|
||||||
|
|
||||||
#video ul {
|
#video ul {
|
||||||
|
@ -22,7 +32,7 @@ iframe {
|
||||||
}
|
}
|
||||||
|
|
||||||
#video .title_video {
|
#video .title_video {
|
||||||
width: 70vw;
|
width: 100%;
|
||||||
background-color: white;
|
background-color: white;
|
||||||
color: black;
|
color: black;
|
||||||
margin: 0px;
|
margin: 0px;
|
||||||
|
|
|
@ -2,6 +2,19 @@
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
section {
|
||||||
|
background-color: rgba(255,255,255,0.5);
|
||||||
|
max-width: 800px;
|
||||||
|
margin-left: auto;
|
||||||
|
margin-right: auto;
|
||||||
|
font-size: 1.2rem;
|
||||||
|
margin-top: 40px;
|
||||||
|
text-align: left;
|
||||||
|
display: block;
|
||||||
|
width: 80vw;
|
||||||
|
padding: 50px;
|
||||||
|
}
|
||||||
|
|
||||||
#maps {
|
#maps {
|
||||||
position: relative;
|
position: relative;
|
||||||
display: block;
|
display: block;
|
||||||
|
|
|
@ -0,0 +1,15 @@
|
||||||
|
section {
|
||||||
|
display: block;
|
||||||
|
background-color: rgba(255,255,255,0.5);
|
||||||
|
width: 80%;
|
||||||
|
max-width: 800px;
|
||||||
|
margin-left: auto;
|
||||||
|
margin-right: auto;
|
||||||
|
padding: 50px;
|
||||||
|
font-size: 1.2rem;
|
||||||
|
margin-top: 40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
section ul li {
|
||||||
|
list-style: inside;
|
||||||
|
}
|
|
@ -2,6 +2,16 @@ body {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
section {
|
||||||
|
display: block;
|
||||||
|
background-color: rgba(255,255,255,0.5);
|
||||||
|
width: 80vw;
|
||||||
|
margin-left: auto;
|
||||||
|
margin-right: auto;
|
||||||
|
padding: 50px;
|
||||||
|
font-size: 1.2rem;
|
||||||
|
margin-top: 40px;
|
||||||
|
}
|
||||||
|
|
||||||
a {
|
a {
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
|
|
|
@ -4,6 +4,7 @@ main {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
section {
|
section {
|
||||||
display: block;
|
display: block;
|
||||||
background-color: rgba(255,255,255,0.5);
|
background-color: rgba(255,255,255,0.5);
|
||||||
|
|
|
@ -33,3 +33,13 @@ iframe {
|
||||||
margin: 0px;
|
margin: 0px;
|
||||||
padding: 10px 0px 10px 0px;
|
padding: 10px 0px 10px 0px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#desc {
|
||||||
|
display: block;
|
||||||
|
background-color: rgba(255,255,255,0.5);
|
||||||
|
width: 80vw;
|
||||||
|
margin: auto;
|
||||||
|
padding: 50px;
|
||||||
|
font-size: 1.2rem;
|
||||||
|
margin-top: 40px;
|
||||||
|
}
|
|
@ -2,6 +2,18 @@ main {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
section {
|
||||||
|
display: block;
|
||||||
|
background-color: rgba(255,255,255,0.5);
|
||||||
|
width: 80%;
|
||||||
|
max-width: 800px;
|
||||||
|
margin-left: auto;
|
||||||
|
margin-right: auto;
|
||||||
|
padding: 50px;
|
||||||
|
font-size: 1.2rem;
|
||||||
|
margin-top: 40px;
|
||||||
|
}
|
||||||
|
|
||||||
table.out {
|
table.out {
|
||||||
margin-top: 50px;
|
margin-top: 50px;
|
||||||
margin-right: auto;
|
margin-right: auto;
|
||||||
|
|
|
@ -0,0 +1,12 @@
|
||||||
|
section {
|
||||||
|
display: block;
|
||||||
|
text-align: left;
|
||||||
|
background-color: rgba(255,255,255,0.5);
|
||||||
|
width: 80%;
|
||||||
|
max-width: 800px;
|
||||||
|
margin-left: auto;
|
||||||
|
margin-right: auto;
|
||||||
|
padding: 50px;
|
||||||
|
font-size: 1.2rem;
|
||||||
|
margin-top: 40px;
|
||||||
|
}
|
|
@ -3,6 +3,14 @@ main {
|
||||||
width: 100vw;
|
width: 100vw;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
section {
|
||||||
|
display: inline-block;
|
||||||
|
background-color: rgba(255,255,255,0.5);
|
||||||
|
aspect-ratio: 425/600;
|
||||||
|
width: 43vw;
|
||||||
|
margin: 60px auto 1vw;
|
||||||
|
}
|
||||||
|
|
||||||
img {
|
img {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
background-color: transparent;
|
background-color: transparent;
|
||||||
|
@ -22,16 +30,6 @@ form {
|
||||||
height: 30px;
|
height: 30px;
|
||||||
margin: 5px;
|
margin: 5px;
|
||||||
}
|
}
|
||||||
.numeric-input {
|
|
||||||
display: inline-block;
|
|
||||||
width: 10%;
|
|
||||||
background-color: white;
|
|
||||||
border: 3px solid grey;
|
|
||||||
border-radius: 4px;
|
|
||||||
text-align: center;
|
|
||||||
height: 30px;
|
|
||||||
margin: 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.submit {
|
.submit {
|
||||||
width: 50%;
|
width: 50%;
|
||||||
|
|
|
@ -1,38 +0,0 @@
|
||||||
.conteneur-oeuf-de-paque{
|
|
||||||
|
|
||||||
display: flex;
|
|
||||||
justify-content: center;
|
|
||||||
align-items: center;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@keyframes rotation {
|
|
||||||
|
|
||||||
to{
|
|
||||||
visibility: visible;
|
|
||||||
transform: rotate3d(1, 1, 1, 0deg);
|
|
||||||
}
|
|
||||||
|
|
||||||
from{
|
|
||||||
transform: rotate3d(1, 1, 1, 360deg);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
.vice-prez{
|
|
||||||
top: 0%;
|
|
||||||
position: fixed;
|
|
||||||
animation-name: rotation;
|
|
||||||
animation-duration: 1s;
|
|
||||||
animation-iteration-count: infinite;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
.clash-gif{
|
|
||||||
position: fixed;
|
|
||||||
top: 0%;
|
|
||||||
}
|
|
|
@ -1,34 +1,19 @@
|
||||||
/* Custom Obelix font definition : */
|
/* Custom mario font definition : */
|
||||||
@font-face{
|
@font-face{
|
||||||
font-family: "Lapsus Pro Bold";
|
font-family: "Mario Extended";
|
||||||
src: url("../fonts/lapsus-pro.ttf");
|
src: url("../fonts/MarioFontExtended.otf") format("opentype");
|
||||||
}
|
}
|
||||||
|
|
||||||
*, *::before, *::after {
|
*, *::before, *::after {
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
}
|
}
|
||||||
|
|
||||||
.zone_txt {
|
|
||||||
display: block;
|
|
||||||
background-color: rgba(88, 159, 218, 0.798);
|
|
||||||
width: 90vw;
|
|
||||||
margin-left: auto;
|
|
||||||
margin-right: auto;
|
|
||||||
padding: 5vw;
|
|
||||||
font-size: 2rem;
|
|
||||||
margin-top: 40px;
|
|
||||||
border-radius: 15px;
|
|
||||||
color: black;
|
|
||||||
z-index: 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
html {
|
html {
|
||||||
font-size: 20px;
|
font-size: 20px;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
body {
|
body {
|
||||||
font-family: 'Lapsus Pro Bold';
|
font-family: 'Mario Extended', sans-serif;
|
||||||
|
|
||||||
font-size: 1rem;
|
font-size: 1rem;
|
||||||
|
|
||||||
|
@ -37,45 +22,27 @@ body {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
|
min-height: 100vh;
|
||||||
|
|
||||||
|
background-attachment: fixed;
|
||||||
|
background-color: #bdc7f3;
|
||||||
|
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 80 40' width='80' height='40'%3E%3Cpath fill='%235289ea' fill-opacity='0.2' d='M0 40a19.96 19.96 0 0 1 5.9-14.11 20.17 20.17 0 0 1 19.44-5.2A20 20 0 0 1 20.2 40H0zM65.32.75A20.02 20.02 0 0 1 40.8 25.26 20.02 20.02 0 0 1 65.32.76zM.07 0h20.1l-.08.07A20.02 20.02 0 0 1 .75 5.25 20.08 20.08 0 0 1 .07 0zm1.94 40h2.53l4.26-4.24v-9.78A17.96 17.96 0 0 0 2 40zm5.38 0h9.8a17.98 17.98 0 0 0 6.67-16.42L7.4 40zm3.43-15.42v9.17l11.62-11.59c-3.97-.5-8.08.3-11.62 2.42zm32.86-.78A18 18 0 0 0 63.85 3.63L43.68 23.8zm7.2-19.17v9.15L62.43 2.22c-3.96-.5-8.05.3-11.57 2.4zm-3.49 2.72c-4.1 4.1-5.81 9.69-5.13 15.03l6.61-6.6V6.02c-.51.41-1 .85-1.48 1.33zM17.18 0H7.42L3.64 3.78A18 18 0 0 0 17.18 0zM2.08 0c-.01.8.04 1.58.14 2.37L4.59 0H2.07z'%3E%3C/path%3E%3C/svg%3E");
|
||||||
}
|
}
|
||||||
|
|
||||||
.bg{
|
body::before {
|
||||||
background-color: #499135;
|
content: "";
|
||||||
background-repeat: no-repeat, no-repeat;
|
|
||||||
background-size: auto,cover;
|
|
||||||
position: fixed;
|
position: fixed;
|
||||||
height: 100%;
|
z-index: -2;
|
||||||
width: 100%;
|
top: 0;
|
||||||
|
left: 0;
|
||||||
/* s/o coconut.jpeg */
|
|
||||||
z-index: -10000000;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* papier peint pour petits écrans (smartphones) */
|
|
||||||
@media all and (max-width: 800px) {
|
|
||||||
|
|
||||||
.bg{
|
|
||||||
background-position: 2vw 15vh, center center;
|
|
||||||
background-size: auto,cover;
|
|
||||||
height: 100vh;
|
|
||||||
width: 100vw;
|
width: 100vw;
|
||||||
min-width: 550px;
|
height: 100vh;
|
||||||
|
clip-path: polygon(0 0, 55% 0, 45% 100%, 0 100%);
|
||||||
}
|
clip-path: polygon(0 0, calc(54% + 20px) 0, calc(46% - 20px) 100%, 0 100%);
|
||||||
|
background-color: #f3e8c4;
|
||||||
|
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 80 40' width='80' height='40'%3E%3Cpath fill='%23efc725' fill-opacity='0.2' d='M0 40a19.96 19.96 0 0 1 5.9-14.11 20.17 20.17 0 0 1 19.44-5.2A20 20 0 0 1 20.2 40H0zM65.32.75A20.02 20.02 0 0 1 40.8 25.26 20.02 20.02 0 0 1 65.32.76zM.07 0h20.1l-.08.07A20.02 20.02 0 0 1 .75 5.25 20.08 20.08 0 0 1 .07 0zm1.94 40h2.53l4.26-4.24v-9.78A17.96 17.96 0 0 0 2 40zm5.38 0h9.8a17.98 17.98 0 0 0 6.67-16.42L7.4 40zm3.43-15.42v9.17l11.62-11.59c-3.97-.5-8.08.3-11.62 2.42zm32.86-.78A18 18 0 0 0 63.85 3.63L43.68 23.8zm7.2-19.17v9.15L62.43 2.22c-3.96-.5-8.05.3-11.57 2.4zm-3.49 2.72c-4.1 4.1-5.81 9.69-5.13 15.03l6.61-6.6V6.02c-.51.41-1 .85-1.48 1.33zM17.18 0H7.42L3.64 3.78A18 18 0 0 0 17.18 0zM2.08 0c-.01.8.04 1.58.14 2.37L4.59 0H2.07z'%3E%3C/path%3E%3C/svg%3E");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@supports (-webkit-touch-callout: none) and (max-width: 800px){
|
|
||||||
/* CSS specific to iOS phones */
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
main {
|
main {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
|
@ -104,39 +71,64 @@ a.linkmail:hover {
|
||||||
-webkit-text-stroke: 1px white;
|
-webkit-text-stroke: 1px white;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* BEGIN PANCARTE */
|
/** START BOX JAUNE **/
|
||||||
.pancarte {
|
|
||||||
|
.box-jaune {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
position: relative;
|
position: relative;
|
||||||
padding: 10px;
|
padding: 10px;
|
||||||
margin: 40px 10vw 0;
|
margin: 40px 10vw 0;
|
||||||
font-size: 2.5px;
|
font-size: 2.5px;
|
||||||
|
|
||||||
background-color: #a06827;
|
background-color: #efd21f;
|
||||||
border-top: solid 2em #a06827;
|
border-top: solid 2em #fbf322;
|
||||||
border-left: solid 2em #a06827;
|
border-left: solid 2em #a29013;
|
||||||
border-right: solid 2em #a06827;
|
border-right: solid 2em #f7e31c;
|
||||||
border-bottom: solid 2em #332806;
|
border-bottom: solid 2em #73590b;
|
||||||
|
|
||||||
border-radius: 10px;
|
clip-path: polygon(
|
||||||
z-index: 1;
|
0 2.00em,1em 1em,2.00em 0,
|
||||||
|
calc(100% - 2.00em) 0,calc(100% - 1em) 1em,100% 2.00em,
|
||||||
|
100% calc(100% - 2.00em),calc(100% - 1em) calc(100% - 1em),calc(100% - 2.00em) 100%,
|
||||||
|
2.00em 100%,1em calc(100% - 1em),0 calc(100% - 2.00em)
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.corners-top::before {
|
||||||
/*
|
top: -2em;
|
||||||
ajoute une petite marge au dessus de la pancarte sur mobile pour laisser
|
left: -2em;
|
||||||
de la place a la navbar
|
background-color: #bfa018;
|
||||||
|
|
||||||
ajuste aussi la taille du texte de la pancarte
|
|
||||||
*/
|
|
||||||
@media all and (max-width: 800px) {
|
|
||||||
|
|
||||||
.pancarte{
|
|
||||||
margin-top: 10vh;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.pancarte .title {
|
.corners-top::after {
|
||||||
|
top: -2em;
|
||||||
|
right: -2em;
|
||||||
|
background-color: #fbfa87;
|
||||||
|
}
|
||||||
|
|
||||||
|
.corners-bottom::before {
|
||||||
|
bottom: -1.9em;
|
||||||
|
left: -2em;
|
||||||
|
background-color: #44350d;
|
||||||
|
}
|
||||||
|
|
||||||
|
.corners-bottom::after {
|
||||||
|
bottom: -1.9em;
|
||||||
|
right: -2em;
|
||||||
|
background-color: #967912;
|
||||||
|
}
|
||||||
|
|
||||||
|
.corners::before,
|
||||||
|
.corners:after {
|
||||||
|
content:"";
|
||||||
|
position: absolute;
|
||||||
|
display:block;
|
||||||
|
width: 2em;
|
||||||
|
height: 2em;
|
||||||
|
z-index: 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
.box-jaune .title {
|
||||||
padding: 3vw 4.5vw;
|
padding: 3vw 4.5vw;
|
||||||
color: black;
|
color: black;
|
||||||
font-size: 1.5rem;
|
font-size: 1.5rem;
|
||||||
|
@ -172,7 +164,7 @@ ajuste aussi la taille du texte de la pancarte
|
||||||
right: 3em;
|
right: 3em;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** END PANCARTE **/
|
/** END BOX JAUNE **/
|
||||||
|
|
||||||
.menu_space_bottom {
|
.menu_space_bottom {
|
||||||
position: sticky;
|
position: sticky;
|
||||||
|
@ -192,7 +184,7 @@ ajuste aussi la taille du texte de la pancarte
|
||||||
footer {
|
footer {
|
||||||
display: block;
|
display: block;
|
||||||
flex-shrink: 0;
|
flex-shrink: 0;
|
||||||
background-color: #74c457;
|
background-color: #6cc54d;
|
||||||
background-image: url("data:image/svg+xml,%3Csvg width='40' height='40' viewBox='0 0 40 40' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%237ee15e' fill-rule='evenodd'%3E%3Cpath d='M0 40L40 0H20L0 20M40 40V20L20 40'/%3E%3C/g%3E%3C/svg%3E");
|
background-image: url("data:image/svg+xml,%3Csvg width='40' height='40' viewBox='0 0 40 40' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%237ee15e' fill-rule='evenodd'%3E%3Cpath d='M0 40L40 0H20L0 20M40 40V20L20 40'/%3E%3C/g%3E%3C/svg%3E");
|
||||||
border-radius: 20px 20px 0 0;
|
border-radius: 20px 20px 0 0;
|
||||||
-webkit-box-shadow: 0 0 8px -1px rgba(8, 10, 13, 0.34);
|
-webkit-box-shadow: 0 0 8px -1px rgba(8, 10, 13, 0.34);
|
||||||
|
@ -201,7 +193,6 @@ footer {
|
||||||
padding: 50px;
|
padding: 50px;
|
||||||
font-size: 1rem;
|
font-size: 1rem;
|
||||||
color: black;
|
color: black;
|
||||||
z-index: 1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.footer-text-area {
|
.footer-text-area {
|
||||||
|
@ -210,8 +201,6 @@ footer {
|
||||||
margin-top: 2vh;
|
margin-top: 2vh;
|
||||||
margin-left: auto;
|
margin-left: auto;
|
||||||
margin-right: auto;
|
margin-right: auto;
|
||||||
font-size: 3vh;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -237,7 +226,3 @@ section {
|
||||||
#main_content {
|
#main_content {
|
||||||
padding-top: 20px;
|
padding-top: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.pc_container{
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
BIN
assets/fonts/MarioFontExtended.otf
Normal file
|
@ -1,13 +1,13 @@
|
||||||
<?php
|
<?php
|
||||||
function colored_text($str) {
|
function colored_text($str) {
|
||||||
$cl = ["Royal Blue", "green", "red","brown","yellow"];
|
$cl = ["red", "blue", "green", "orange", "grey", "brown", "purple"];
|
||||||
$str_out = "";
|
$str_out = "";
|
||||||
$ant_color = "";
|
$ant_color = "";
|
||||||
|
|
||||||
for($i=0; $i<=strlen($str)-1 ;$i++) {
|
for($i=0; $i<=strlen($str)-1 ;$i++) {
|
||||||
$color = $cl[rand(0, count($cl)-1)];
|
$color = $cl[rand(0, 6)];
|
||||||
while($color == $ant_color) {
|
while($color == $ant_color) {
|
||||||
$color = $cl[rand(0, count($cl)-1)];
|
$color = $cl[rand(0, 6)];
|
||||||
}
|
}
|
||||||
$ant_color = $color;
|
$ant_color = $color;
|
||||||
$str_out = $str_out."<font color='".$color."'>".$str[$i]."</font>";
|
$str_out = $str_out."<font color='".$color."'>".$str[$i]."</font>";
|
||||||
|
|
BIN
assets/img/35.jpg
Normal file
After Width: | Height: | Size: 6.2 MiB |
Before Width: | Height: | Size: 309 KiB |
Before Width: | Height: | Size: 454 KiB |
Before Width: | Height: | Size: 169 KiB |
Before Width: | Height: | Size: 142 KiB |
Before Width: | Height: | Size: 94 KiB |
Before Width: | Height: | Size: 628 KiB |
Before Width: | Height: | Size: 2.5 MiB |
Before Width: | Height: | Size: 259 KiB |
Before Width: | Height: | Size: 1.5 MiB |
Before Width: | Height: | Size: 212 KiB |
|
@ -1,43 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
|
||||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="500" height="500" viewBox="0 0 500 500" xml:space="preserve">
|
|
||||||
<desc>Created with Fabric.js 4.6.0</desc>
|
|
||||||
<defs>
|
|
||||||
</defs>
|
|
||||||
<g transform="matrix(2.63 0 0 0.52 260.78 198.31)" id="wez2Ww8CpL1QWcfcIThkZ" >
|
|
||||||
<path style="stroke: rgb(248,117,126); stroke-width: 0; stroke-dasharray: none; stroke-linecap: butt; stroke-dashoffset: 0; stroke-linejoin: miter; stroke-miterlimit: 4; fill: rgb(223,211,201); fill-rule: nonzero; opacity: 1;" vector-effect="non-scaling-stroke" transform=" translate(0, 0)" d="M -67.67241 -67.67241 L 67.67242 -67.67241 L 67.67242 67.67242 L -67.67241 67.67242 z" stroke-linecap="round" />
|
|
||||||
</g>
|
|
||||||
<g transform="matrix(1 0 0 1.63 44.4 198.28)" id="p-kuD9gcWX0uPDCf9wVph" >
|
|
||||||
<path style="stroke: rgb(217,190,90); stroke-width: 0; stroke-dasharray: none; stroke-linecap: butt; stroke-dashoffset: 0; stroke-linejoin: miter; stroke-miterlimit: 4; fill: rgb(223,211,201); fill-rule: nonzero; opacity: 1;" vector-effect="non-scaling-stroke" transform=" translate(0, 0)" d="M -38.36207 -28.37219 C -38.36207 -33.88945 -31.075210000000002 -38.36207 -22.086420000000004 -38.36207 L 22.086419999999997 -38.36207 L 22.086419999999997 -38.36207 C 31.07521 -38.36207 38.362069999999996 -33.889450000000004 38.362069999999996 -28.372190000000003 L 38.362069999999996 28.372189999999996 L 38.362069999999996 28.372189999999996 C 38.362069999999996 33.88945 31.075209999999995 38.362069999999996 22.086419999999997 38.362069999999996 L -22.086420000000004 38.362069999999996 L -22.086420000000004 38.362069999999996 C -31.075210000000006 38.362069999999996 -38.36207 33.88945 -38.36207 28.372189999999996 z" stroke-linecap="round" />
|
|
||||||
</g>
|
|
||||||
<g transform="matrix(1 0 0 1.63 461.21 198.31)" id="CDzTthWUfteWkJu2NojN4" >
|
|
||||||
<path style="stroke: rgb(217,190,90); stroke-width: 0; stroke-dasharray: none; stroke-linecap: butt; stroke-dashoffset: 0; stroke-linejoin: miter; stroke-miterlimit: 4; fill: rgb(223,211,201); fill-rule: nonzero; opacity: 1;" vector-effect="non-scaling-stroke" transform=" translate(0, 0)" d="M -38.36207 -28.37219 C -38.36207 -33.88945 -31.075210000000002 -38.36207 -22.086420000000004 -38.36207 L 22.086419999999997 -38.36207 L 22.086419999999997 -38.36207 C 31.07521 -38.36207 38.362069999999996 -33.889450000000004 38.362069999999996 -28.372190000000003 L 38.362069999999996 28.372189999999996 L 38.362069999999996 28.372189999999996 C 38.362069999999996 33.88945 31.075209999999995 38.362069999999996 22.086419999999997 38.362069999999996 L -22.086420000000004 38.362069999999996 L -22.086420000000004 38.362069999999996 C -31.075210000000006 38.362069999999996 -38.36207 33.88945 -38.36207 28.372189999999996 z" stroke-linecap="round" />
|
|
||||||
</g>
|
|
||||||
<g transform="matrix(0.72 0 0 1.2 461.21 198.01)" id="U4HPsI1Tu9_aouwWBxMLd" >
|
|
||||||
<path style="stroke: rgb(209,104,137); stroke-width: 0; stroke-dasharray: none; stroke-linecap: butt; stroke-dashoffset: 0; stroke-linejoin: miter; stroke-miterlimit: 4; fill: rgb(181,168,157); fill-rule: nonzero; opacity: 1;" vector-effect="non-scaling-stroke" transform=" translate(0, 0)" d="M -43.10345 -32.18475 C -43.10345 -38.214980000000004 -34.91597 -43.10345 -24.81621 -43.10345 L 24.8162 -43.10345 L 24.8162 -43.10345 C 34.91597 -43.10345 43.10344 -38.214980000000004 43.10344 -32.18475 L 43.10344 32.18475 L 43.10344 32.18475 C 43.10344 38.214980000000004 34.91596 43.10345 24.8162 43.10345 L -24.81621 43.10345 L -24.81621 43.10345 C -34.915980000000005 43.10345 -43.10345 38.214980000000004 -43.10345 32.18475 z" stroke-linecap="round" />
|
|
||||||
</g>
|
|
||||||
<g transform="matrix(0.72 0 0 1.2 44.4 198.28)" id="nU7SdAq5JL2lIJBhRppSj" >
|
|
||||||
<path style="stroke: rgb(209,104,137); stroke-width: 0; stroke-dasharray: none; stroke-linecap: butt; stroke-dashoffset: 0; stroke-linejoin: miter; stroke-miterlimit: 4; fill: rgb(181,168,157); fill-rule: nonzero; opacity: 1;" vector-effect="non-scaling-stroke" transform=" translate(0, 0)" d="M -43.10345 -32.18475 C -43.10345 -38.214980000000004 -34.91597 -43.10345 -24.81621 -43.10345 L 24.8162 -43.10345 L 24.8162 -43.10345 C 34.91597 -43.10345 43.10344 -38.214980000000004 43.10344 -32.18475 L 43.10344 32.18475 L 43.10344 32.18475 C 43.10344 38.214980000000004 34.91596 43.10345 24.8162 43.10345 L -24.81621 43.10345 L -24.81621 43.10345 C -34.915980000000005 43.10345 -43.10345 38.214980000000004 -43.10345 32.18475 z" stroke-linecap="round" />
|
|
||||||
</g>
|
|
||||||
<g transform="matrix(3.94 0 0 -0.08 252.8 196.77)" id="MDR6cUyKI2GNyTOeDArN-" >
|
|
||||||
<path style="stroke: rgb(193,80,199); stroke-width: 0; stroke-dasharray: none; stroke-linecap: butt; stroke-dashoffset: 0; stroke-linejoin: miter; stroke-miterlimit: 4; fill: rgb(181,168,157); fill-rule: nonzero; opacity: 1;" vector-effect="non-scaling-stroke" transform=" translate(0, 0)" d="M -43.10345 -43.10345 L 43.10345 -43.10345 L 43.10345 43.10345 L -43.10345 43.10345 z" stroke-linecap="round" />
|
|
||||||
</g>
|
|
||||||
<g transform="matrix(0.62 0 0 0.05 462.24 194.43)" id="Lgh3ZKzBDnuCJzYM0EyvR" >
|
|
||||||
<path style="stroke: rgb(6,161,71); stroke-width: 0; stroke-dasharray: none; stroke-linecap: butt; stroke-dashoffset: 0; stroke-linejoin: miter; stroke-miterlimit: 4; fill: rgb(223,211,201); fill-rule: nonzero; opacity: 1;" vector-effect="non-scaling-stroke" transform=" translate(0, 0)" d="M -43.10345 -43.10345 L 43.10345 -43.10345 L 43.10345 43.10345 L -43.10345 43.10345 z" stroke-linecap="round" />
|
|
||||||
</g>
|
|
||||||
<g transform="matrix(0.62 0 0 0.05 44.4 196.58)" id="78FTt5zzP1zQcTPMopwHe" >
|
|
||||||
<path style="stroke: rgb(6,161,71); stroke-width: 0; stroke-dasharray: none; stroke-linecap: butt; stroke-dashoffset: 0; stroke-linejoin: miter; stroke-miterlimit: 4; fill: rgb(223,211,201); fill-rule: nonzero; opacity: 1;" vector-effect="non-scaling-stroke" transform=" translate(0, 0)" d="M -43.10345 -43.10345 L 43.10345 -43.10345 L 43.10345 43.10345 L -43.10345 43.10345 z" stroke-linecap="round" />
|
|
||||||
</g>
|
|
||||||
<g transform="matrix(0.62 0 0 0.05 44.4 227.19)" id="4FU5SH2U-8G4kTFfPTl9N" >
|
|
||||||
<path style="stroke: rgb(6,161,71); stroke-width: 0; stroke-dasharray: none; stroke-linecap: butt; stroke-dashoffset: 0; stroke-linejoin: miter; stroke-miterlimit: 4; fill: rgb(223,211,201); fill-rule: nonzero; opacity: 1;" vector-effect="non-scaling-stroke" transform=" translate(0, 0)" d="M -43.10345 -43.10345 L 43.10345 -43.10345 L 43.10345 43.10345 L -43.10345 43.10345 z" stroke-linecap="round" />
|
|
||||||
</g>
|
|
||||||
<g transform="matrix(0.62 0 0 0.05 44.4 167.27)" id="mEMaY-15TJ14Ck7dvqZDo" >
|
|
||||||
<path style="stroke: rgb(6,161,71); stroke-width: 0; stroke-dasharray: none; stroke-linecap: butt; stroke-dashoffset: 0; stroke-linejoin: miter; stroke-miterlimit: 4; fill: rgb(223,211,201); fill-rule: nonzero; opacity: 1;" vector-effect="non-scaling-stroke" transform=" translate(0, 0)" d="M -43.10345 -43.10345 L 43.10345 -43.10345 L 43.10345 43.10345 L -43.10345 43.10345 z" stroke-linecap="round" />
|
|
||||||
</g>
|
|
||||||
<g transform="matrix(0.62 0 0 0.05 462.61 231.5)" id="nAGl7ZFuWgDuN4_DQ1kh0" >
|
|
||||||
<path style="stroke: rgb(6,161,71); stroke-width: 0; stroke-dasharray: none; stroke-linecap: butt; stroke-dashoffset: 0; stroke-linejoin: miter; stroke-miterlimit: 4; fill: rgb(223,211,201); fill-rule: nonzero; opacity: 1;" vector-effect="non-scaling-stroke" transform=" translate(0, 0)" d="M -43.10345 -43.10345 L 43.10345 -43.10345 L 43.10345 43.10345 L -43.10345 43.10345 z" stroke-linecap="round" />
|
|
||||||
</g>
|
|
||||||
<g transform="matrix(0.62 0 0 0.05 462.61 165.12)" id="b29hIhfF6Edj51xXIjdaU" >
|
|
||||||
<path style="stroke: rgb(6,161,71); stroke-width: 0; stroke-dasharray: none; stroke-linecap: butt; stroke-dashoffset: 0; stroke-linejoin: miter; stroke-miterlimit: 4; fill: rgb(223,211,201); fill-rule: nonzero; opacity: 1;" vector-effect="non-scaling-stroke" transform=" translate(0, 0)" d="M -43.10345 -43.10345 L 43.10345 -43.10345 L 43.10345 43.10345 L -43.10345 43.10345 z" stroke-linecap="round" />
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 7.8 KiB |
Before Width: | Height: | Size: 194 KiB |
Before Width: | Height: | Size: 4.9 KiB |
Before Width: | Height: | Size: 2.9 MiB |
BIN
assets/img/com_ville/thumbnail_10.jpg
Normal file
After Width: | Height: | Size: 119 KiB |
BIN
assets/img/com_ville/thumbnail_11.jpg
Normal file
After Width: | Height: | Size: 81 KiB |
BIN
assets/img/com_ville/thumbnail_12.jpg
Normal file
After Width: | Height: | Size: 142 KiB |
BIN
assets/img/com_ville/thumbnail_13.jpg
Normal file
After Width: | Height: | Size: 98 KiB |
BIN
assets/img/com_ville/thumbnail_14.jpg
Normal file
After Width: | Height: | Size: 107 KiB |
BIN
assets/img/com_ville/thumbnail_15.jpg
Normal file
After Width: | Height: | Size: 133 KiB |
BIN
assets/img/com_ville/thumbnail_16.jpg
Normal file
After Width: | Height: | Size: 124 KiB |
BIN
assets/img/com_ville/thumbnail_6.jpg
Normal file
After Width: | Height: | Size: 52 KiB |
BIN
assets/img/com_ville/thumbnail_7.jpg
Normal file
After Width: | Height: | Size: 102 KiB |
BIN
assets/img/com_ville/thumbnail_8.jpg
Normal file
After Width: | Height: | Size: 108 KiB |
BIN
assets/img/com_ville/thumbnail_9.jpg
Normal file
After Width: | Height: | Size: 84 KiB |
Before Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 494 KiB |
BIN
assets/img/cursor.png
Normal file
After Width: | Height: | Size: 21 KiB |
BIN
assets/img/error.jpg
Normal file
After Width: | Height: | Size: 55 KiB |
Before Width: | Height: | Size: 163 KiB |
Before Width: | Height: | Size: 1 MiB |
BIN
assets/img/ico_promo_60.ico
Normal file
After Width: | Height: | Size: 5.3 KiB |
Before Width: | Height: | Size: 271 KiB |
Before Width: | Height: | Size: 264 KiB |
Before Width: | Height: | Size: 164 KiB |
Before Width: | Height: | Size: 59 KiB |
14633
assets/img/mot_croise.svg
Normal file
After Width: | Height: | Size: 609 KiB |
Before Width: | Height: | Size: 1.1 MiB |
Before Width: | Height: | Size: 162 KiB |
Before Width: | Height: | Size: 471 KiB |
Before Width: | Height: | Size: 845 KiB |
Before Width: | Height: | Size: 42 KiB |
Before Width: | Height: | Size: 517 KiB |
Before Width: | Height: | Size: 942 KiB |
45342
assets/img/tolosa.svg
Before Width: | Height: | Size: 1.3 MiB |
Before Width: | Height: | Size: 194 KiB |
Before Width: | Height: | Size: 75 KiB |
55763
assets/img/village.svg
Before Width: | Height: | Size: 1.5 MiB |
|
@ -77,13 +77,13 @@ $desc = [
|
||||||
'L\'amicale : c\'est l\'Association des élèves, à côté de quelques clubs. Si tu as besoin de quelque chose ce sera toujours là-bas.',
|
'L\'amicale : c\'est l\'Association des élèves, à côté de quelques clubs. Si tu as besoin de quelque chose ce sera toujours là-bas.',
|
||||||
"Batiment nord de l'amicale",
|
"Batiment nord de l'amicale",
|
||||||
'Le Ptit Kawa, mais PK c\'est mieux (Peks pour les intimes). Le bar de l\'INSA, idéal pour se reposer entre les cours en jouant à la coinche ou au mus, ou pour se détendre les mercredi soir grâce aux soirée PK !',
|
'Le Ptit Kawa, mais PK c\'est mieux (Peks pour les intimes). Le bar de l\'INSA, idéal pour se reposer entre les cours en jouant à la coinche ou au mus, ou pour se détendre les mercredi soir grâce aux soirée PK !',
|
||||||
'Ce qui se passe au trou reste au trou.',
|
'aka "le Gouffre" (F gang)',
|
||||||
"J'ai mis au pluriel mais y'en a que deux t'enflames pas",
|
"J'ai mis au pluriel mais y'en a que deux t'enflames pas",
|
||||||
"La VMA tu travailleras, ton âme tu perdras.",
|
"Pour faire du sport ^^",
|
||||||
|
'',
|
||||||
'',
|
'',
|
||||||
'',
|
'',
|
||||||
'',
|
'',
|
||||||
'(T\'es plus blattes ou moisissures ?)',
|
|
||||||
'',
|
'',
|
||||||
'Formation continue - 0 vanne on sait pas que que c\'est',
|
'Formation continue - 0 vanne on sait pas que que c\'est',
|
||||||
'',
|
'',
|
||||||
|
|