Mise à jour des fichiers CSS, ajout des mécanismes de mise à jour de Ship2net avec info sur la page du bateau.
This commit is contained in:
@@ -0,0 +1,69 @@
|
||||
<?php
|
||||
//************************************************************************************************************
|
||||
// bateau_mesures.php - Données d'une courbe historique, pour la page "Données du bateau" (synthèse §50, étape 3c).
|
||||
// Paramètres (GET) : bateau, generation (0 = génération active), type (circuits, capteurs, batteries, reservoirs),
|
||||
// element, variable (circuits, batteries), periode (24h, 7j, 30j, 3m, 1a). Réponse JSON (cf Courbe_element()).
|
||||
// Droits : ceux de la page du bateau - administrateur, ou accès actif à ce bateau avec un type d'accès autorisant la
|
||||
// consultation des données ; la génération doit appartenir au bateau.
|
||||
//************************************************************************************************************
|
||||
// Réponse JSON : aucun avertissement PHP ne doit s'y écrire (il la rendrait illisible) - ils vont dans le journal.
|
||||
ini_set('display_errors', '0');
|
||||
require_once("../config/config.php");
|
||||
Init_session(basename(__FILE__));
|
||||
|
||||
header('Content-Type: application/json; charset=UTF-8');
|
||||
header('Cache-Control: no-store');
|
||||
|
||||
function Repondre($code_http, $donnees)
|
||||
{
|
||||
http_response_code($code_http);
|
||||
echo json_encode($donnees, JSON_UNESCAPED_UNICODE | JSON_INVALID_UTF8_SUBSTITUTE); // Caractère mal encodé : remplacé, pas d'échec
|
||||
exit();
|
||||
}
|
||||
|
||||
if (empty($_SESSION['acces_valide'])) Repondre(401, array('erreur' => "session expirée"));
|
||||
|
||||
$id_bateau = (int)($_GET['bateau'] ?? 0);
|
||||
$id_generation = (int)($_GET['generation'] ?? 0);
|
||||
$type = (string)($_GET['type'] ?? '');
|
||||
$id_element = (int)($_GET['element'] ?? 0);
|
||||
$variable = (string)($_GET['variable'] ?? '');
|
||||
$periode = (string)($_GET['periode'] ?? '');
|
||||
$est_administrateur = ((int)$_SESSION['shipmember']['Niveau_acces'] >= NIVEAU_ACCES_MINI_ADMINISTRATEUR) ? 1 : 0;
|
||||
|
||||
Ouverture_bdd();
|
||||
|
||||
// Bateau accessible (et date de la dernière archive) :
|
||||
$reponse = Requete_preparee_bdd("SELECT B.Date_derniere_maj FROM TB_Bateaux B
|
||||
WHERE B.Cle_primaire=? AND B.Validite=1
|
||||
AND (? = 1 OR EXISTS (SELECT 1 FROM TB_Lien_bateau_shipmember L
|
||||
JOIN TB_Types_acces_bateau_shipmember T ON T.Cle_primaire = L.ID_Type_acces_bateau_shipmember
|
||||
WHERE L.ID_Bateau=B.Cle_primaire AND L.ID_Shipmember=? AND L.Statut='actif'
|
||||
AND L.Fin_validite >= NOW() AND T.Consultation_donnees >= 1))",
|
||||
array(array('i', $id_bateau), array('i', $est_administrateur), array('i', $_SESSION['shipmember']['Cle_primaire'])),
|
||||
__FILE__, __LINE__);
|
||||
$bateau = Recherche_ligne_bdd($reponse, MYSQLI_ASSOC);
|
||||
Liberation_jeu_de_resultat_bdd($reponse);
|
||||
if (!$bateau) { Fermeture_bdd(); Repondre(403, array('erreur' => "accès refusé")); }
|
||||
|
||||
// Génération : celle demandée si elle appartient à ce bateau, sinon la génération active :
|
||||
$generation = null;
|
||||
foreach (Generations_bateau($id_bateau) as $g)
|
||||
{
|
||||
if ((int)$g['Cle_primaire'] == $id_generation) { $generation = $g; break; }
|
||||
if ($g['Date_fin'] === null && $generation === null) $generation = $g;
|
||||
}
|
||||
Fermeture_bdd();
|
||||
if ($generation === null) Repondre(404, array('erreur' => "aucune donnée pour ce bateau"));
|
||||
|
||||
// Fin de la courbe : dernière archive (génération active) ou fin de la génération (génération antérieure) :
|
||||
$date_fin = ($generation['Date_fin'] === null) ? $bateau['Date_derniere_maj'] : $generation['Date_fin'];
|
||||
if ($date_fin === null) Repondre(404, array('erreur' => "aucune archive reçue"));
|
||||
|
||||
$db = Connexion_generation($generation['Nom_base']);
|
||||
if ($db === null) Repondre(503, array('erreur' => "données momentanément inaccessibles"));
|
||||
$courbe = Courbe_element($db, $type, $id_element, $variable, $periode, $date_fin);
|
||||
$db->close();
|
||||
|
||||
if (isset($courbe['erreur'])) Repondre(400, $courbe);
|
||||
Repondre(200, $courbe);
|
||||
Reference in New Issue
Block a user