Import initial du site ship2net.fr : pages PHP, config, traductions t(), composer.json
This commit is contained in:
@@ -0,0 +1,461 @@
|
||||
<?php
|
||||
include "../config/config.php";
|
||||
Init_session(basename($_SERVER['SCRIPT_NAME'])); // Fonction ouvrant la session et vérifiant que les accès sont autorisés.
|
||||
|
||||
Entete_page_html();
|
||||
|
||||
|
||||
//************************************************************************************************************************************
|
||||
// Initialisation des variables globales
|
||||
//************************************************************************************************************************************
|
||||
$message_erreur = "";
|
||||
$message_information = "";
|
||||
$flag_redirection = false;
|
||||
|
||||
Ouverture_bdd(); // Connexion à MySql
|
||||
|
||||
|
||||
//************************************************************************************************************************************
|
||||
// Traitement des variables d'entrées
|
||||
//************************************************************************************************************************************
|
||||
|
||||
// Variables de SESSION :
|
||||
if (!isset($_SESSION['Administration']['page'])) $_SESSION['Administration']['page'] = 'Accueil';
|
||||
if (!isset($_SESSION['Administration']['ancre'])) $_SESSION['Administration']['ancre'] = "#";
|
||||
if (!isset($_SESSION['Administration']['questionnaire'])) $_SESSION['Administration']['questionnaire'] = 'Nautic2021';
|
||||
|
||||
|
||||
// Variables GET :
|
||||
if (isset($_GET['action']))
|
||||
{
|
||||
switch ($_GET['action'])
|
||||
{
|
||||
//===================================
|
||||
case "navigation":
|
||||
{
|
||||
if (isset($_GET['destination']))
|
||||
{
|
||||
$_SESSION['Administration']['page'] = $_GET['destination'];
|
||||
$_SESSION['display_menu'] = false;
|
||||
}
|
||||
|
||||
if (isset($_GET['ancre']))
|
||||
{
|
||||
$_SESSION['Administration']['ancre'] = $_GET['ancre'];
|
||||
$_SESSION['display_menu'] = false;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
//===================================
|
||||
case "changement_langue":
|
||||
{
|
||||
if (isset($_GET['langue']))
|
||||
{
|
||||
$_SESSION['langue'] = $_GET['langue'];
|
||||
chargement_langue();
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
//===================================
|
||||
case "changement_type":
|
||||
{
|
||||
if (isset($_GET['type']))
|
||||
{
|
||||
$_SESSION['type_utilisateur'] = $_GET['type'];
|
||||
chargement_langue();
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case "toggle_edit":
|
||||
{
|
||||
if ($_SESSION['modifier_texte'] == 0) $_SESSION['modifier_texte'] = 1;
|
||||
else if ($_SESSION['modifier_texte'] == 1) $_SESSION['modifier_texte'] = 0;
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (!$flag_redirection) header('Location:administration.php');
|
||||
}
|
||||
|
||||
|
||||
// Variables POST :
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//************************************************************************************************************************************
|
||||
// Traitement des données
|
||||
//************************************************************************************************************************************
|
||||
|
||||
// Protection contre les accès directs :
|
||||
if ((!$_SESSION['acces_valide']) OR ($_SESSION['shipmember']['Niveau_acces'] < NIVEAU_MINI_ACCES_ADMINISTATEUR)) header('Location:shipmembers.php?action=navigation&destination=Login');
|
||||
|
||||
switch ($_SESSION['Administration']['page'])
|
||||
{
|
||||
//****************************************************************************************************************************
|
||||
case "Accueil":
|
||||
{
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
//****************************************************************************************************************************
|
||||
case "Purge_bdd":
|
||||
{
|
||||
$nb_tables = 0;
|
||||
$tables[$nb_tables ++]['Nom'] = "TB_BATEAUX_Mesures_circuits";
|
||||
$tables[$nb_tables ++]['Nom'] = "TB_BATEAUX_Mesures_batteries";
|
||||
$tables[$nb_tables ++]['Nom'] = "TB_BATEAUX_Mesures_reservoirs";
|
||||
$tables[$nb_tables ++]['Nom'] = "TB_BATEAUX_Mesures_capteurs";
|
||||
|
||||
$max_lignes_traitees = 500000;
|
||||
|
||||
for ($x = 0; $x < $nb_tables; $x ++)
|
||||
{
|
||||
$nom_table = $tables[$x]['Nom'];
|
||||
|
||||
$start_time = microtime(true);
|
||||
|
||||
//------------------------------------------------------
|
||||
// Recherche de la taille de la table avant traitement :
|
||||
$requete = 'SELECT COUNT(*) AS Nb FROM '.$nom_table.' ';
|
||||
$reponse = Requete_bdd($requete, __FILE__, __LINE__);
|
||||
while ($donnees = Recherche_ligne_bdd($reponse))
|
||||
{
|
||||
$taille_table_avant_traitement = $donnees['Nb'];
|
||||
}
|
||||
Liberation_jeu_de_resultat_bdd($reponse);
|
||||
|
||||
//---------------------------------------------------
|
||||
// Recherche des bateaux concernés dans cette table :
|
||||
$nb_bateaux = 0;
|
||||
$requete = 'SELECT DISTINCT(ID_Bateau) FROM '.$nom_table.' WHERE 1';
|
||||
$reponse = Requete_preparee_bdd($requete,
|
||||
array(),
|
||||
__FILE__, __LINE__);
|
||||
|
||||
while ($donnees = Recherche_ligne_bdd($reponse))
|
||||
{
|
||||
$bateaux[$nb_bateaux ++] = $donnees;
|
||||
}
|
||||
Liberation_jeu_de_resultat_bdd($reponse);
|
||||
|
||||
//--------------------------------------------------------------------------------------------------------
|
||||
// Boucle sur tous les bateaux pour rechercher les éléments concernés par chaque bateau dans cette table :
|
||||
for ($i = 0; $i < $nb_bateaux ; $i ++)
|
||||
{
|
||||
// Recherche des éléments (circuits, réservoirs, batteries, ...) concernés sur chaque bateau :
|
||||
$bateaux[$i]['nb_elements'] = 0;
|
||||
$requete = 'SELECT DISTINCT(ID) FROM '.$nom_table.' WHERE ID_Bateau=? ';
|
||||
$reponse = Requete_preparee_bdd($requete,
|
||||
array(
|
||||
array('i', $bateaux[$i]['ID_Bateau'])),
|
||||
__FILE__, __LINE__);
|
||||
|
||||
while ($donnees = Recherche_ligne_bdd($reponse))
|
||||
{
|
||||
$bateaux[$i][$bateaux[$i]['nb_elements'] ++] = $donnees['ID'];
|
||||
// echo '<p>'.$bateaux[$i]['nb_elements'].' : ID = '.$donnees['ID'].'</p>';
|
||||
}
|
||||
Liberation_jeu_de_resultat_bdd($reponse);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Boucle sur tous les bateaux pour traiter les entrées redondantes:
|
||||
$nb_total_lignes_supprimees = 0;
|
||||
for ($i = 0; $i < $nb_bateaux ; $i ++)
|
||||
{
|
||||
// Boucle sur tous les éléments :
|
||||
for ($j = 0; $j < $bateaux[$i]['nb_elements']; $j ++)
|
||||
{
|
||||
$nb_redondants = 0;
|
||||
$val_1 = -1;
|
||||
$val_2 = 0;
|
||||
$id_2 = 0;
|
||||
$requete = 'SELECT Cle_primaire, Date, Valeur FROM '.$nom_table.' WHERE ID_Bateau=? AND ID=? ORDER BY Date ';
|
||||
$reponse = Requete_preparee_bdd($requete,
|
||||
array(
|
||||
array('i', $bateaux[$i]['ID_Bateau']),
|
||||
array('i', $bateaux[$i][$j])),
|
||||
__FILE__, __LINE__);
|
||||
while ($donnees = Recherche_ligne_bdd($reponse))
|
||||
{
|
||||
// Recherche des conditions de redondance :
|
||||
if (($val_1 == $val_2) AND ($val_2 == $donnees['Valeur'])) // Si la valeur actuelle est égale à la précédente et à celle encore avant :
|
||||
{
|
||||
$redondants[$nb_redondants ++] = $id_2; // ... on mémorise l'entrée intermédiaire (N-1)
|
||||
$nb_total_lignes_supprimees ++;
|
||||
if ($nb_total_lignes_supprimees >= $max_lignes_traitees) break;
|
||||
}
|
||||
|
||||
$val_1 = $val_2;
|
||||
$val_2 = $donnees['Valeur'];
|
||||
$id_2 = $donnees['Cle_primaire'];
|
||||
}
|
||||
Liberation_jeu_de_resultat_bdd($reponse);
|
||||
|
||||
|
||||
// Suppression des enregistrements redondants :
|
||||
for ($k = 0; $k < $nb_redondants; $k ++)
|
||||
{
|
||||
// Création d'une chaine avec les différentes clés à supprimer afin de réduire le nombre de requêtes DELETE (impact sur temps de traitement d'environ / 50 avec la valeur de 100) :
|
||||
$max_l = 100;
|
||||
$chaine_cles_primaires = '(Cle_primaire='.$redondants[$k ++].' ';
|
||||
if ($k < ($nb_redondants - 1))
|
||||
{
|
||||
for ($l = 1; $l < $max_l; $l ++)
|
||||
{
|
||||
$chaine_cles_primaires .= 'OR Cle_primaire='.$redondants[$k].' ';
|
||||
if (($k >= ($nb_redondants - 1)) OR ($l >= ($max_l - 1))) break;
|
||||
$k ++;
|
||||
}
|
||||
}
|
||||
$chaine_cles_primaires .= ')';
|
||||
|
||||
$requete = 'DELETE FROM '.$nom_table.' WHERE ID_Bateau='.$bateaux[$i]['ID_Bateau'].' AND '.$chaine_cles_primaires.' ';
|
||||
// echo 'Requête = ['.$requete.']<br />';
|
||||
Requete_bdd($requete, __FILE__, __LINE__); // Pas de requête préparée pour accélérer le traitement...
|
||||
}
|
||||
if ($nb_total_lignes_supprimees >= $max_lignes_traitees) break;
|
||||
}
|
||||
if ($nb_total_lignes_supprimees >= $max_lignes_traitees) break;
|
||||
}
|
||||
|
||||
// Recherche de la taille de la table après traitement :
|
||||
$requete = 'SELECT COUNT(*) AS Nb FROM '.$nom_table.' ';
|
||||
$reponse = Requete_bdd($requete, __FILE__, __LINE__);
|
||||
while ($donnees = Recherche_ligne_bdd($reponse))
|
||||
{
|
||||
$taille_table_apres_traitement = $donnees['Nb'];
|
||||
}
|
||||
Liberation_jeu_de_resultat_bdd($reponse);
|
||||
|
||||
// Calculate script execution time
|
||||
$execution_time = number_format((microtime(true) - $start_time), 1, ".", " ");
|
||||
|
||||
|
||||
|
||||
$tables[$x]['Taille_avant_traitement'] = $taille_table_avant_traitement;
|
||||
$tables[$x]['Nb_total_lignes_supprimees'] = $nb_total_lignes_supprimees;
|
||||
$tables[$x]['Execution_time'] = $execution_time;
|
||||
$tables[$x]['Taille_apres_traitement'] = $taille_table_apres_traitement;
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
//****************************************************************************************************************************
|
||||
case "Questionnaires":
|
||||
{
|
||||
switch($_SESSION['Administration']['questionnaire'])
|
||||
{
|
||||
default:
|
||||
{
|
||||
$message_erreur .= "Le questionnaire ".$_SESSION['Administration']['questionnaire']." est inconnu. Le questionnaire en cours est repassé à sa valeur par défaut.";
|
||||
$_SESSION['Administration']['questionnaire'] = "Nautic2021";
|
||||
}
|
||||
case "Nautic2021" :
|
||||
{
|
||||
$table_questionnaire = "TB_Nautic2021";
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// Nombre de réponses :
|
||||
$requete = 'SELECT COUNT(*) AS Nb FROM '.$table_questionnaire.' WHERE Validite=1';
|
||||
$reponse = Requete_preparee_bdd($requete,
|
||||
array(),
|
||||
__FILE__, __LINE__);
|
||||
while ($donnees = Recherche_ligne_bdd($reponse))
|
||||
{
|
||||
$reponses_questionnaire['Nb'] = $donnees['Nb'];
|
||||
}
|
||||
Liberation_jeu_de_resultat_bdd($reponse);
|
||||
|
||||
|
||||
// Dernier enregistrement :
|
||||
$requete = 'SELECT DATE_FORMAT(Date_creation,"%d/%m/%Y à %H:%i:%s") as Date_creation FROM '.$table_questionnaire.' WHERE Validite=1 ORDER BY Date_creation DESC LIMIT 1';
|
||||
// echo 'Requête = '.$requete.'<br />';
|
||||
$reponse = Requete_preparee_bdd($requete,
|
||||
array(),
|
||||
__FILE__, __LINE__);
|
||||
while ($donnees = Recherche_ligne_bdd($reponse))
|
||||
{
|
||||
$reponses_questionnaire['Date_creation'] = $donnees['Date_creation'];
|
||||
}
|
||||
Liberation_jeu_de_resultat_bdd($reponse);
|
||||
|
||||
// Nombre d'enregistrements par jour :
|
||||
$nb_jours = 0;
|
||||
$requete = 'SELECT COUNT(*) as Nb_jours, DATE_FORMAT(Date_creation, "%d-%m-%Y") as Date_creations FROM '.$table_questionnaire.' WHERE Validite=1 GROUP BY DATE_FORMAT(Date_creation, "%Y-%m-%d")';
|
||||
// echo 'Requête = '.$requete.'<br />';
|
||||
$reponse = Requete_preparee_bdd($requete,
|
||||
array(),
|
||||
__FILE__, __LINE__);
|
||||
while ($donnees = Recherche_ligne_bdd($reponse))
|
||||
{
|
||||
$reponses_questionnaire['Creations_par_jour'][$nb_jours ++] = $donnees;
|
||||
}
|
||||
Liberation_jeu_de_resultat_bdd($reponse);
|
||||
|
||||
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
Fermeture_bdd(); // Déconnexion de MySQL
|
||||
|
||||
//************************************************************************************************************************************
|
||||
// Affichage
|
||||
//************************************************************************************************************************************
|
||||
|
||||
|
||||
//********************************************************************************************************************************
|
||||
// Affichage principal :
|
||||
echo '<div id="Administration">';
|
||||
|
||||
//=========================================================================================
|
||||
// Entête :
|
||||
Entete_page($message_erreur, $message_information);
|
||||
|
||||
switch ($_SESSION['Administration']['page'])
|
||||
{
|
||||
//************************************************************************************************************************
|
||||
case "Accueil":
|
||||
{
|
||||
echo '<div id="accueil" class="page_principale">';
|
||||
|
||||
echo '<h1>Administration</h1>';
|
||||
|
||||
echo '<h2>Accueil</h2>';
|
||||
echo '<p>Attention : toute la partie Administration n\'est disponible qu\'en français.</p>';
|
||||
|
||||
echo '<h2>ShipMembers et Bateaux</h2>';
|
||||
echo '<div class="boutons_bas_de_page">';
|
||||
echo '<a title="" href="shipmembers.php?action=navigation&destination=Administration">ShipMembers</a>';
|
||||
echo '<a title="" href="bateaux.php?action=navigation&destination=Accueil">Gestion des bateaux</a>';
|
||||
echo '</div>';
|
||||
|
||||
echo '<h2>Site web</h2>';
|
||||
echo '<div class="boutons_bas_de_page">';
|
||||
// echo '<a title="" href="administration.php?action=navigation&destination=Commandes">Commandes</a>';
|
||||
echo '<a title="" href="faq.php?action=navigation&destination=Administration">Faq</a>';
|
||||
echo '<a title="" href="actualites.php?action=navigation&destination=Administration">Actualités</a>';
|
||||
echo '<a title="" href="produit_desc.php?action=navigation&destination=Administration">Produits</a>';
|
||||
echo '<a title="" href="galerie.php?action=navigation&destination=Administration">Galerie photos</a>';
|
||||
echo '<a title="" href="videos.php?action=navigation&destination=Administration">Videos</a>';
|
||||
echo '<a title="" href="devis.php?action=navigation&destination=Administration">Devis</a>';
|
||||
// echo '<a title="" href="administration.php?action=navigation&destination=Questionnaires">Questionnaires</a>';
|
||||
echo '<a title="" href="textes.php?action=navigation&destination=Accueil">Gestion des textes</a>';
|
||||
echo '</div>';
|
||||
|
||||
echo '<h2>Technique</h2>';
|
||||
echo '<div class="boutons_bas_de_page">';
|
||||
echo '<a title="" href="versions.php?action=navigation&destination=Accueil">Gestion des versions</a>';
|
||||
echo '<a title="" href="cartes.php?action=navigation&destination=Accueil">Gestion des cartes</a>';
|
||||
echo '<a title="" href="uploads.php?action=navigation&destination=Accueil" onclick="return confirm(\'Vous êtes sur vous voulez traiter les uploads ?\');">Traitement des uploads</a>';
|
||||
//echo '<a title="" href="c_tech_api.php" onclick="return confirm(\'Etes-vous sûr de vouloir lancer le traitement de l\'API C-Technology ?\');">Traitement de l\'API C-Technology</a>';
|
||||
//echo '<a title="" href="data_treatment.php" onclick="return confirm(\'Etes-vous sûr de vouloir lancer DATE_TREATMENT.PHP pour traiter les tables [old] ?\');">Traitement des tables OLD</a>';
|
||||
//echo '<a title="" href="administration.php?action=navigation&destination=Purge_bdd" onclick="return confirm(\'Vous allez faire un purge de la BDD, avancer ?\');">Purge de la BDD</a>';
|
||||
//echo '<a title="" href="check_payments.php?verbose">Test check factures</a>';
|
||||
echo '</div>';
|
||||
|
||||
echo '<div class="boutons_bas_de_page">';
|
||||
echo '<a title="" href="shipmembers.php?action=navigation&destination=Accueil">Retour au menu ShipMember</a>';
|
||||
echo '</div>';
|
||||
|
||||
echo '</div>';
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
//************************************************************************************************************************
|
||||
case "Purge_bdd":
|
||||
{
|
||||
echo '<div id="purge_bdd" class="page_principale">';
|
||||
|
||||
echo '<h1>Administration</h1>';
|
||||
|
||||
echo '<h2>Purge de la base de données</h2>';
|
||||
|
||||
for ($x = 0; $x < $nb_tables; $x ++)
|
||||
{
|
||||
echo '<h3>'.$tables[$x]['Nom'].'</h3>';
|
||||
echo '<p>Taille de la table AVANT traitement = <span class="gras">'.number_format($tables[$x]['Taille_avant_traitement'], 0, ".", " ").'</span> lignes</p>';
|
||||
echo '<p>Le nombre total de lignes supprimées est de <span class="gras">'.number_format($tables[$x]['Nb_total_lignes_supprimees'], 0, ".", " ").'</span> (maxi = '.number_format($max_lignes_traitees, 0, ".", " ").') en '.$tables[$x]['Execution_time'].' secondes</p>';
|
||||
echo '<p>Taille de la table APRES traitement = <span class="gras">'.number_format($tables[$x]['Taille_apres_traitement'], 0, ".", " ").'</span> lignes</p>';
|
||||
}
|
||||
|
||||
echo '<div class="boutons_bas_de_page">';
|
||||
echo '<a class=retour" title="" href="administration.php?action=navigation&destination=Accueil">Retour à l\'accueil</a>';
|
||||
echo '<a title="" href="administration.php?action=navigation&destination=Purge_bdd">Relancer la purge de la BDD</a>';
|
||||
echo '</div>';
|
||||
|
||||
echo '</div>';
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
//****************************************************************************************************************************
|
||||
case "Questionnaires":
|
||||
{
|
||||
echo '<div id="questionnaires" class="page_principale">';
|
||||
|
||||
echo '<h1>Administration</h1>';
|
||||
|
||||
echo '<h2>Questionnaire : '.$_SESSION['Administration']['questionnaire'].'</h2>';
|
||||
|
||||
// Nb de fiche réponse :
|
||||
echo '<div class="indicateur">
|
||||
<div class="libelle_indicateur">Le nombre total de questionnaires enregistrés est : </div>
|
||||
<div class="valeur_indicateur">'.$reponses_questionnaire['Nb'].'</div>
|
||||
</div>';
|
||||
|
||||
// Date dernière réponse :
|
||||
echo '<div class="indicateur">
|
||||
<div class="libelle_indicateur">La date du dernier formulaire rempli est : </div>
|
||||
<div class="valeur_indicateur">'.$reponses_questionnaire['Date_creation'].'</div>
|
||||
</div>';
|
||||
|
||||
// Nb créations par jour :
|
||||
echo '<div class="indicateur">';
|
||||
foreach($reponses_questionnaire['Creations_par_jour'] as $key => $creations)
|
||||
{
|
||||
echo '<div class="libelle_indicateur">Le nombre de formulaires saisis le '.$creations['Date_creations'].' est de : </div>
|
||||
<div class="valeur_indicateur">'.$creations['Nb_jours'].'</div>';
|
||||
}
|
||||
echo '</div>';
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
echo '<div class="boutons_bas_de_page">';
|
||||
echo '<a class=retour" title="" href="administration.php?action=navigation&destination=Accueil">Retour à l\'accueil</a>';
|
||||
echo '</div>';
|
||||
|
||||
echo '</div>';
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
echo '</div>';
|
||||
|
||||
Pied_de_page();
|
||||
Reference in New Issue
Block a user