forked from vergnet/site-accueil-insa
309 lines
No EOL
13 KiB
PHP
Executable file
309 lines
No EOL
13 KiB
PHP
Executable file
<?php
|
|
ob_start(); // Start reading html
|
|
|
|
include "script/db.php";
|
|
|
|
if(isset($_GET['planning']) AND !empty(['planning']))
|
|
{
|
|
$planning = (int) htmlspecialchars($_GET['planning']);
|
|
} else {
|
|
header('Location: planning.php?planning=1');
|
|
}
|
|
|
|
?>
|
|
<main>
|
|
|
|
<div class="box-jaune">
|
|
<span class="corners corners-top"></span>
|
|
<span class="corners corners-bottom"></span>
|
|
|
|
<div class="title">Planning</div>
|
|
|
|
<span class="circles circles-top"></span>
|
|
<span class="circles circles-bottom"></span>
|
|
</div>
|
|
<!--
|
|
//////////////////////////////////////////////////////////////
|
|
/////// Le lien de cette page est modifiable ^^ ////////////
|
|
//////////////////////////////////////////////////////////////
|
|
-->
|
|
|
|
<?php if(isset($planning)) { ?>
|
|
|
|
<div id="planning-container" class="planning-container" selected="0">
|
|
|
|
<div id="days" class="column days">
|
|
<div class="day_title">Jour</div>
|
|
|
|
<div class="day day0">L</div>
|
|
<div class="day day1">Ma</div>
|
|
<div class="day day2">Me</div>
|
|
<div class="day day3">J</div>
|
|
<div class="day day4">V</div>
|
|
<div class="day day5">S</div>
|
|
<div class="day day6">D</div>
|
|
|
|
<script defer>
|
|
|
|
const daysPLA = document.getElementsByClassName("day");
|
|
const containerPLA = document.getElementById("planning-container");
|
|
|
|
|
|
|
|
for (let i = 0; i < daysPLA.length; i++) {
|
|
const day = daysPLA[i];
|
|
day.addEventListener("click", (e) => {
|
|
let number = day.classList.item(1).charAt(3)
|
|
containerPLA.setAttribute("selected", number)
|
|
});
|
|
}
|
|
|
|
</script>
|
|
</div>
|
|
|
|
<div class="column time">
|
|
|
|
<div class="day_title">Heure</div>
|
|
<div class="hour">07</div>
|
|
<div class="hour">08</div>
|
|
<div class="hour">09</div>
|
|
<div class="hour">10</div>
|
|
|
|
<div class="hour">11</div>
|
|
<div class="hour">12</div>
|
|
<div class="hour">13</div>
|
|
<div class="hour">14</div>
|
|
<div class="hour">15</div>
|
|
|
|
<div class="hour">16</div>
|
|
<div class="hour">17</div>
|
|
<div class="hour">18</div>
|
|
<div class="hour">19</div>
|
|
<div class="hour">20</div>
|
|
|
|
<div class="hour">21</div>
|
|
<div class="hour">22</div>
|
|
<div class="hour">23</div>
|
|
<div class="hour">00</div>
|
|
<div class="hour">01</div>
|
|
|
|
</div>
|
|
|
|
<div id="lundi" class="column lundi">
|
|
<div class="day_title">L</div>
|
|
|
|
<?php
|
|
// For every planned activity on day 0
|
|
$req1 = $db->prepare('SELECT title, description, color, length FROM planning_insa WHERE day = 1 AND num_planning = ? ORDER BY order_start ASC');
|
|
$req1->execute(array($planning));
|
|
while($r1 = $req1->fetch()) {
|
|
?>
|
|
<div class="class" data-description="<?=$r1['description']?>" style="background-color: <?= $r1['color'] ?>; height: <?= $r1['length'] ?>vh;">
|
|
<?= $r1['title'] ?>
|
|
</div>
|
|
<?php
|
|
}
|
|
?>
|
|
|
|
</div>
|
|
|
|
<div id="mardi" class="column mardi">
|
|
<div class="day_title">Ma</div>
|
|
|
|
<?php
|
|
// For every planned activity on day 0
|
|
$req1 = $db->prepare('SELECT title, description, color, length FROM planning_insa WHERE day = 2 AND num_planning = ? ORDER BY order_start ASC');
|
|
$req1->execute(array($planning));
|
|
while($r1 = $req1->fetch()) {
|
|
?>
|
|
<div class="class" data-description="<?=$r1['description']?>" style="background-color: <?= $r1['color'] ?>; height: <?= $r1['length'] ?>vh;">
|
|
<?= $r1['title'] ?>
|
|
</div>
|
|
<?php
|
|
}
|
|
?>
|
|
</div>
|
|
|
|
<div id="mercredi" class="column mercredi">
|
|
<div class="day_title">Me</div>
|
|
|
|
<?php
|
|
// For every planned activity on day 0
|
|
$req1 = $db->prepare('SELECT title, description, color, length FROM planning_insa WHERE day = 3 AND num_planning = ? ORDER BY order_start ASC');
|
|
$req1->execute(array($planning));
|
|
while($r1 = $req1->fetch()) {
|
|
?>
|
|
<div class="class" data-description="<?=$r1['description']?>" style="background-color: <?= $r1['color'] ?>; height: <?= $r1['length'] ?>vh;">
|
|
<?= $r1['title'] ?>
|
|
</div>
|
|
<?php
|
|
}
|
|
?>
|
|
</div>
|
|
|
|
<div id="jeudi" class="column jeudi">
|
|
<div class="day_title">J</div>
|
|
|
|
<?php
|
|
// For every planned activity on day 0
|
|
$req1 = $db->prepare('SELECT title, description, color, length FROM planning_insa WHERE day = 4 AND num_planning = ? ORDER BY order_start ASC');
|
|
$req1->execute(array($planning));
|
|
while($r1 = $req1->fetch()) {
|
|
?>
|
|
<div class="class" data-description="<?=$r1['description']?>" style="background-color: <?= $r1['color'] ?>; height: <?= $r1['length'] ?>vh;">
|
|
<?= $r1['title'] ?>
|
|
</div>
|
|
<?php
|
|
}
|
|
?>
|
|
</div>
|
|
|
|
<div id="vendredi" class="column vendredi">
|
|
<div class="day_title">V</div>
|
|
|
|
<?php
|
|
// For every planned activity on day 0
|
|
$req1 = $db->prepare('SELECT title, description, color, length FROM planning_insa WHERE day = 5 AND num_planning = ? ORDER BY order_start ASC');
|
|
$req1->execute(array($planning));
|
|
while($r1 = $req1->fetch()) {
|
|
?>
|
|
<div class="class" data-description="<?=$r1['description']?>" style="background-color: <?= $r1['color'] ?>; height: <?= $r1['length'] ?>vh;">
|
|
<?= $r1['title'] ?>
|
|
</div>
|
|
<?php
|
|
}
|
|
?>
|
|
</div>
|
|
|
|
<div id="samedi" class="column samedi">
|
|
<div class="day_title">S</div>
|
|
<?php
|
|
// For every planned activity on day 0
|
|
$req1 = $db->prepare('SELECT title, description, color, length FROM planning_insa WHERE day = 6 AND num_planning = ? ORDER BY order_start ASC');
|
|
$req1->execute(array($planning));
|
|
while($r1 = $req1->fetch()) {
|
|
?>
|
|
<div class="class" data-description="<?=$r1['description']?>" style="background-color: <?= $r1['color'] ?>; height: <?= $r1['length'] ?>vh;">
|
|
<?= $r1['title'] ?>
|
|
</div>
|
|
<?php
|
|
}
|
|
?>
|
|
</div>
|
|
|
|
<div id="dimanche" class="column dimanche">
|
|
<div class="day_title">D</div>
|
|
|
|
<?php
|
|
// For every planned activity on day 0
|
|
$req1 = $db->prepare('SELECT title, description, color, length FROM planning_insa WHERE day = 7 AND num_planning = ? ORDER BY order_start ASC');
|
|
$req1->execute(array($planning));
|
|
while($r1 = $req1->fetch()) {
|
|
?>
|
|
<div class="class" data-description="<?=$r1['description']?>" style="background-color: <?= $r1['color'] ?>; height: <?= $r1['length'] ?>vh;">
|
|
<?= $r1['title'] ?>
|
|
</div>
|
|
<?php
|
|
}
|
|
?>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
<?php
|
|
//début download planning avec php2ics (doc ici => https://github.com/baptistereb/php2ics)
|
|
include("assets/script/php2ics.php");
|
|
|
|
|
|
if(isset($_POST['download_planning'])) {
|
|
$cal = new php2ics("accueil_insa", "voila les loustiks");
|
|
|
|
for($day = 1; $day <= 7; $day++) { //on tourne sur les 7 jours
|
|
$hours_beginning = (int) 7; //commence à 7h tout les matin
|
|
$day_beginning = (int) 5; //commence le 5 septembre (premier jour = 5 septembre)
|
|
|
|
$hours = $hours_beginning;
|
|
$minute = 0;
|
|
|
|
$reqcal = $db->prepare('SELECT id,title, description, length FROM planning_insa WHERE day = ? AND num_planning = ? ORDER BY order_start ASC');
|
|
$reqcal->execute(array($day, $planning));
|
|
while($c = $reqcal->fetch()) {
|
|
//le planning commence à $hours_beginning le $day_beginning et sous forme : date('Y-m-d H:i:s')
|
|
if($c['title'] == " ") { //si le titre est vide c'est qu'il n'y a rien
|
|
$time = (float) $c['length']/4.1;
|
|
$hours += floor($time);
|
|
$minute += 60*($time-floor($time));
|
|
} else {
|
|
$begin_hours = $hours;
|
|
$begin_min = $minute;
|
|
$time = (float) $c['length']/4.1;
|
|
$hours += floor($time);
|
|
$minute += round(60*($time-floor($time)),3);
|
|
while($minute >= 60) {
|
|
$minute -= 60;
|
|
$hours++;
|
|
}
|
|
while($hours >= 24) {
|
|
$hours --; //bon la on tronque entre les jours sinon c'est hyper relou à coder pour rien
|
|
}
|
|
|
|
//pour tester décommenter la ligne juste en dessous
|
|
//echo $c['title'].": ".$begin_hours.'h'.$begin_min.'m to :'.$hours.'h'.$minute.'m<br>';
|
|
|
|
//mktime => hours, minute, second, month, day, year
|
|
$btime = mktime($begin_hours, $begin_min, 0, 9, $day_beginning+$day-1, 2022);
|
|
$etime = mktime($hours, $minute, 0, 9, $day_beginning+$day-1, 2022);
|
|
$cal->AddEvent($c['title'], $c['description'], $btime, $etime, "INSA Toulouse", "https://etud.insa-toulouse.fr/~accueil_insa/planning.php");
|
|
|
|
}
|
|
}
|
|
}
|
|
|
|
$cal->End();
|
|
$cal->DownloadICS("planning_semaine_accueil_insa_toulouse");
|
|
}
|
|
//fin download planning
|
|
?>
|
|
|
|
<!--<form method="POST">
|
|
<input type="submit" name="download_planning" value="télécharger le planning" class="submit">
|
|
</form>-->
|
|
|
|
|
|
|
|
|
|
<!-- needed for showing custom alert -->
|
|
<script src="//cdn.jsdelivr.net/npm/sweetalert2@11"></script>
|
|
|
|
<script>
|
|
|
|
const pln_cases = document.getElementsByClassName("class");
|
|
for (let i = 0; i < pln_cases.length; i++) {
|
|
let current = pln_cases[i];
|
|
|
|
current.addEventListener("click", (e) => {
|
|
Swal.fire({
|
|
title: '<strong id="modal-title">' + current.innerHTML.trim() + '</strong>',
|
|
html: current.dataset.description
|
|
})
|
|
})
|
|
}
|
|
|
|
</script>
|
|
|
|
<?php } else { ?>
|
|
|
|
<section>
|
|
Clique sur le planning que tu souhaites visionner : <br>
|
|
<font color="red">On les a pas encore en fait</font>
|
|
</section>
|
|
|
|
<?php } ?>
|
|
|
|
</main>
|
|
|
|
<?php
|
|
$infopage = ["", "Planning", ob_get_clean(), "", "planning"]; //relativepath, pagetitle, pagecontent, pagescript, pagename | cf structure/template.php ligne 2 à 6
|
|
include("structure/template.php");
|
|
?>
|