Moved map descriptions in database and added admin interface to edit them

Esse commit está contido em:
Keplyx 2019-05-19 20:04:02 +02:00
commit 5f0a0ecf53
38 arquivos alterados com 454 adições e 433 exclusões

Ver arquivo

@ -3,11 +3,14 @@ require_once '../classes/dao.php';
if (isset($_GET['function'])) {
if ($_GET['function'] == "save_scores") {
if ($_GET['function'] == "save_scores")
save_scores();
} elseif ($_GET['function'] == "get_scores") {
elseif ($_GET['function'] == "get_scores")
get_scores();
}
elseif ($_GET['function'] == "get_map_info")
get_map_info();
elseif ($_GET['function'] == "save_map_info")
save_map_info();
} else
show_error();
@ -25,14 +28,33 @@ function get_scores() {
if (isset($_GET['team'])) {
header('Content-Type: application/json');
$dao = new Dao('../');
echo json_encode($dao->get_score_team($_GET['team']));
} else {
show_error();
}
}
function get_map_info() {
if (isset($_GET['selector'])) {
header('Content-Type: application/json');
$dao = new Dao('../');
echo json_encode($dao->get_map_info($_GET['selector']));
} else {
show_error();
}
}
function save_map_info() {
if (isset($_GET['selector']) && isset($_GET['info'])) {
$dao = new Dao('../');
$dao->save_map_info($_GET['selector'], $_GET['info']);
echo "Réussite";
} else {
show_error();
}
}
function show_error() {
echo "Échec : ";
var_dump($_GET);

Ver arquivo

@ -3,61 +3,15 @@ ob_start(); // Start reading html
$relativePath = "../";
?>
<h1>ADMIN</h1>
<h2>Editer Score</h2>
<h2>Bienvenue sur la page d'administration</h2>
<select id="teamSelect">
<option value="gli">Glissefondor</option>
<option value="pek">Peksentard</option>
<option value="boo">Boomsouffle</option>
<option value="ver">Verredaigle</option>
</select>
<div class="add-line">
<i class="fas fa-plus"></i>
</div>
<div class="edit-header">
<div class="stat-log">Log</div>
<div class="stat-points">Points</div>
<div class="stat-trash"><i class='fas fa-trash'></i></div>
</div>
<table class="stats-table edit-stats">
</table>
<div class="save-score">
<i class="fas fa-save"></i> Enregistrer
</div>
<a href="scores.php">Editer les scores</a>
<br>
<div class="stats-button-container">
<a href="<?= $relativePath ?>stats.php" class="stats-button">
Retour sur le site
</a>
</div>
<link rel="stylesheet" type="text/css" media="screen" href="<?= $relativePath ?>assets/css/stats.css"/>
<a href="map.php">Editer le texte de la carte</a>
<?php
$pageContent = ob_get_clean(); // Store html content in variable
$pageTitle = "ADMIN";
$pageScripts = "<script type=\"text/javascript\" src=\"../assets/js/statsManager.js\"></script>";
include($relativePath . "includes/template.php"); // Display template with variable content
function get_stats($team, $path)
{
$dao = new Dao($path);
foreach ($dao->get_score_team($team) as $row) {
$text = $row['text'];
$points = $row['points'];
?>
<tr class="entry">
<td class="edit-text"><input type='text' value="<?= $text ?>"/></td>
<td class="edit-points"><input type='number' value="<?= $points ?>"/></td>
<td class='remove-line'><i class="fas fa-trash"></td>
</tr>
<?php
}
}
?>

52
admin/map.php Arquivo normal
Ver arquivo

@ -0,0 +1,52 @@
<?php
ob_start(); // Start reading html
$relativePath = "../";
require_once $relativePath.'classes/dao.php';
?>
<h1>ADMIN</h1>
<h2>Edition de la carte</h2>
<select id="mapSelect">
<?php setup_map_dropdown() ?>
</select>
<br>
<label for="titleInput">Title</label>
<input type="text" id="titleInput">
<label for="descriptionInput">Description</label>
<textarea rows="15" id="descriptionInput"></textarea>
<div class="save">
<i class="fas fa-save"></i> Enregistrer
</div>
<br>
<div class="buttons-container">
<a href="index.php" class="admin-back-button">
Retour sur la page admin
</a>
<a href="<?= $relativePath ?>map.php" class="website-back-button">
Retour sur le site
</a>
</div>
<link rel="stylesheet" type="text/css" media="screen" href="<?= $relativePath ?>assets/css/adminEdit.css"/>
<?php
$pageContent = ob_get_clean(); // Store html content in variable
$pageTitle = "Édition carte";
$pageScripts = "<script type=\"text/javascript\" src=\"../assets/js/mapManager.js\"></script>";
include($relativePath . "includes/template.php"); // Display template with variable content
function setup_map_dropdown() {
$dao = new Dao('../');
foreach ($dao->get_map_selectors() as $row) {
echo "<option value='" . $row['selector'] . "'>" . $row['selector'] . "</option>";
}
}
?>

66
admin/scores.php Arquivo normal
Ver arquivo

@ -0,0 +1,66 @@
<?php
ob_start(); // Start reading html
$relativePath = "../";
?>
<h1>ADMIN</h1>
<h2>Edition des scores</h2>
<select id="teamSelect">
<option value="gli">Glissefondor</option>
<option value="pek">Peksentard</option>
<option value="boo">Boomsouffle</option>
<option value="ver">Verredaigle</option>
</select>
<div class="add-line">
<i class="fas fa-plus"></i>
</div>
<div class="edit-header">
<div class="stat-log">Log</div>
<div class="stat-points">Points</div>
<div class="stat-trash"><i class='fas fa-trash'></i></div>
</div>
<table class="stats-table edit-stats">
</table>
<div class="save">
<i class="fas fa-save"></i> Enregistrer
</div>
<br>
<div class="buttons-container">
<a href="index.php" class="admin-back-button">
Retour sur la page admin
</a>
<a href="<?= $relativePath ?>stats.php" class="website-back-button">
Retour sur le site
</a>
</div>
<link rel="stylesheet" type="text/css" media="screen" href="<?= $relativePath ?>assets/css/adminEdit.css"/>
<?php
$pageContent = ob_get_clean(); // Store html content in variable
$pageTitle = "Édition scores";
$pageScripts = "<script type=\"text/javascript\" src=\"../assets/js/statsManager.js\"></script>";
include($relativePath . "includes/template.php"); // Display template with variable content
function get_stats($team, $path)
{
$dao = new Dao($path);
foreach ($dao->get_score_team($team) as $row) {
$text = $row['text'];
$points = $row['points'];
?>
<tr class="entry">
<td class="edit-text"><input type='text' value="<?= $text ?>"/></td>
<td class="edit-points"><input type='number' value="<?= $points ?>"/></td>
<td class='remove-line'><i class="fas fa-trash"></td>
</tr>
<?php
}
}
?>

160
assets/css/adminEdit.css Arquivo normal
Ver arquivo

@ -0,0 +1,160 @@
.edit-header .stat-log {
width: 70%;
}
.stat-points {
width: 20%;
}
.edit-header .stat-points {
width: 20%;
}
.edit-button-container {
border: none;
margin: 10px;
}
.edit-header {
display: flex;
text-align: center;
background-color: #61605e;
color: #fefefe;
font-weight: bold;
}
.edit-header .stat-trash {
margin: auto;
}
.edit-text {
width: 70%;
}
.edit-points{
width: 20%;
}
.buttons-container {
display: inline-flex;
}
.admin-back-button {
width: auto;
background: #fafafa;
color: #000;
border-radius: 5px;
padding: 15px;
box-shadow: 0 0 5px #000000;
}
.admin-back-button:hover {
color: #fafafa;
background: #1a1a1a;
}
.website-back-button {
width: auto;
background: #fafafa;
color: #000;
border-radius: 5px;
padding: 15px;
box-shadow: 0 0 5px #000000;
}
.website-back-button:hover {
color: #fafafa;
background: #1a1a1a;
}
.edit-stats {
width: 100%;
}
input, textarea {
text-align: center;
background: #484848;
color: #fafafa;
width: 100%;
border: none;
font-family: inherit;
font-size: inherit;
}
.remove-line {
color: #ff1200;
cursor: pointer;
transition: 0.3s;
}
.remove-line svg {
pointer-events: none;
}
.remove-line:hover {
color: #ff5e00;
text-shadow: 0 0 5px #ff4000;
}
.add-line{
font-size: 30px;
color: #fafafa;
cursor: pointer;
transition: 0.3s;
width: 100%;
border-radius: 5px;
margin: 30px 0 20px 0;
}
#addLine_gli {
background: #f02800;
}
#addLine_pek {
background: #21f022;
}
#addLine_boo {
background: #F0BA00;
}
#addLine_ver {
background: #5aa4f0;
}
#editHeader_gli {
background: #9c1a00;
}
#editHeader_pek {
background: #138a14;
}
#editHeader_boo {
background: #6b5300;
}
#editHeader_ver {
background: #264565;
}
.save {
background: #21aa08;
font-size: 30px;
color: #fafafa;
cursor: pointer;
transition: 0.3s;
margin: 40px 0 0 0;
width: 100%;
border-radius: 5px;
}
.save:hover {
background: #2ce20b;
box-shadow: 0 0 5px #2ce20b;
}

Ver arquivo

@ -16,158 +16,17 @@ margin-right: 20px;
}
.negative {
color: #1a1a1a;
color: #bf021c;
}
.stat-log, .edit-header.stat-log {
width: 80%;
}
.edit-header .stat-log {
width: 70%;
.jconfirm .jconfirm-box div.jconfirm-title-c .jconfirm-title {
font-size: 3rem;
}
.stat-points {
width: 20%;
}
.edit-header .stat-points {
width: 20%;
}
.edit-button-container {
border: none;
margin: 10px;
}
.edit-header {
display: flex;
text-align: center;
background-color: #61605e;
color: #fefefe;
font-weight: bold;
}
.edit-header .stat-trash {
margin: auto;
}
.edit-text {
width: 70%;
}
.edit-points{
width: 20%;
}
.stats-button-container {
display: inline-flex;
}
.stats-button {
width: auto;
background: #fafafa;
color: #000;
border-radius: 5px;
padding: 15px;
box-shadow: 0 0 5px #000000;
}
.stats-button:hover {
color: #fafafa;
background: #1a1a1a;
}
.edit-stats {
width: 100%;
}
input {
text-align: center;
background: #484848;
color: #fafafa;
width: 100%;
border: none;
font-family: inherit;
font-size: inherit;
}
.remove-line {
color: #ff1200;
cursor: pointer;
transition: 0.3s;
}
.remove-line svg {
pointer-events: none;
}
.remove-line:hover {
color: #ff5e00;
text-shadow: 0 0 5px #ff4000;
}
.add-line{
font-size: 30px;
color: #fafafa;
cursor: pointer;
transition: 0.3s;
width: 100%;
border-radius: 5px;
margin: 30px 0 20px 0;
}
#addLine_gli {
background: #f02800;
}
#addLine_pek {
background: #21f022;
}
#addLine_boo {
background: #F0BA00;
}
#addLine_ver {
background: #5aa4f0;
}
#editHeader_gli {
background: #9c1a00;
}
#editHeader_pek {
background: #138a14;
}
#editHeader_boo {
background: #6b5300;
}
#editHeader_ver {
background: #264565;
}
.save-score {
background: #21aa08;
font-size: 30px;
color: #fafafa;
cursor: pointer;
transition: 0.3s;
margin: 40px 0 0 0;
width: 100%;
border-radius: 5px;
}
.save-score:hover {
background: #2ce20b;
box-shadow: 0 0 5px #2ce20b;
}
.score-nav{
width: auto;

Ver arquivo

@ -55,24 +55,23 @@ h1 {
}
h2 {
padding-bottom: 3rem;
font-size: 32px;
font-size: 3.5rem;
}
h3 {
font-size: 2.5rem;
font-size: 3rem;
}
h4 {
font-size: 2.3rem;
font-size: 2.6rem;
}
h5 {
font-size: 2rem;
font-size: 2.2rem;
}
h6 {
font-size: 1.8rem;
font-size: 1.9rem;
}
p {
@ -283,15 +282,6 @@ Full-Width Styles
.index-background {
background: url("../images/bg_index.jpg") no-repeat center fixed;
}
#bg_ussr {
background: url("../images/urss.png") no-repeat center fixed;
background-size: cover;
}
#bg_usa {
background: url("../images/usa.png") no-repeat center fixed;
background-size: cover;
}
@ -526,6 +516,29 @@ transition: 0.3s;
box-shadow: 0 0 10px #1f6fce;
}
/* Popup background */
.jconfirm-bg {
background-color: rgba(26, 26, 26, 0.8) !important;
}
.jconfirm .jconfirm-box.loading {
height: 100%;
}
.jconfirm .jconfirm-box.loading::before {
display: none;
}
/* Color of the spinning icon */
.jconfirm .jconfirm-box.loading::after {
border-bottom-color: #ed0223;
opacity: 1;
}
.jconfirm .jconfirm-box div.jconfirm-content {
padding-bottom: 50px;
}
/*******************************************************************************
Small Device Styles
*******************************************************************************/

Ver arquivo

@ -10,18 +10,40 @@ function get_name(id){
}
function clicked(elem){
set_element_active(elem)
$("#infoBox").load("includes/map_descriptions/" + get_name(elem.id) + ".html");
$('html, body').animate({
scrollTop: $("#info-box-top").offset().top
}, 300);
set_element_active(elem);
$.alert({
title: 'Chargement...',
theme: 'supervan',
content: function () {
let self = this;
let object = {
"function": 'get_map_info',
'selector': get_name(elem.id),
};
return $.ajax({
url: 'admin/ajax_load.php',
data: object,
method: 'get'
}).done(function (data) {
if (data.length > 0) {
self.setTitle(data[0]['title']);
self.setContent(data[0]['description']);
} else {
self.setTitle('Erreur');
self.setContent('Une erreur est survenue')
}
}).fail(function(){
self.setContent('Something went wrong.');
});
}
});
}
function set_element_active(elem){
selected = elem;
var elements = document.querySelectorAll('*[id^="map-"]');
let elements = document.querySelectorAll('*[id^="map-"]');
for (var i = 0; i < elements.length; i++){
for (let i = 0; i < elements.length; i++){
$(elements[i]).css("fill", normalColor);
}
$(elem).css("fill", clickedColor);

45
assets/js/mapManager.js Arquivo normal
Ver arquivo

@ -0,0 +1,45 @@
let ajaxurl = 'ajax_load.php';
$(document).ready(function () {
getMapInfo(getSelectedMap());
$(".save").click(function () {
let info = {};
info['title'] = $('#titleInput').val();
info['description'] = $('#descriptionInput').val();
let object = {
"function": 'save_map_info',
'selector': getSelectedMap(),
'info': info,
};
$.get(
ajaxurl,
object,
function (data) {
alert(data);
}
);
});
$('#mapSelect').on('change', function () {
getMapInfo(getSelectedMap());
});
});
function getSelectedMap() {
return $('#mapSelect').val();
}
function getMapInfo(selector) {
let object = {
"function": 'get_map_info',
'selector': selector,
};
$.get(
ajaxurl,
object,
function (data) {
console.log(data);
$('#titleInput').val(data[0]['title']);
$('#descriptionInput').val(data[0]['description']);
}
);
}

Ver arquivo

@ -6,9 +6,23 @@ let entryTemplate =
'</div>';
function showScores(team) {
console.log(team);
let title = '';
switch (team) {
case 'gli':
title = 'Glissefondor';
break;
case 'pek':
title = 'Peksentard';
break;
case 'boo':
title = 'Boomsouffle';
break;
case 'ver':
title = 'Verredaigle';
break;
}
$.alert({
title: team,
title: title,
theme: 'supervan',
content: function () {
let self = this;

Ver arquivo

@ -16,7 +16,7 @@ $(document).ready(function () {
$(".add-line").click(function () {
addLine();
});
$(".save-score").click(function () {
$(".save").click(function () {
let lines = getLine();
let object = {
"function": 'save_scores',

Ver arquivo

@ -57,6 +57,29 @@ class Dao
}
}
public function get_map_info($selector) {
$sql = 'SELECT title, description FROM map_insa WHERE selector = ?';
$cursor = $this->conn->prepare($sql);
$cursor->execute([$selector]);
return $cursor->fetchAll(PDO::FETCH_ASSOC);
}
public function get_map_selectors() {
$sql = 'SELECT selector FROM map_insa';
$cursor = $this->conn->prepare($sql);
$cursor->execute();
return $cursor->fetchAll(PDO::FETCH_ASSOC);
}
public function save_map_info($selector, $info_json) {
$sql = 'DELETE FROM map_insa WHERE selector = ?';
$cursor = $this->conn->prepare($sql);
$cursor->execute([$selector]);
$sql = 'INSERT INTO map_insa (title, description, selector) VALUES (?, ?, ?)';
$cursor = $this->conn->prepare($sql);
$cursor->execute([$info_json['title'], $info_json['description'], $selector]);
}
}

Ver arquivo

@ -1,6 +0,0 @@
<h3>L'Amicale</h3>
<p>
Deux petits bâtiments qui regroupent quelques clubs, peut-être que t'y trouveras ton bonheur. C'est aussi ici que tu
pourras trouver l'Amicale des élèves, qui organise différents événements tout au long de l'année, comme ta semaine
d'accueil.
</p>

Ver arquivo

@ -1,20 +0,0 @@
<h3>La BIB et la Cafet</h3>
<p>
Oui je sais sur le plan ya juste marqué BIB, mais ya aussi la cafet juste en dessous !
</p>
<h4>La BIB</h4>
<p>
Si t'es hors campus, tu vas passer du temps là bas. Tu peux travailler sans (trop de) bruit, lire, et aller sur des
ordis (pour faire de l'algo, direction GEI). Si t'aimes lire, que ce soit des romans ou des livres scientifiques, tu
seras servi : en plus des livres disponibles à la BIB, il est possible d'en emprunter venant de toute l'Université
Paul Sabatier, et ça fait beaucoup de livres. Un gros plus est la possibilité de réserver des box (des boîtes pour
ceux fâchés avec l'anglais). C'est des salles de travail, où tu pourras bosser sur des projets avec ton groupe sans
déranger et ni être dérangé. Quand la date limite des projets arrive, ya souvent plus de place, donc direction le
STPI pour trouver une salle vide.
</p>
<h4>La Cafet</h4>
<p>
La petite cafet se cache sous la BIB, avec l'entrée juste à côté du RU. C'est un peu plus cher, mais ya
des pizzas, donc c'est bon. C'est un endroit convivial, avec du personnel très accueillant, toujours avec le sourire.
Y aller avec ses potes de temps en temps est plutôt sympa pour casser la monotonie du RU.
</p>

Ver arquivo

@ -1,6 +0,0 @@
<h3>Le CSH</h3>
<p>
Ah, le CSH, le Centre des Sciences Humaines. Un endroit merveilleux où tu feras de l'anglais, de la LV2, de
l'expression et du PPI, les matières préférées des élèves. Mais bon, ya un distributeur de boissons et
des ventes de crêpes, donc ça va.
</p>

Ver arquivo

@ -1,16 +0,0 @@
<h3>Le bâtiment des exams</h3>
<p>
Le bâtiment des examens. En tout cas pour certains. En 1A, tu feras tes contrôles (les CC) en même temps que toute
ta
promo. Autant dire que ya pas assez de place dans ce petit bâtiment. Certains feront donc leurs CC ici, d'autres
dans les amphis (en vrai les amphis c'est bien t'as de la place).
</p>
<h3>Le labo AIME</h3>
<p>
Jai dit tout à lheure que la salle des exams est petite, alors que sur le plan le bâtiment est super grand ! Mais
en fait cest très simple, le reste du bâtiment est occupé par un labo : AIME. C'est vraiment son nom, mais aucun
rapport avec ce que tu penses, ça veut juste dire "Atelier Interuniversitaire de Micro-nano Électronique". Mais
qu'est-ce donc que ce bâtiment mystérieux ? Bah cest un atelier partagé entre plusieurs écoles pour faire de la
micro et nano électronique. Vraiment, tas pas besoin den savoir plus (en tout cas je sais que ça), tu vas jamais y
aller.
</p>

Ver arquivo

@ -1,6 +0,0 @@
<h3>Le GC</h3>
<p>
D'après la légende, ce bâtiment serait la maison des futurs ingés en construction ! Situé au fin fond de l'INSA, ce
bâtiment est presque inconnu des 1A. Peut-être feras tu quelques TD dans les salles de cet endroit plein de mystères,
à condition que tu trouves ta salle...
</p>

Ver arquivo

@ -1,8 +0,0 @@
<h3>Le GEI</h3>
<p>
La maison des futurs électroniciens ou informaticiens ! Un endroit où tu vas passer du temps si t'as du mal en algo (et
oui, ya de l'algo en 1A), car du tutorat est organisé par les membres du club info. En fait, c'est le seul endroit
où tu peux avoir des salles en libre accès pour faire de l'Ada (le langage de programmation que t'apprends en 1A).
Si t'es gentil, peut être que les gars du club pourront te montrer comment faire de l'aglo directement sur ton ordi,
pour éviter d'aller au GEI dès que tu veux réviser (t'as pas intérêt à critiquer ma machine virtuelle !).
</p>

Ver arquivo

@ -1,8 +0,0 @@
<h3>Le GM</h3>
<p>
La maison des futurs mécanos, les GM ! Tu vas passer un bon bout de temps ici, que ce soit pour les TP de TI, ou des
TD de différentes matières. Tu vas avoir ici une matière que tu ne connais pas du tout : les Techniques
Industrielles (sauf si tu viens de S.SI, là tu vas revoir ta première et terminale). Tu vas au premier semestre
réaliser un petit projet, et au second, tu vas faire de nombreux TP, des manips sympas, comme de la trempe d'acier, de
l'impression 3D, de la découpe, ... Bref, la TI c'est bien.
</p>

Ver arquivo

@ -1,10 +0,0 @@
<h3>Le GMM</h3>
<p>
La maison des futurs matheux, les GMM ! Ya aussi l'amphi Fourier, mais tu vas pas vraiment y aller. Comme dans tout
le reste du bâtiment en fait. C'est le repère des profs de maths, et les élèves en 1A sont rarement invités...
</p>
<h3>Le CRI</h3>
<p>
Le Centre de Ressources Informatiques, encore un bâtiment où tu niras jamais. Cest le repère des admins de lINSA,
l'endroit où est géré linformatique de lécole. Ya pas vraiment besoin de savoir plus.
</p>

Ver arquivo

@ -1,6 +0,0 @@
<h3>Le GP</h3>
<p>
La maison des futurs physiciens, les GP ! Tu vas pas aller très souvent ici, car contrairement à la chimie et la
thermo, tu vas pas faire tes TPs dans l'antre des physiciens, mais dans un bâtiment spécial, le bâtiment des TPs
(un nom original je sais). Qui sait, peut être iras tu dans cet endroit merveilleux lors d'un TD.
</p>

Ver arquivo

@ -1,7 +0,0 @@
<h3>Le GPE</h3>
<p>
La maison des futurs chimistes, les ICBE ! Et ta maison pendant les TP de chimie et de thermo. Si manipuler des
solutions et des réservoirs adiabatiques c'est ton truc, tu vas te régaler. Sinon si t'es comme moi et que tu
comprends pas pourquoi quand t'as mis de la soude dans ton bécher c'est devenu bleu, beh bonne chance pour survivre
aux 4 heures de TP...
</p>

Ver arquivo

@ -1,8 +0,0 @@
<h3>Le Gymnase</h3>
<p>
Le sport, obligatoire en 1A, avec au menu de la course au premier semestre, et d'autres sports au second. Tu
commenceras avec un test de performance, pour savoir si t'es dans le groupe des mauvais (marche nordique ou
endurance) ou dans le groupe des bons (2000m vitesse). Ce test ne change pas le sport que tu peux faire au second
semestre, donc pas de stress. Au second semestre, plusieurs sports te seront proposés, comme le rugby, le volley, la
lutte, la danse, ou encore le meilleur, le golf (en vrai c'est sympa, faut pas discriminer les gens comme ça).
</p>

Ver arquivo

@ -1,5 +0,0 @@
<h3>La laverie</h3>
<p>
C'est un endroit que tu vas apprendre à connaître si tu rentres pas chez tes parents tous les week-ends. Si tu es au
R5 ou R6, pense bien à ta lessive, c'est quand même gênant de faire 3 fois l'aller-retour avec ton linge.
</p>

Ver arquivo

@ -1,4 +0,0 @@
<h3>La Loge</h3>
<p>
Le lieu de rencontre pour récupérer les commandes de pizza. Ya aussi la sécurité et un plan de l'INSA.
</p>

Ver arquivo

@ -1,8 +0,0 @@
<h3>Le PK</h3>
<p>
Le Ptit Kawa, appelé par certains le foyer étudiant. Mais PK ça sonne mieux. C'est LE lieu des soirées, avec la
salle de Boom juste à côté. Tu peux y aller un peu quand tu veux, ya presque tout le temps quelqu'un. Certains
aiment bien se retrouver là bas le midi. Des soirées sont régulièrement organisées pour décompresser des cours,
surtout le mercredi ou le jeudi. Il est maintenu par les étudiants, et il peut fonctionner que si tout le monde est
respectueux, donc fais la fête, mais sans tout casser stp.
</p>

Ver arquivo

@ -1,13 +0,0 @@
<h3>Le R1</h3>
<p>
C'est la seule résidence du Crous à l'INSA. Elle est directement sur le campus, à 2 minutes des cours, du RU, de la
Cafet, du PK, bref c'est la mieux placée si t'aimes l'ambiance !
</p>
<p>
Il y a 6 étages, avec des appartements de 11, 15 et 18 mètres carrés avec pour la majorité la cuisine et les WC
communs. Mais il y a aussi un étage spécial : le 3ème. En effet, c'est l'étage des colocs, avec une cuisine et salle
de bain communes à deux appartements.
</p>
<p>
PS : pense à un frigo si t'as un 11 m²
</p>

Ver arquivo

@ -1,6 +0,0 @@
<h3>Le R2</h3>
<p>
Située à 20 mètres du R1, cette résidence est elle aussi très bien placée si t'aimes l'ambiance et te lever tard.
Mais le R2 a un avantage écrasant sur toutes les autres résidences : la laverie. Et oui, tu n'as qu'à faire 2 pas
dehors pour aller laver ton linge, imagine un peu les pauvres du R5 et R6...
</p>

Ver arquivo

@ -1,7 +0,0 @@
<h3>Le R3</h3>
<p>
Un endroit merveilleux pour pouvoir profiter du PK sans en entendre le bruit. Tout comme le R7, ils ont un
distributeur de pain, utile si t'as oublié d'acheter du ptit dej. Certains te diront que c'est l'endroit le plus
gazif de l'INSA, qu'ils ont des ascenseurs qui marchent et tout, mais je pense plutôt que c'est parce que ya le Prez
de ta semaine là bas, ils trichent un peu dans la plaquette (chuut, leur dit pas...).
</p>

Ver arquivo

@ -1,8 +0,0 @@
<h3>Le R4</h3>
<p>
Tout le monde te dira que le R4 c'est le bout du monde (sauf ceux du R4), et je suis d'accord. Imagine un peu, tu
mets 1 minute de plus pour aller en cours que depuis le R7, inadmissible !
</p>
<p>
Si on oublie ce petit point négatif, le R4 est un endroit tranquille où tu pourras bosser et dormir en paix.
</p>

Ver arquivo

@ -1,8 +0,0 @@
<h3>Le R5</h3>
<p>
C'est à coté du R6, mais c'est pas le R6 (attention, ils mordent quand tu les confonds). Le R5, c'est le coin des
sportifs, avec une salle de muscu et de danse au rez-de-chaussée, et le gymnase juste à côté. Ça reste loin des
bâtiments de cours (sauf celui du GC mais t'y vas presque jamais), mais ils vont te dire que c'est des sportifs. Ça
leur donne une excuse pour se balader en skate toute la journée. Quand toute ta classe habite là bas, ça devient
presque une maison familiale, avec chacun qui squatte dans les apparts des autres.
</p>

Ver arquivo

@ -1,8 +0,0 @@
<h3>Le R6</h3>
<p>
C'est à coté du R5, mais c'est pas le R5 (attention, ils mordent quand tu les confonds). Le R6, c'est le coin des
sportifs, avec une salle de muscu et de danse au rez-de-chaussée, et le gymnase juste à côté. Ça reste loin des
bâtiments de cours (sauf celui du GC mais t'y vas presque jamais), mais ils vont te dire que c'est des sportifs. Ça
leur donne une excuse pour se balader en skate toute la journée. Quand toute ta classe habite là bas, ça devient
presque une maison familiale, avec chacun qui squatte dans les apparts des autres.
</p>

Ver arquivo

@ -1,6 +0,0 @@
<h3>Le R7</h3>
<p>
Ah, le R7, c'est LA résidence de l'INSA ! Assez proche pour être à moins de 5 min de tous les endroits les plus
intéressants de l'INSA, et juste assez loin pour ne pas être dérangé par les bruits, même avec la fenêtre ouverte !
De plus, comme le R3, on a un distributeur de pain et de choco pour les gourmands (ou les étourdis).
</p>

Ver arquivo

@ -1,6 +0,0 @@
<h3>Le RU</h3>
<p>
C'est le self, le Restaurant Universitaire. Tu vas apprendre à quelle vitesse une file d'attente peu grandir. Si
t'es là à 12h14, ya personne, mais à 12h16, ya 20 minutes d'attente. Autrement dit, dépêche-toi quand tu sors des cours.
Sinon, ya toujours la cafet sous la BIB quand t'as la flemme t'attendre.
</p>

Ver arquivo

@ -1,10 +0,0 @@
<h3>Le STPI</h3>
<p>
Le bâtiment des 1A (toi) et les 2A (nous), aussi appelé le bâtiment des Amphis. C'est là dedans que tu vas passer la
majeure partie de ton temps. STPI ça
veut dire Sciences et Techniques Pour l'Ingénieur. En gros, c'est l'administration qui gère les 1A et 2A. Après
chaque spécialité (ou presque) a son bâtiment (GM, GC, GPE, GEI, GMM, ...) et son administration.
</p>
<p>
Si tu cherches l'Amphi Riquet et Vinci (je pense ils sont quand même assez bien indiqués), c'est là dedans.
</p>

Ver arquivo

@ -1,6 +0,0 @@
<h3>Le bâtiment des TPs</h3>
<p>
Tu vas passer des heures dans ces salles de TPs, à faire de l'élec et de l'optique avec ton fameux binôme. C'est
l'occasion de mettre en pratique ce que t'as vu en cours. Et ça n'a rien à voir avec ce que tu faisais au lycée, ici
c'est intéressant.
</p>

Ver arquivo

@ -1,5 +0,0 @@
<h3>Le Trou</h3>
<p>
C'est pas un bâtiment, c'est un trou. C'est LE lieu de rencontre des élèves avant les soirées, ou
pendant, ou après. Bref, c'est un trou devant les apparts, on peut s'asseoir, c'est cool.
</p>

10
map.php
Ver arquivo

@ -4,8 +4,7 @@ ob_start(); // Start reading html
<h1>Le Plan</h1>
<p>
Voici le plan de ton nouveau campus, que tu vas connaître par cœur en quelques jours (fond de carte issu du site
<a
href="https://www.openstreetmap.org/#map=17/43.57103/1.46591">Open Street Map</a>).
<a href="https://www.openstreetmap.org/#map=17/43.57103/1.46591">Open Street Map</a>).
</p>
<p>
<strong>Clique sur un bâtiment pour voir les infos.</strong>
@ -20,13 +19,6 @@ ob_start(); // Start reading html
<?php echo file_get_contents("assets/images/map.svg"); ?>
</div>
<h1 id="info-box-top">Informations</h1>
<div id="infoBox">
<p>Clique sur un bâtiment pour afficher ses informations</p>
</div>
<?php
$pageContent = ob_get_clean(); // Store html content in variable
$pageTitle = "Plan";