Compare commits

..

168 commits

Author SHA1 Message Date
29668307c1 finition ville 2023-09-06 18:53:27 +02:00
eac51eaecf finition ville 2023-09-06 18:51:33 +02:00
08f571a7a5 finition ville 2023-09-06 18:48:22 +02:00
b28ffee765 test ville 2023-09-06 15:28:18 +02:00
698d52c297 test ville 2023-09-06 15:19:54 +02:00
5a261f64fd test ville 2023-09-06 15:18:26 +02:00
7637ee688a test ville 2023-09-06 15:16:54 +02:00
b948593ca1 test ville 2023-09-06 15:15:32 +02:00
946323d489 test ville 2023-09-06 15:14:34 +02:00
45fa75ffa5 test ville 2023-09-06 15:11:19 +02:00
b67709f916 test ville 2023-09-04 19:01:47 +02:00
608709732d test ville 2023-09-04 19:00:00 +02:00
7fa3605df0 test ville 2023-09-04 18:57:53 +02:00
fe90957199 test ville 2023-09-04 18:54:40 +02:00
d28132e629 test ville 2023-09-04 18:30:18 +02:00
d0e27fb33f test ville 2023-09-04 18:28:56 +02:00
6f13447a4f test ville 2023-09-04 18:26:59 +02:00
84d5433ffe test ville 2023-09-03 13:12:28 +02:00
95c8ee2a53 test ville 2023-09-03 13:09:00 +02:00
9e4dfa5dd3 test ville 2023-09-03 12:58:45 +02:00
3ca788a399 test ville 2023-09-03 12:55:02 +02:00
698f3c5226 test ville 2023-09-03 12:52:48 +02:00
75d64dc8c2 test ville 2023-09-03 12:51:16 +02:00
5decf7c545 test ville 2023-09-03 12:50:26 +02:00
50c6b4d0ae test ville 2023-09-03 12:46:19 +02:00
42d2ccbf7a test ville 2023-09-03 12:45:06 +02:00
ae99244e15 test ville 2023-09-03 12:38:03 +02:00
8255424f87 test ville 2023-09-03 12:36:45 +02:00
a24d428985 test ville 2023-09-03 12:34:52 +02:00
8c0bf4163c test ville 2023-09-03 12:33:20 +02:00
81d8990b31 test ville 2023-09-03 12:32:01 +02:00
6f847e9df6 test ville 2023-09-03 12:27:28 +02:00
d026c3d57f logo simplifie pour la blouser 2023-08-03 23:11:23 +02:00
bdcdadf915 logo simplifie pour la blouser 2023-08-03 23:06:25 +02:00
07df731755 message contextuel mots croisés 2023-08-03 12:39:42 +02:00
b7edc786e4 charte droit image + type 2023-08-02 15:52:18 +02:00
05de082678 disclaimer blouse 2023-08-02 13:34:39 +02:00
0c0ce41039 fix team select duplication 2023-08-02 13:32:35 +02:00
d7f325ca76 fix team select duplication 2023-08-02 13:29:22 +02:00
0ff2993fc4 downloads 2023-08-02 00:43:13 +02:00
e2188bd403 downloads 2023-08-02 00:40:34 +02:00
0c88391210 downloads 2023-08-02 00:39:32 +02:00
3593b25b0e fail 2023-08-02 00:29:21 +02:00
467163fd44 updated coms 2023-08-02 00:28:19 +02:00
fd4ae5babb updated coms 2023-08-02 00:26:51 +02:00
8a25da8f73 updated coms 2023-08-02 00:21:34 +02:00
a5f3bca37e updated coms 2023-08-02 00:15:51 +02:00
4a105e6ebf updated download links 2023-08-02 00:11:29 +02:00
83652c331d removed insario link 2023-08-02 00:02:11 +02:00
e731c5ba22 msg prez 2023-08-01 22:13:42 +02:00
989cfc6091 message de la prez 2023-08-01 18:35:31 +02:00
5a489feb4c msg equipe 2 + meilleure lisivilité 2023-08-01 15:21:16 +02:00
a6f6f180cf meilleur bandeau de liens et mav décompte 2023-07-29 18:42:49 +02:00
a82da1fd9c couleurs blouses validées 2023-07-29 09:47:54 +02:00
mougnibas
281a217280 plus jolie barre d'onglets pc et fix couleur blouse 2023-07-28 19:36:13 +02:00
thaaoblues
386b31e840 copier-coller de la plaquette pour le texte 2023-07-16 21:52:20 +02:00
thaaoblues
e1a8336d48 force location 2023-07-05 08:32:19 +02:00
thaaoblues
6e702daa09 pdf download links 2023-07-03 21:59:50 +02:00
thaaoblues
320121844e fail 2023-07-03 21:53:44 +02:00
thaaoblues
3ecd283797 maj texte parrainage 2023-07-03 21:50:35 +02:00
thaaoblues
8223a30a4e lil tweak 2023-07-02 20:31:39 +02:00
thaaoblues
929dcb7a10 test 2023-07-02 20:30:52 +02:00
thaaoblues
f2184d74dc test 2023-07-02 20:29:39 +02:00
thaaoblues
abdc591773 test 2023-07-02 20:29:07 +02:00
thaaoblues
c92ff60db4 test 2023-07-02 20:28:36 +02:00
thaaoblues
eb1ecd2494 j'suis trop con putain 2023-07-02 20:17:47 +02:00
thaaoblues
76a75dfcc0 fixed boolean 2023-07-02 20:16:34 +02:00
thaaoblues
da8e2fc88c fix boolean 2023-07-02 20:13:18 +02:00
thaaoblues
561460851d test 2023-07-02 20:11:42 +02:00
thaaoblues
59cb7c2bd9 tests 2023-07-02 20:10:22 +02:00
thaaoblues
bb2507f786 tests 2023-07-02 20:08:35 +02:00
thaaoblues
5be236f92e test 2023-07-02 19:42:29 +02:00
thaaoblues
7f0f8164be test 2023-07-02 19:41:07 +02:00
thaaoblues
295e26d64e test 2023-07-02 19:40:26 +02:00
thaaoblues
61e29f0d34 test 2023-07-02 19:39:57 +02:00
thaaoblues
3834cb507d test 2023-07-02 19:39:12 +02:00
thaaoblues
ddae7f5922 test 2023-07-02 19:38:25 +02:00
thaaoblues
90cd1eaa5e tests 2023-07-02 19:37:53 +02:00
thaaoblues
5eb712053b tweaks 2023-07-02 19:30:06 +02:00
thaaoblues
bd5acd9044 nv logo 2023-07-02 19:20:52 +02:00
thaaoblues
93f6c23bb5 minor fixes 2023-07-02 19:16:03 +02:00
thaaoblues
cbaa2137af ajout d'un lien direct com ville 2023-07-02 18:51:50 +02:00
thaaoblues
c668d34572 maj readme 2023-07-02 18:09:12 +02:00
thaaoblues
7ed2737fd4 revive phpcas 2023-07-02 17:04:33 +02:00
thaaoblues
c8c6e527a4 fix de la page photos 2023-06-27 15:09:34 +02:00
thaaoblues
1b3fedd473 com photo dashboard 2023-06-27 15:01:01 +02:00
thaaoblues
60c1767441 ascii art et mots croisés 2023-06-25 22:58:19 +02:00
thaaoblues
0ede203655 ptit ascii art 2023-06-22 17:43:50 +02:00
thaaoblues
313979f7dc fixed id check 2023-06-22 17:30:50 +02:00
thaaoblues
aa88a7bfaa oeuf de paques en fin de com ville 2023-06-13 17:22:42 +02:00
thaaoblues
7da1398e4f meilleur css et fix du calcul de temps 2023-06-05 19:05:17 +02:00
thaaoblues
19de218bad c'est pas bo mais le back fonctionne (normalement ) :D 2023-06-04 21:22:36 +02:00
thaaoblues
299461d12c début du nouveau système de com ville 2023-06-01 17:51:06 +02:00
thaaoblues
84ca0441c1 ajout de personnages + txt 2023-05-27 14:59:42 +02:00
thaaoblues
8dc1e8acff dashboard de création/supression de la bdd 2023-05-17 19:09:01 +02:00
thaaoblues
f0e537dd74 ajout d'equipes/epreuves/sessions debuis le dashboard ville 2023-05-11 21:46:36 +02:00
thaaoblues
f7f3e7e0dc removed ios specific css 2023-05-11 19:42:52 +02:00
thaaoblues
4622330a8b FIXED BG ON WEBKIT ??????? 2023-05-11 19:39:45 +02:00
thaaoblues
05d81c32ed j'ai oublié de mettre un chemin relatif 2023-05-10 20:57:20 +02:00
thaaoblues
f9296798c1 preparation du backend pour ajouter des epreuves 2023-05-10 20:54:11 +02:00
thaaoblues
a081f946ec fix assets url 2023-05-10 17:47:53 +02:00
thaaoblues
a7ba5df5e3 maj readme 2023-05-04 15:02:25 +02:00
thaaoblues
2dd09f95db repérage des diverses ameliorations à faire 2023-05-04 14:50:55 +02:00
thaaoblues
4125628e97 fixed game page 2023-05-02 22:05:22 +02:00
thaaoblues
3bfb8edc98 ios support 2023-05-01 23:03:23 +02:00
thaaoblues
10018d3af2 ios conditionned css 2023-05-01 23:02:12 +02:00
thaaoblues
223330ea83 ?? 2023-05-01 23:00:26 +02:00
thaaoblues
a4c6bd8c30 ... j'ai honte 2023-05-01 22:59:59 +02:00
thaaoblues
89a9d11011 non c'est trop 2023-05-01 22:59:29 +02:00
thaaoblues
cd9fbb9e5b ??? 2023-05-01 22:58:59 +02:00
thaaoblues
d3dbc9cd1d okay je suis juste débile en fait 2023-05-01 22:57:34 +02:00
thaaoblues
5d3770e6fb . 2023-05-01 22:56:17 +02:00
thaaoblues
834f495878 tweaks for safari 2023-05-01 22:55:15 +02:00
thaaoblues
0dfb2062c1 test 2023-05-01 22:54:48 +02:00
thaaoblues
501c364900 tweaks 2023-05-01 22:53:20 +02:00
thaaoblues
cac4890d71 . 2023-05-01 22:51:38 +02:00
thaaoblues
9ce659c05d . 2023-05-01 22:50:58 +02:00
thaaoblues
7c62ef65c0 okay là normalement c'est bon 2023-05-01 22:48:47 +02:00
thaaoblues
4d912fa8f3 safari.............. 2023-05-01 22:39:06 +02:00
thaaoblues
4165ad45b8 ... 2023-05-01 22:36:40 +02:00
thaaoblues
de1bbda58e je ne comprends plus rien 2023-05-01 22:33:45 +02:00
thaaoblues
7ad688e2aa SAFARI GO TO HELL 2023-05-01 22:32:13 +02:00
thaaoblues
4227347465 ... 2023-05-01 22:31:00 +02:00
thaaoblues
fe3e52519c safari you better work this time 2023-05-01 22:28:50 +02:00
thaaoblues
92e667f55a un jour safari va couler 2023-05-01 22:05:01 +02:00
thaaoblues
d60174ae66 trying things to please safari... 2023-05-01 21:38:27 +02:00
thaaoblues
5fc0dc595e bidouillage à l'ancienne pour fit les écrans (rip) 2023-05-01 20:13:22 +02:00
thaaoblues
69f373f6a2 oubli de marge 2023-05-01 19:26:04 +02:00
thaaoblues
2c6f5c399e amélioration mineure du papier peint 2023-05-01 19:01:24 +02:00
thaaoblues
e4df3a7004 fixed random backgrounds 2023-04-30 22:25:35 +02:00
thaaoblues
224fdbf687 testing random background 2023-04-30 22:22:47 +02:00
thaaoblues
51102ed581 utilisation d'urls complètes temporairement 2023-04-30 20:42:53 +02:00
thaaoblues
f37f317d25 on continue de commenter les appels à la bdd 2023-04-29 16:37:14 +02:00
thaaoblues
85022c44e5 commentaires en attendant la bdd de com ville 2023-04-29 16:33:43 +02:00
thaaoblues
aa60c12e47 oublié d'injecter les variables globales 2023-04-29 16:25:28 +02:00
thaaoblues
306f766fce ajustement des couleurs sur la page de constructio 2023-04-29 16:14:10 +02:00
thaaoblues
f741ed4afc ajustement du décompte 2023-04-29 16:12:30 +02:00
thaaoblues
9b9e614eaf oops 2023-04-29 16:07:08 +02:00
thaaoblues
a10f6ba9cc mobile menu is readyyyyyy 2023-04-29 16:05:29 +02:00
thaaoblues
b0c8260a07 fix la désactivation du menu pc 2023-04-29 15:52:00 +02:00
thaaoblues
0fff477e3b meilleur mise en page 2023-04-29 15:48:49 +02:00
thaaoblues
5bb031d388 ptit menu mobile qui marche 2023-04-29 15:39:44 +02:00
thaaoblues
312598ea1b adaptation pour petits écrans 2023-04-29 10:22:11 +02:00
thaaoblues
b6536ce199 fix le bug de date sur firefox 2023-04-28 18:27:56 +02:00
thaaoblues
4c0d50b414 ajustement aux petits écrans 2023-04-28 18:17:37 +02:00
thaaoblues
531211038c better text zone, menu tests 2023-04-28 18:14:12 +02:00
thaaoblues
c955435db0 ici on aime que les vecteurs 2023-04-28 17:30:45 +02:00
thaaoblues
64d0979888 normalisation des zones de texte 2023-04-22 18:47:14 +02:00
thaaoblues
45da9fb748 "le css est une oeuvre diabolique" - Sun tzu 2023-04-22 17:48:36 +02:00
thaaoblues
08a28ce828 ajustement contextuel de la taille du decompte 2023-04-22 14:35:24 +02:00
thaaoblues
e74fcfed27 page de construction et tweaks du timer 2023-04-22 14:22:56 +02:00
thaaoblues
ac865c7cf6 j'ai oublie d'enlever un include :/ 2023-04-20 20:34:36 +02:00
thaaoblues
b16d9e7f54 premier jet d'un décompte auto-maj en js. 2023-04-20 20:33:46 +02:00
thaaoblues
eaada1049e test de décompte automatique 2023-04-19 15:42:01 +02:00
thaaoblues
76dd0a1219 fixed mariable copy n paste error 2023-04-16 15:31:38 +02:00
thaaoblues
9e607e2db7 fixed incusion error 2023-04-16 15:27:19 +02:00
thaaoblues
cebdfc4490 fixed inclusion error and added help at index 2023-04-16 15:22:50 +02:00
thaaoblues
16d0f61d75 templates tests and db creation test script 2023-04-16 14:58:05 +02:00
thaaoblues
74828cfd32 finally global team variables :') 2023-01-26 15:53:45 +01:00
thaaoblues
ae163eded6 on vous a déjà dis qu'on aimait hardcode les constantes ? 2023-01-26 15:21:15 +01:00
thaaoblues
d0ca095e72 le hardcode de constantes ne mourra jamais 2023-01-26 15:08:44 +01:00
thaaoblues
c80c6eeb2b hardcode les adresses comme s'il n'y avait pas de lendemain 2023-01-26 15:06:55 +01:00
thaaoblues
1f73dbd561 changements pour repartir sur une base "asterix et obelix" 2023-01-24 18:37:38 +01:00
thaaoblues
02f33015e8 supression du tube 2023-01-24 18:03:56 +01:00
thaaoblues
0702ad051c prise en charge des pages sans pancarte 2023-01-24 18:02:07 +01:00
thaaoblues
6e0f1af128 forgot to remove old code 2023-01-22 12:54:13 +01:00
thaaoblues
442a34a33d remplacement des equipes avec un nom generique 2023-01-22 12:49:49 +01:00
thaaoblues
d0fdc335db génération automatique pancarte titre + minor tweaks 2023 2023-01-22 12:46:06 +01:00
129 changed files with 359578 additions and 16709 deletions

View file

@ -7,6 +7,20 @@ nécessaires liées à la semaine daccueil.
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).
@ -15,6 +29,9 @@ 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 (./).
@ -76,7 +93,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 ajotue 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 ajoute 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.
@ -117,15 +134,6 @@ 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
@ -134,9 +142,18 @@ ici il y a les session car il y a la session du matin et la session de l'après
| id | int(11) | X | | | id | int(11) | X | |
| indice | text | | | | indice | text | | |
| reponse | varchar(50) | | | | reponse | varchar(50) | | |
| photo | varchar(20) | | X | | photo | varchar(50) | | 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
@ -144,15 +161,22 @@ ici il va falloir mettre chaque épreuve à la main, indice correspond à ce qui
| :----------- |:------------:|:---------------:|:-----:| | :----------- |:------------:|:---------------:|:-----:|
| 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 et le "begin" est l'étape à laquelle démarre l'équipe, car ils ne démarrent pas tous à la même épreuve ! les identifiants des équipes ne doivent pas bouger, les noms c'est juste pour l'affichage utilisateur.
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
@ -284,7 +308,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=pkpeach et team.php?id=pkpeach il faut donc modifier les lien avec le nom des équipes (ligne 16 et 42), 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),
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

50
admin/bdd.php Normal file
View file

@ -0,0 +1,50 @@
<?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>

114
admin/com_photo.php Normal file
View file

@ -0,0 +1,114 @@
<?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>

View file

@ -1,6 +1,8 @@
<?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');
} }
@ -8,20 +10,38 @@ 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;
@ -51,11 +71,13 @@ 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"> <select name="team" class="input_inline" id="team">
<option value="t">NULL</option> <option value="t">AUCUNE EQUIPE</option>
<option value="t0">Pkpeach</option> <option value="t0"><?=$TEAM1?></option>
<option value="t1">Boomario</option> <option value="t1"><?=$TEAM2?></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">
@ -69,13 +91,14 @@ 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><?php <td>
<?php
switch ($r[0]['team']) { switch ($r[0]['team']) {
case "0": case "0":
echo "Pkpeach"; echo $TEAM1;
break; break;
case "1": case "1":
echo "Boomario"; echo $TEAM2;
break; break;
} }
?></td> ?></td>

View file

@ -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 - Perm 1</option> <option value="v1">Ville/Photo - 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</font></a>"; echo "<a href='?bur=".$admin['id']."'><font color='#3498DB'>Ville/Photo</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>";

View file

@ -1,9 +1,14 @@
<?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);
@ -39,6 +44,8 @@ if(isset($_POST['login'])) {
session_destroy(); session_destroy();
header('Refresh:0'); header('Refresh:0');
} }
?> ?>
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
@ -67,6 +74,8 @@ 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">
@ -78,6 +87,8 @@ if(isset($_POST['login'])) {
echo "<font color='red'>".$error."</font>"; echo "<font color='red'>".$error."</font>";
} }
?> ?>
</main> </main>
</body> </body>
</html> </html>

80
admin/mots_croises.php Normal file
View file

@ -0,0 +1,80 @@
<?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>

View file

@ -78,7 +78,14 @@ if(isset($_POST['send'])) {
header('Refresh: 0'); header('Refresh: 0');
} else { } else {
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'])) { 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'])) {
$day = (int) htmlspecialchars($_POST['day']); $day = (int) htmlspecialchars($_POST['day']);
$title = htmlspecialchars($_POST['title']); $title = htmlspecialchars($_POST['title']);
@ -222,4 +229,5 @@ if(isset($_POST['send'])) {
</table> </table>
</main> </main>
</body> </body>
</html> </html>

View file

@ -1,175 +0,0 @@
<!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>

View file

@ -1,6 +1,5 @@
<?php <?php
include "../script/db.php"; include_once "../script/db.php";
session_start(); session_start();
if(isset($_SESSION['id'])) { if(isset($_SESSION['id'])) {
@ -25,20 +24,26 @@ 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="gestion_des_acces.php"><li class="red">Gestion des accès</li></a>' ."<a href='com_photo.php'><li class='yellow'>Com'Photo</li></a>"
.'<a href="enigma.php"><li class="red">Enigma</li></a>' ."<a href=\"mots_croises.php\"><li class=\"orange\">Mots croises</li></a>"
.'<a href="../matomo" target="_matomo"><li class="red">Matomo</li></a>'; ."<a href=\"gestion_des_acces.php\"><li class=\"red\">Gestion des accès</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;
} }

View file

@ -1,6 +1,8 @@
<?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');
@ -73,8 +75,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">Pkpeach</option> <option value="t0"><?=$TEAM1?></option>
<option value="t1">Boomario</option> <option value="t1"><?=$TEAM2?></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>
@ -86,8 +88,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="Pkpeach" class="submit_inline"> <input type="submit" name="team0" value="<?=$TEAM1?>" class="submit_inline">
<input type="submit" name="team1" value="Boomario" class="submit_inline"> <input type="submit" name="team1" value="<?=$TEAM2?>" class="submit_inline">
</form> </form>
<br><br> <br><br>
<table class="acces"> <table class="acces">
@ -109,10 +111,10 @@ if(isset($_POST['send'])) {
<td><?php <td><?php
switch ($stat['team']) { switch ($stat['team']) {
case "0": case "0":
echo "Pkpeach"; echo $TEAM1;
break; break;
case "1": case "1":
echo "Boomario"; echo $TEAM2;
break; break;
} }
?></td> ?></td>
@ -145,4 +147,4 @@ if(isset($_POST['send'])) {
</table> </table>
</main> </main>
</body> </body>
</html> </html>

View file

@ -7,41 +7,132 @@ 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()));
header('Refresh: 0'); // ajout d'une epreuve
} if(isset($_POST['add_epreuve'])){
if(isset($_POST['start2'])) {
$req = $db->prepare("UPDATE ville SET state = ?, time_begin = ? WHERE session = 2"); //$upload_state prend plusieurs valeurs :
$req->execute(array(1, time())); // 1 si tout est valide et l'image n'existe pas déjà
header('Refresh: 0'); // 0 si une verification a invalidé le fichier
// 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
));
} }
if(isset($_POST['stop1'])) { //ajout d'une equipe
$req = $db->query("UPDATE ville SET state = 2 WHERE session = 1"); if(isset($_POST['add_equipe'])){
header('Refresh: 0'); $req = $db->prepare("INSERT INTO ville_equipe(nom,temps) VALUES(?,?)");
} $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');
} }
if(isset($_POST['reset1'])) { // suppression d'une équipe
if(htmlspecialchars($_POST['code']) == "anti-missclick") { if(isset($_POST['del_equipe'])){
$req = $db->query("UPDATE ville SET state = 0, time_begin = 0 WHERE session = 1"); $req = $db->prepare("DELETE FROM ville_equipe WHERE id=?");
$req = $db->query("UPDATE ville_equipe SET temps = NULL WHERE id < 17"); $req->execute(array(htmlspecialchars((int)$_POST['id_ekip'])));
header('Refresh: 0');
}
} }
if(isset($_POST['reset2'])) {
if(htmlspecialchars($_POST['code']) == "anti-missclick") { //suppression d'une épreuve
$req = $db->query("UPDATE ville SET state = 0, time_begin = 0 WHERE session = 2");
$req = $db->query("UPDATE ville_equipe SET temps = NULL WHERE id > 16"); if(isset($_POST['del_epreuve'])){
header('Refresh: 0'); $req = $db->prepare("DELETE FROM ville_epreuve WHERE id=?");
} $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>
@ -53,348 +144,84 @@ if(isset($_POST['reset2'])) {
</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
if(isset($_GET['session']) AND !empty($_GET['session'])) $req = $db->query('SELECT * FROM ville_equipe');
{ while($equipe = $req->fetch()) {
$session = (int) htmlspecialchars($_GET['session']);
if($session == 1) { echo "<th><a href=\"?ekip=".$equipe['id']."\">".htmlspecialchars($equipe['nom'])."(".$equipe['id'].")"."<a></th><wbr>";
?>
<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);
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>';
}
}
?>
</div>
</div>
<?php
} //fin du while e
}
} 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">
<input type="submit" name="start2" 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="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> </table>
<hr>
<a href="ville.php?session=2" class="href_session">Session aprem</a> <?php
$ekip = isset($_GET["ekip"]) ? (int)$_GET["ekip"]:1;
$req = $db->prepare('SELECT * FROM ville_epreuve WHERE id_equipe=?');
$req->execute(array($ekip));
?>
<form method="POST">
<input type="number" name="ekip" id="id_equipe" placeholder="numéro de l'équipe" class="input_inline">
<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>
<table class="acces"> <table class="acces">
<tr> <tr>
<th width="10%">ID (db)</td> <th width="10%">ID (db)</th>
<th width="70%">Indice</td> <th width="70%">Indice</th>
<th width="10%">reponse</td> <th width="10%">Reponse</th>
<th width="10%">photos</td> <th width="10%">Photos</th>
<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>
@ -402,11 +229,23 @@ if(isset($_POST['reset2'])) {
<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>

View file

@ -1,51 +1,33 @@
<?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="title">Message de la Com'anim</div> <div class="zone_txt">
<p>
<span class="circles circles-top"></span> Vous savez, moi je ne pense pas quil y ait de bonnes ou de mauvaises semaines daccueil. Moi
<span class="circles circles-bottom"></span> si je devais résumer aujourdhui la ComAnim avec vous,
</p>
<p>
Je dirais que cest avant tout du rire et de la bienveillance.
Des rencontres entre PPA, des liens qui se créeront et qui dureront.
Et cest assez curieux de se dire que les rencontres, les hasards forgent une destinée, parce que
quand on a le goût de lINSA, le goût de lentraide, 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 ComAnim ils
danseront la ComAnim ils chanteront la ComAnim ils ne seront que joie. Et quand les Supaéro
nous diront mais comment faites-vous pour faire une semaine daccueil si réussie ? Eh bien je
leur répondrai simplement que cest cet esprit, ces valeurs de lINSA 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 cest la ComAnim, on est pour taccueillir 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 tattend.</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 !</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"]; //relativepath, pagetitle, pagecontent, pagescript, pagename | cf structure/template.php ligne 2 à 6 $infopage = ["", "Com'anim", ob_get_clean(), "", "anim","Message de la Com'anim"]; //relativepath, pagetitle, pagecontent, pagescript, pagename | cf structure/template.php ligne 2 à 6
include("structure/template.php"); include("structure/template.php");
?> ?>

View file

@ -1,125 +1,139 @@
.menu { .menu {
position: fixed; position: fixed;
bottom: -2px; width: 98vw;
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;
.tuyau { margin-left: 1vw;
position: fixed; margin-right: 1vw;
bottom: -2px; margin-bottom: 1vh;
right: 3vw;
width: 8%;
min-width: 6.3vmax;
height: auto;
z-index: 2;
cursor: pointer;
transition: transform 0.3s;
overflow: visible;
}
.menu-link use {
transition: transform 50ms;
transform-origin: center;
}
.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 { #menu ul {
display: block;
position: fixed;
top: 0; left: 0;
overflow: hidden;
width: 100%;
z-index: 20;
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;
flex-wrap: wrap; flex-wrap: wrap;
padding: 2vh 60px; padding: 0;
min-height: 100vh; margin: 0;
list-style: none;
display: flex;
justify-content: center; justify-content: center;
align-content: center; color: #fff;
height: auto;
align-items: center;
background-color:#FFF2C8;
background-image: url("../img/bordure-sans-fond.svg");
border-radius: 5px;
} }
.mobile-menu-link {
min-width: 100px;
width: 50%; #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;
width: 95%;
z-index: 100;
border-radius: 10px;
margin-top: 1vh;
height: auto;
margin-left: 2.5%;
margin-right: 2.5%;
}
/* Hide the links inside the navigation menu (except for logo/home) */
.topnav #mobile_menu_links {
display: none;
}
/* Style navigation menu links */
.topnav a {
color: white;
padding: 1vh 1vw;
text-decoration: none;
font-size: 4vh;
display: block; display: block;
opacity: 0; margin-left: auto;
cursor: pointer; margin-right: auto;
transform: translateY(10%); text-align: center;
transition: transform 0.2s ease-out, opacity 0.2s linear 0.05s; }
}
nav.mobile-menu.open .mobile-menu-link { .topnav li {
transform: translateY(0); display: flex;
opacity: 1; text-align: center;
} }
.menu-link:hover text { /* Style the hamburger menu */
fill: #FFDC00; .topnav a.icon {
} background: black;
.mobile-brick {
display: block;
}
span.close-mobile-menu {
color: #FFF;
font-size: 80px;
display: block; display: block;
position: absolute; position: absolute;
-webkit-user-select: none; /* Safari */ right: 0;
-moz-user-select: none; /* Firefox */ top: 0;
-ms-user-select: none; /* IE10+/Edge */ }
user-select: none; /* Standard */
cursor: pointer; /* Add a grey background color on mouse-over */
bottom: 0; .topnav a:hover {
right: 20px; background-color: #ddd;
transition: color 0.5s; color: black;
}
.active {
background-color: rgb(27, 170, 22);;
color: white;
}
} }
span.close-mobile-menu:hover {
color: #FFDC00;
}

View file

@ -1,12 +0,0 @@
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;
}

View file

@ -1,19 +1,3 @@
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;
} }
@ -36,4 +20,10 @@ section ul li {
margin: 0 auto; margin: 0 auto;
width: 100%; width: 100%;
text-align: center; text-align: center;
}
.ul-couleurs{
background-color:#FFFFFF;
border-radius: 10px;
padding: 10px;
} }

View file

@ -10,6 +10,30 @@ 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;
@ -89,4 +113,30 @@ 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%;
}

View file

@ -1,64 +0,0 @@
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;
}

View file

@ -0,0 +1,30 @@
#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%;
}
}

View file

@ -1,11 +1,33 @@
#msg_acc { #decompte{
display: block;
background-color: rgba(255,255,255,0.5); margin-top: 5%;
width: 80%; width: 70%;
max-width: 800px; height: 200%;
margin-left: auto; font-size: 10vh;
margin-right: auto; color: rgb(230, 11, 11);
padding: 50px; padding: 10px;
font-size: 1.2rem; border-radius: 10px;
margin-top: 40px; margin-right: 15vw;
} 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%;
}
}

View file

@ -1,39 +1,31 @@
main { main {
color: white; color: rgb(0, 0, 0);
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);
}
section p { div p {
padding: 0 12px; padding: 0 12px;
} }
section h1 { div h1 {
width: 100%; width: 100%;
background-color: white; background-color: rgba(45, 100, 145, 0.497);
color: black; color: black;
margin: 0; margin: 0;
padding: 10px 0 10px 0; padding: 10px 0 10px 0;
border-radius: 5px;
} }
section .title_contact { div .title_contact {
display: inline-block; display: inline-block;
background-color: white; background-color: rgba(45, 100, 145, 0.497);
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 {

View file

@ -1,12 +1,3 @@
#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;
@ -15,12 +6,11 @@ iframe {
#video { #video {
display: block; display: block;
width: 80vw; width: 70vw;
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 {
@ -32,7 +22,7 @@ iframe {
} }
#video .title_video { #video .title_video {
width: 100%; width: 70vw;
background-color: white; background-color: white;
color: black; color: black;
margin: 0px; margin: 0px;

View file

@ -2,19 +2,6 @@
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;

View file

@ -1,15 +0,0 @@
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;
}

View file

@ -2,16 +2,6 @@ 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;

View file

@ -4,7 +4,6 @@ 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);

View file

@ -33,13 +33,3 @@ 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;
}

View file

@ -2,18 +2,6 @@ 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;

View file

@ -1,12 +0,0 @@
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;
}

View file

@ -3,14 +3,6 @@ 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;
@ -30,6 +22,16 @@ 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%;

View file

@ -0,0 +1,38 @@
.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%;
}

View file

@ -1,19 +1,34 @@
/* Custom mario font definition : */ /* Custom Obelix font definition : */
@font-face{ @font-face{
font-family: "Mario Extended"; font-family: "Lapsus Pro Bold";
src: url("../fonts/MarioFontExtended.otf") format("opentype"); src: url("../fonts/lapsus-pro.ttf");
} }
*, *::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: 'Mario Extended', sans-serif; font-family: 'Lapsus Pro Bold';
font-size: 1rem; font-size: 1rem;
@ -22,27 +37,45 @@ 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");
} }
body::before { .bg{
content: ""; background-color: #499135;
background-repeat: no-repeat, no-repeat;
background-size: auto,cover;
position: fixed; position: fixed;
z-index: -2; height: 100%;
top: 0; width: 100%;
left: 0;
width: 100vw; /* s/o coconut.jpeg */
height: 100vh; z-index: -10000000;
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");
} }
/* 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;
min-width: 550px;
}
}
@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%;
@ -71,64 +104,39 @@ a.linkmail:hover {
-webkit-text-stroke: 1px white; -webkit-text-stroke: 1px white;
} }
/** START BOX JAUNE **/ /* BEGIN PANCARTE */
.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: #efd21f; background-color: #a06827;
border-top: solid 2em #fbf322; border-top: solid 2em #a06827;
border-left: solid 2em #a29013; border-left: solid 2em #a06827;
border-right: solid 2em #f7e31c; border-right: solid 2em #a06827;
border-bottom: solid 2em #73590b; border-bottom: solid 2em #332806;
clip-path: polygon( border-radius: 10px;
0 2.00em,1em 1em,2.00em 0, z-index: 1;
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; /*
left: -2em; ajoute une petite marge au dessus de la pancarte sur mobile pour laisser
background-color: #bfa018; de la place a la navbar
ajuste aussi la taille du texte de la pancarte
*/
@media all and (max-width: 800px) {
.pancarte{
margin-top: 10vh;
}
} }
.corners-top::after { .pancarte .title {
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;
@ -164,7 +172,7 @@ a.linkmail:hover {
right: 3em; right: 3em;
} }
/** END BOX JAUNE **/ /** END PANCARTE **/
.menu_space_bottom { .menu_space_bottom {
position: sticky; position: sticky;
@ -184,7 +192,7 @@ a.linkmail:hover {
footer { footer {
display: block; display: block;
flex-shrink: 0; flex-shrink: 0;
background-color: #6cc54d; background-color: #74c457;
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);
@ -193,6 +201,7 @@ footer {
padding: 50px; padding: 50px;
font-size: 1rem; font-size: 1rem;
color: black; color: black;
z-index: 1;
} }
.footer-text-area { .footer-text-area {
@ -201,6 +210,8 @@ footer {
margin-top: 2vh; margin-top: 2vh;
margin-left: auto; margin-left: auto;
margin-right: auto; margin-right: auto;
font-size: 3vh;
} }
@ -225,4 +236,8 @@ section {
#main_content { #main_content {
padding-top: 20px; padding-top: 20px;
}
.pc_container{
text-align: center;
} }

Binary file not shown.

View file

@ -1,13 +1,13 @@
<?php <?php
function colored_text($str) { function colored_text($str) {
$cl = ["red", "blue", "green", "orange", "grey", "brown", "purple"]; $cl = ["Royal Blue", "green", "red","brown","yellow"];
$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, 6)]; $color = $cl[rand(0, count($cl)-1)];
while($color == $ant_color) { while($color == $ant_color) {
$color = $cl[rand(0, 6)]; $color = $cl[rand(0, count($cl)-1)];
} }
$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>";
@ -15,4 +15,4 @@ function colored_text($str) {
return "<strong>".$str_out."</strong>"; return "<strong>".$str_out."</strong>";
} }
?> ?>

BIN
assets/fonts/lapsus-pro.otf Normal file

Binary file not shown.

BIN
assets/fonts/lapsus-pro.ttf Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.2 MiB

3705
assets/img/adrenaline.svg Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 309 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 454 KiB

1497
assets/img/asterix.svg Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 169 KiB

1531
assets/img/bonemine.svg Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 142 KiB

BIN
assets/img/bonjoir.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 628 KiB

File diff suppressed because it is too large Load diff

After

Width:  |  Height:  |  Size: 2.5 MiB

8972
assets/img/buisson.svg Normal file

File diff suppressed because it is too large Load diff

After

Width:  |  Height:  |  Size: 259 KiB

BIN
assets/img/clash-royale.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 MiB

4214
assets/img/cleopatre.svg Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 212 KiB

43
assets/img/colonne.svg Normal file
View file

@ -0,0 +1,43 @@
<?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>

After

Width:  |  Height:  |  Size: 7.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 194 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

File diff suppressed because it is too large Load diff

After

Width:  |  Height:  |  Size: 2.9 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 119 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 142 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 107 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 133 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 124 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 102 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 108 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 494 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 163 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 1 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.3 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 271 KiB

BIN
assets/img/logo.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 264 KiB

BIN
assets/img/logo.jpeg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 164 KiB

BIN
assets/img/logo_simplifie.jpeg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 609 KiB

11399
assets/img/mots_croises.svg Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 1.1 MiB

1826
assets/img/obelix.svg Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 162 KiB

BIN
assets/img/pancarte.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 471 KiB

6069
assets/img/pc_background.svg Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 845 KiB

BIN
assets/img/placeholder.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

BIN
assets/img/prez.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 517 KiB

9403
assets/img/romains.svg Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 942 KiB

45342
assets/img/tolosa.svg Normal file

File diff suppressed because it is too large Load diff

After

Width:  |  Height:  |  Size: 1.3 MiB

BIN
assets/img/vice-prez.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 194 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

55763
assets/img/village.svg Normal file

File diff suppressed because it is too large Load diff

After

Width:  |  Height:  |  Size: 1.5 MiB

View file

@ -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 !',
'aka "le Gouffre" (F gang)', 'Ce qui se passe au trou reste au trou.',
"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",
"Pour faire du sport ^^", "La VMA tu travailleras, ton âme tu perdras.",
'',
'', '',
'', '',
'', '',
'(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',
'', '',

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
assets/pdf/droit_image.pdf Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show more