Attention ! Gitlab fournissant maintenant nativement des certificats Let’s Encrypt aux domaines personnalisés des Gitlab Pages, nous avons coupé notre service qui le faisait automatiquement pour vous.

Il est impératif, pour que votre domaine personnalisé continue à avoir un certificat Let’s Encrypt à jour, d’activer la fonctionnalité native dans les paramètres de votre projet. Cette activation remplacera votre certificat actuel par un nouveau certificat Let’s Encrypt géré par Gitlab.

Voir les détails sur https://docs.framasoft.org/fr/gitlab/gitlab-pages-le.html

Commit 5df1a518 authored by JonathanMM's avatar JonathanMM

WIP : Utilisation d'un moteur de templates

parent bb76d9ed
......@@ -6,4 +6,6 @@ script/__pycache__/
script/fixStation.py
*.zip
*.db
.vscode
\ No newline at end of file
.vscode
templates_c/*
!templates_c/README.md
\ No newline at end of file
......@@ -2,15 +2,20 @@
require_once('config.php');
include_once('functions.php');
error_reporting(E_ALL);
if(!isset($_GET['action']) || strlen($_GET['action']) == 0)
exit();
if(!isset($_GET['codeStation']) || intval($_GET['codeStation']) == 0)
if((!isset($_GET['codeStation']) || intval($_GET['codeStation']) == 0) && (!isset($_GET['idConso']) || intval($_GET['idConso']) == 0))
exit();
header('Content-Type: application/json');
$codeStation = intval($_GET['codeStation']);
if(isset($_GET['codeStation']))
$codeStation = intval($_GET['codeStation']);
if(isset($_GET['idConso']))
$idConso = intval($_GET['idConso']);
switch($_GET['action'])
{
......@@ -98,6 +103,10 @@ switch($_GET['action'])
echo json_encode(getConsoBikeResume("-1month", 360));
exit();
break;
case 'getDataConso':
echo json_encode(getDataConso($idConso));
exit();
break;
}
function getBikeInstantane($codeStation)
......@@ -729,4 +738,27 @@ function getDataConsoBikeResume($filtre, $periode)
)
);
}
function getDataConso($idConso)
{
global $pdo;
$requete = $pdo->query('SELECT * FROM status inner join `stations` on stations.code = status.code WHERE idConso = '.$idConso.' order by status.code asc');
$data = $requete->fetchAll(PDO::FETCH_ASSOC);
$retour = [];
foreach($data as $station)
{
$retour[] = array(
'code' => $station['code'],
'codeStr' => displayCodeStation($station['code']),
'name' => $station['name'],
'dateOuverture' => is_null($station['dateOuverture']) ? 'Non ouvert' : $station['dateOuverture'],
'state' => (($station['state'] == 'Operative' && $station['nbEDock'] != 0) ? 'Ouverte' : 'En travaux'),
'nbBike' => $station['nbBike'],
'nbEbike' => $station['nbEBike'],
'nbFreeEDock' => $station['nbFreeEDock'],
'nbEDock' => $station['nbEDock']
);
}
return array('data' => $retour);
}
?>
\ No newline at end of file
<?php
require_once('config.php');
include_once('functions.php');
require_once('libs/Smarty.class.php');
$smarty = new Smarty();
//Filtre 24 heures
$hier = new DateTime("-1day");
......@@ -10,127 +13,17 @@ $filtreDate = $hier->format('Y-m-d H:i:s');
$requete = $pdo->query('SELECT * FROM `statusConso` where nbStation Is not null and date >= "'.$filtreDate.'" Order by id desc limit 0,1');
$conso = $requete->fetch();
//Stations
if(is_null($conso['id']))
$statusStation = array();
else
{
$requete = $pdo->query('SELECT * FROM status inner join `stations` on stations.code = status.code WHERE idConso = '.$conso['id'].' order by status.code asc');
$statusStation = $requete->fetchAll();
}
?>
<!DOCTYPE html>
<html>
<head>
<title>Vélib Stats (site non officiel)</title>
<script type="application/javascript" src="Chart.min.js"></script>
<script type="application/javascript" src="jquery-3.2.1.min.js"></script>
<link rel="stylesheet" type="text/css" href="datatables.min.css"/>
<script type="text/javascript" src="datatables.min.js"></script>
<script type="text/javascript" src="script.js"></script>
<style type="text/css">
table, tr, td, th
{
border: 1px solid black;
}
td
{
text-align: center;
}
</style>
</head>
<body>
<h1>Vélib Stats (site non officiel)</h1>
<ul>
<li>Nombre de stations ouvertes annoncées (<abbr title="Stations affichées comme étant ouverte">définition</abbr>) : <?php echo $conso['nbStation']; ?></li>
<li>Nombre de stations ouvertes détectées (<abbr title="Stations avec un nombre de bornes positifs avec au moins un vélo ou une borne libre">définition</abbr>) : <?php echo $conso['nbStationDetecte']; ?></li>
<li>Nombre de vélos mécaniques disponible : <?php echo $conso['nbBike']; ?></li>
<li>Nombre de vélos électriques disponible : <?php echo $conso['nbEbike']; ?></li>
<li>Nombre de bornes libres : <?php echo $conso['nbFreeEDock']; ?></li>
<li>Nombre de bornes total : <?php echo $conso['nbEDock']; ?></li>
</ul>
<i>Dernière mise à jour : <?php echo $conso['date']; ?></i><br />
<select id="typeGraphiqueSelect" style="display: none">
<option value="_double">Conso</option>
</select>
<select id="dureeGraphiqueSelect">
<option value="instantanee">Une heure - Instantanée</option>
<option value="troisHeures">Trois heures - Période de 5 minutes</option>
<option value="unJour">Un jour - Période de 15 minutes</option>
<option value="septJours" selected>Une semaine - Période d'une heure</option>
<option value="unMois">Un mois - Période de six heures</option>
</select> Graphique issu du site velib.nocle.fr
<canvas id="chartNbStations" width="1000" height="400"></canvas>
<canvas id="chartBikes" width="1000" height="400"></canvas>
<i>Ce site n'est pas un site officiel de vélib métropole. Les données utilisées proviennent de <a href="http://www.velib-metropole.fr">www.velib-metropole.fr</a> et appartienne à leur propriétaire. - <a href="https://framagit.org/JonathanMM/velibstats">Site du projet</a> -
Auteur : JonathanMM (<a href="https://twitter.com/Jonamaths">@Jonamaths</a>)</i>
<h2>Stations</h2>
Fitrer : État
<select id="filtreEtat">
<option value="toutes">Toutes</option>
<option value="ouverte" selected>Ouverte</option>
<option value="travaux">En travaux</option>
</select>
<table id="stations">
<thead>
<tr>
<th>Code</th>
<th>Nom</th>
<th>Date d'ouverture</th>
<th>Statut</th>
<th>Vélos mécaniques dispo</th>
<th>Vélos électriques dispo</th>
<th>Bornes libres</th>
</tr>
</thead>
<tbody>
<?php
foreach($statusStation as $station)
{
echo '<tr>';
echo '<td><a href="station.php?code='.$station['code'].'">'.displayCodeStation($station['code']).'</a></td>';
echo '<td>'.$station['name'].'</td>';
echo '<td>'.$station['dateOuverture'].'</td>';
echo '<td>'.(($station['state'] == 'Operative' && $station['nbEDock'] != 0) ? 'Ouverte' : 'En travaux').'</td>';
echo '<td>'.$station['nbBike'].'</td>';
echo '<td>'.$station['nbEBike'].'</td>';
echo '<td>'.$station['nbFreeEDock'].'/'.$station['nbEDock'].'</td>';
echo '</tr>';
}
?>
</tbody>
</table>
<script type="text/javascript">
var codeStation = -1;
</script>
<script type="application/javascript">
function filtreDataTable()
{
var valeur = $("#filtreEtat").val();
var dt = $('#stations').DataTable();
switch (valeur) {
case "ouverte":
dt.column(3).search("Ouverte").draw();
break;
case "travaux":
dt.column(3).search("En travaux").draw();
break;
default:
dt.column(3).search("").draw();
break;
}
}
$smarty->assign(array(
'idConso' => $conso['id'],
'nbStation' => $conso['nbStation'],
'nbStationDetecte' => $conso['nbStationDetecte'],
'nbBike' => $conso['nbBike'],
'nbEbike' => $conso['nbEbike'],
'nbEDock' => $conso['nbEDock'],
'nbFreeEDock' => $conso['nbFreeEDock'],
'dateDerniereConso' => $conso['date']
));
$(document).ready( function () {
var dt = $('#stations').DataTable({
language: dtTraduction
});
filtreDataTable();
$("#filtreEtat").change(filtreDataTable);
} );
</script>
</body>
</html>
\ No newline at end of file
$smarty->display('index.tpl');
exit();
?>
\ No newline at end of file
<!DOCTYPE html>
<html>
<head>
<title>Vélib Stats (site non officiel)</title>
<script type="application/javascript" src="Chart.min.js"></script>
<script type="application/javascript" src="jquery-3.2.1.min.js"></script>
<link rel="stylesheet" type="text/css" href="datatables.min.css"/>
<script type="text/javascript" src="datatables.min.js"></script>
<script type="text/javascript" src="script.js"></script>
<style type="text/css">
table, tr, td, th
{
border: 1px solid black;
}
td
{
text-align: center;
}
</style>
</head>
<body>
<h1>Vélib Stats (site non officiel)</h1>
<ul>
<li>Nombre de stations ouvertes annoncées (<abbr title="Stations affichées comme étant ouverte">définition</abbr>) : {$nbStation}</li>
<li>Nombre de stations ouvertes détectées (<abbr title="Stations avec un nombre de bornes positifs avec au moins un vélo ou une borne libre">définition</abbr>) : {$nbStationDetecte}</li>
<li>Nombre de vélos mécaniques disponible : {$nbBike}</li>
<li>Nombre de vélos électriques disponible : {$nbEbike}</li>
<li>Nombre de bornes libres : {$nbFreeEDock}</li>
<li>Nombre de bornes total : {$nbEDock}</li>
</ul>
<i>Dernière mise à jour : {$dateDerniereConso}</i><br />
<select id="typeGraphiqueSelect" style="display: none">
<option value="_double">Conso</option>
</select>
<select id="dureeGraphiqueSelect">
<option value="instantanee">Une heure - Instantanée</option>
<option value="troisHeures">Trois heures - Période de 5 minutes</option>
<option value="unJour">Un jour - Période de 15 minutes</option>
<option value="septJours" selected>Une semaine - Période d'une heure</option>
<option value="unMois">Un mois - Période de six heures</option>
</select> Graphique issu du site velib.nocle.fr
<canvas id="chartNbStations" width="1000" height="400"></canvas>
<canvas id="chartBikes" width="1000" height="400"></canvas>
<i>Ce site n'est pas un site officiel de vélib métropole. Les données utilisées proviennent de <a href="http://www.velib-metropole.fr">www.velib-metropole.fr</a> et appartienne à leur propriétaire. - <a href="https://framagit.org/JonathanMM/velibstats">Site du projet</a> -
Auteur : JonathanMM (<a href="https://twitter.com/Jonamaths">@Jonamaths</a>)</i>
<h2>Stations</h2>
Fitrer : État
<select id="filtreEtat">
<option value="toutes">Toutes</option>
<option value="ouverte" selected>Ouverte</option>
<option value="travaux">En travaux</option>
</select>
<table id="stations">
<thead>
<tr>
<th>Code</th>
<th>Nom</th>
<th>Date d'ouverture</th>
<th>Statut</th>
<th>Vélos mécaniques dispo</th>
<th>Vélos électriques dispo</th>
<th>Bornes libres</th>
</tr>
</thead>
</table>
<script type="text/javascript">
var codeStation = -1;
</script>
<script type="application/javascript">
function filtreDataTable()
{
var valeur = $("#filtreEtat").val();
var dt = $('#stations').DataTable();
switch (valeur) {
case "ouverte":
dt.column(3).search("Ouverte").draw();
break;
case "travaux":
dt.column(3).search("En travaux").draw();
break;
default:
dt.column(3).search("").draw();
break;
}
}
$(document).ready( function () {
var dt = $('#stations').DataTable({
ajax: 'api.php?action=getDataConso&idConso={$idConso}',
columns: ['codeStr', 'name', 'dateOuverture', 'state', 'nbBike', 'nbEbike', 'nbFreeEDock'],
language: dtTraduction
});
filtreDataTable();
$("#filtreEtat").change(filtreDataTable);
} );
</script>
</body>
</html>
\ No newline at end of file
Ce dossier doit être en écriture, il accueil le cache des templates Smarty, utilisé pour afficher les pages du site
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment