Grosses mises à jour de shipmembers.php et adminstration.php pour revoir le process d'invitation sur un bateau mais aussi les sécurités de base sur les fichiers index.php et les fonctions_html.php
This commit is contained in:
+396
-344
@@ -1,344 +1,396 @@
|
||||
<?php
|
||||
|
||||
|
||||
|
||||
//************************************************************************************************************
|
||||
// Fonction : Initialisation de la session. A appeler avant tout envoi au client.
|
||||
// Reçoit : Rien
|
||||
// Retour : Rien
|
||||
//************************************************************************************************************
|
||||
function Init_session($nom_page)
|
||||
{
|
||||
ini_set('arg_separator.output', '&');
|
||||
ini_set("url_rewriter.tags","a=href,area=href,frame=src,iframe=src,input=src"); // Ces deux lignes sont destinées à faire ajouter autoamtiquement & au lieu de '&' dans la passage des variables de Session (nécessaire pour W3C validator...)
|
||||
|
||||
session_set_cookie_params([
|
||||
'lifetime' => 3600,
|
||||
'path' => '/',
|
||||
'secure' => true,
|
||||
'httponly' => true,
|
||||
'samesite' => 'Lax',
|
||||
]);
|
||||
|
||||
session_start(); // Ouverture de session (avant tout autre envoi au client!!!)
|
||||
|
||||
}
|
||||
|
||||
|
||||
//************************************************************************************************************
|
||||
// Fonction : Insertion de l'entête des pages HTML ; essentiellement la partie <header></header>.
|
||||
// Au passage, cette fonction étant la première appelée par chaque page (après l'ouverture
|
||||
// de session obligatoire pour pouvoir accéder aux variables de session), on vérifie si
|
||||
// l'environnement est correctement positionné. Si ce n'est pas le cas, par exemple avec
|
||||
// l'accès à la BDD non établi ou aucune langue sélectionnée, elle renvoit immédiatement
|
||||
// vers le fichier 'index.php' qui s'en chargera.
|
||||
// Reçoit : Rien
|
||||
// Retour : Rien
|
||||
//************************************************************************************************************
|
||||
function Entete_page_html()
|
||||
{
|
||||
// Vérification à chaque ouverture de page que les variables de session sont bien initialisées (le test se fait sur quelques "échantillons" supposés représentatifs...) :
|
||||
if ((!isset($_SESSION['langue'])) OR
|
||||
(!isset($_SESSION['display_menu']))) header('Location:index.php?origine='.basename($_SERVER['SCRIPT_FILENAME']));
|
||||
|
||||
// Entête HTML :
|
||||
echo '<!DOCTYPE html>';
|
||||
|
||||
echo '<html lang="FR">';
|
||||
|
||||
echo '<head>';
|
||||
echo '<meta charset="UTF-8">';
|
||||
echo '<title>ShipHeart - Simplicity is true luxury</title>';
|
||||
echo '<meta name="description" content="'.t("ShipHeart by Koriolan, la première centrale de vie à bord pour les bateaux de plaisance").'" />';
|
||||
echo '<meta name="keywords" content="ShipHeart" />';
|
||||
echo '<meta content="text/html" http-equiv="content-type" />';
|
||||
echo '<meta name="viewport" content="width=device-width, initial-scale=1">';
|
||||
echo '<link rel="icon" type="image/png" href="images/favicon.png" />';
|
||||
|
||||
|
||||
echo "<link href='https://fonts.googleapis.com/css?family=Montserrat' rel='stylesheet'>";
|
||||
echo "<link href='https://fonts.googleapis.com/css2?family=Oswald&display=swap' rel='stylesheet'>";
|
||||
echo "<link rel='stylesheet' href='https://unpkg.com/leaflet@1.9.4/dist/leaflet.css' integrity='sha256-p4NxAoJBhIIN+hmNHrzRCf9tD/miZyoHS5obTRR9BMY=' crossorigin=''/>";
|
||||
|
||||
echo "<link rel='stylesheet' href='/vendor/noUiSlider/dist/nouislider.min.css'>";
|
||||
echo "<script src='/vendor/noUiSlider/dist/nouislider.min.js'></script>";
|
||||
|
||||
// gestion des fichiers CSS (et de scripts spécifiques à certains fichiers) :
|
||||
switch(basename($_SERVER['SCRIPT_FILENAME']))
|
||||
{
|
||||
case "administration.php" : { echo '<link rel="stylesheet" type="text/css" media="screen" href="format_administration.css" />'; break; }
|
||||
case "textes.php" : { echo '<link rel="stylesheet" type="text/css" media="screen" href="format_textes.css" />'; break; }
|
||||
case "bateaux.php" : { echo '<link rel="stylesheet" type="text/css" media="screen" href="format_bateaux.css" />'; break; }
|
||||
case "cartes.php" : { echo '<link rel="stylesheet" type="text/css" media="screen" href="format_cartes.css" />'; break; }
|
||||
case "mentions_legales.php" : { echo '<link rel="stylesheet" type="text/css" media="screen" href="format_mentions_legales.css" />'; break; }
|
||||
case "shipmembers.php" : { echo '<link rel="stylesheet" type="text/css" media="screen" href="format_shipmembers.css" />'; break; }
|
||||
case "uploads.php" : { echo '<link rel="stylesheet" type="text/css" media="screen" href="format_uploads.css" />'; break; }
|
||||
case "versions.php" : { echo '<link rel="stylesheet" type="text/css" media="screen" href="format_versions.css" />'; break; }
|
||||
}
|
||||
|
||||
echo '<link rel="stylesheet" type="text/css" href="/vendor/bootstrap/bootstrap.min.css" />'; // CSS de Bootstrap
|
||||
echo '<link rel="stylesheet" type="text/css" media="screen" href="format.css" />'; // CSS général, tous écrans.
|
||||
echo '<link rel="stylesheet" type="text/css" media="screen and (max-device-width : 667px)" href="format__telephone.css" />'; // CSS pour les petits écrans (doit être placé à la fin car il override les CSS globaux)
|
||||
|
||||
// Chargement de srcipts JS généraux :
|
||||
echo '<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>'; // Pour Google Charts (graphiques)
|
||||
echo '<script src="/vendor/jQuery/jquery-3.6.0.min.js"></script>';
|
||||
|
||||
|
||||
|
||||
|
||||
echo '</head>';
|
||||
|
||||
echo '<body>';
|
||||
}
|
||||
|
||||
//************************************************************************************************************
|
||||
// Fonction : Insertion de l'entête des pages avec l'affichage du bandeau de titre et les menus.
|
||||
// Puis affichage des messages d'erreur et d'information en les marquant de façon différenciée
|
||||
// selon que le menu est déployé ou non et/ou que le message d'erreur existe et/ou que le
|
||||
// message d'information existe.
|
||||
// Reçoit : Les message d'erreur et le message d'information (de plus, on retrouve le nom du fichier via les variables du serveur)
|
||||
// Retour : Rien
|
||||
//************************************************************************************************************
|
||||
function Entete_page($message_erreur, $message_information)
|
||||
{
|
||||
|
||||
$nom_page = basename($_SERVER['SCRIPT_FILENAME']);
|
||||
|
||||
// Détermination de la nouvelle langue par rapport à l'actuelle :
|
||||
if ($_SESSION['langue'] == "FR") $new_langue = "EN";
|
||||
else $new_langue = "FR";
|
||||
|
||||
|
||||
echo '<div id="entete">';
|
||||
|
||||
//----------------------------------
|
||||
// Bandeau gauche :
|
||||
echo '<div id="logo_home">
|
||||
<a id="home" href="">
|
||||
<a href="shipmembers.php" style="padding: 0;" id="logo_heart_a" title="'.t("Retour à l'accueil").'">
|
||||
<div id="logo_heart"> </div>
|
||||
<div id="logo_texte"> </div>
|
||||
</a>
|
||||
</a>
|
||||
</div>';
|
||||
|
||||
// echo '<div id="menu_mobile"> </div> ';
|
||||
// echo '<div id="nav_bar_global" style="display: none;">';
|
||||
|
||||
//----------------------------------
|
||||
// Bandeau droit :
|
||||
echo '<div id="navbar_right">';
|
||||
|
||||
//----------------------------------
|
||||
// Bouton LANGUE :
|
||||
echo '<div id="flag_lang">';
|
||||
echo '<a class="'.$new_langue.'_acc" title="'.t("Switch to English...").'" href="'.$nom_page.'?action=changement_langue&langue='.$new_langue.'">
|
||||
</a>';
|
||||
echo '</div>';
|
||||
|
||||
//----------------------------------
|
||||
// Bouton SHIPMEMBER ACCESS :
|
||||
echo '<div id="logo_shipmember">';
|
||||
echo '<div id="shipmember">';
|
||||
if ($_SESSION['acces_valide'])
|
||||
{
|
||||
echo '<a title="'.t("Accès validé pour ").' '.$_SESSION['shipmember']['Prenom'].'" href="shipmembers.php?action=navigation&destination=Accueil">
|
||||
<span class="acces_valide">'.substr($_SESSION['shipmember']['Prenom'],0,1).'</span>
|
||||
</a>';
|
||||
}
|
||||
// else echo '<a title="'.$_SESSION['textes']['fonctions']['entete']['ligne_icones']['shipmember_a_title'].'" href="shipmembers.php?action=navigation&destination=Accueil"> </a>';
|
||||
echo '</div>';
|
||||
echo "</div>";
|
||||
|
||||
echo '</div>';
|
||||
|
||||
|
||||
echo '</div>';
|
||||
|
||||
|
||||
//--------------------------------------------------------------------------------------------
|
||||
// Menu afficher / masquer -- Mobile
|
||||
//--------------------------------------------------------------------------------------------
|
||||
echo '<script>
|
||||
window.onload = function () {
|
||||
pro = document.getElementsByClassName("portail_pro");
|
||||
par = document.getElementsByClassName("portail_par");
|
||||
if ($(window).width() > 850) {
|
||||
if (pro.length > 0) { for (i = 0; i < pro.length ; i++){ pro[i].hidden=true; } document.getElementById(\'par_p\').hidden = true }
|
||||
if (par.length > 0) { for (i = 0; i < par.length ; i++){ par[i].hidden=true; } document.getElementById(\'pro_p\').hidden = true }
|
||||
document.getElementById(\'img_type\').hidden= false;
|
||||
document.getElementById(\'logo_heart_a\').href = "bienvenue.php";
|
||||
} else {
|
||||
if (pro.length > 0) { for (i = 0; i < pro.length ; i++){ pro[i].hidden=false; } document.getElementById(\'par_p\').hidden = false }
|
||||
if (par.length > 0) { for (i = 0; i < par.length ; i++){ par[i].hidden=false; } document.getElementById(\'pro_p\').hidden = false }
|
||||
document.getElementById(\'img_type\').hidden= true;
|
||||
document.getElementById(\'logo_heart_a\').href = "accueil.php";
|
||||
}
|
||||
} ;
|
||||
$(document).ready(function(){
|
||||
function menu_control(){
|
||||
hidden_div = document.getElementById("nav_bar_global").style.display;
|
||||
hidden_div.replace(/[\u200B-\u200D\uFEFF]/g, \'\');
|
||||
|
||||
if (hidden_div == "block") hidden_div = "none";
|
||||
else if (hidden_div == "none") hidden_div = "block";
|
||||
document.getElementById("nav_bar_global").style.display=hidden_div;
|
||||
};
|
||||
$("#menu_mobile").click(menu_control);
|
||||
});
|
||||
|
||||
|
||||
window.addEventListener(\'click\', function(e){
|
||||
if (!document.getElementById(\'nav_bar_global\').contains(e.target) && !document.getElementById(\'menu_mobile\').contains(e.target) ){
|
||||
document.getElementById("nav_bar_global").style.display="none";
|
||||
}
|
||||
});
|
||||
|
||||
window.addEventListener(\'touchstart\', function(e){
|
||||
if (!document.getElementById(\'nav_bar_global\').contains(e.target) && !document.getElementById(\'menu_mobile\').contains(e.target) ){
|
||||
document.getElementById("nav_bar_global").style.display="none";
|
||||
}
|
||||
});
|
||||
|
||||
$(window).resize(function() {
|
||||
pro = document.getElementsByClassName("portail_pro");
|
||||
par = document.getElementsByClassName("portail_par");
|
||||
if ($(this).width() > 850) {
|
||||
if (pro.length > 0) { for (i = 0; i < pro.length ; i++){ pro[i].hidden=true; } document.getElementById(\'par_p\').hidden = true }
|
||||
if (par.length > 0) { for (i = 0; i < par.length ; i++){ par[i].hidden=true; } document.getElementById(\'pro_p\').hidden = true }
|
||||
document.getElementById(\'img_type\').hidden= false;
|
||||
document.getElementById(\'logo_heart_a\').href = "bienvenue.php";
|
||||
} else {
|
||||
if (pro.length > 0) { for (i = 0; i < pro.length ; i++){ pro[i].hidden=false; } document.getElementById(\'par_p\').hidden = false }
|
||||
if (par.length > 0) { for (i = 0; i < par.length ; i++){ par[i].hidden=false; } document.getElementById(\'pro_p\').hidden = false }
|
||||
document.getElementById(\'img_type\').hidden= true;
|
||||
document.getElementById(\'logo_heart_a\').href = "accueil.php";
|
||||
}
|
||||
});
|
||||
</script>';
|
||||
|
||||
|
||||
//--------------------------------------------------------------------------------------------
|
||||
// Script d'affichage/masquage du menu :
|
||||
//--------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
//--------------------------------------------------------------------------------------------
|
||||
// Affichage des messages d'erreur et d'info sous le menu :
|
||||
//--------------------------------------------------------------------------------------------
|
||||
if (!PRODUCTION) $message_erreur .= "/!\ Base de données de test [".BDD_DATABASE."]<br />";
|
||||
// else $message_erreur .= "Base de données de production [".BDD_DATABASE."]<br />";
|
||||
|
||||
if ($message_erreur != "") echo '<div class="message_erreur">'.$message_erreur.'</div>';
|
||||
if ($message_information != "") echo '<div class="message_information">'.$message_information.'</div>';
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
//************************************************************************************************************
|
||||
// Fonction : Insertion du pied de page
|
||||
// Reçoit : Rien (mais on retrouve le nom du fichier via les variables du serveur)
|
||||
// Retour : Rien
|
||||
//************************************************************************************************************
|
||||
function Pied_de_page()
|
||||
{
|
||||
$nom_page = basename($_SERVER['SCRIPT_FILENAME']);
|
||||
|
||||
// echo "<script src='https://unpkg.com/leaflet@1.9.4/dist/leaflet.js' integrity='sha256-20nQCchB9co0qIjJZRGuk2/Z9VM+kNiyxNV1lvTlZBo=' crossorigin=''> </script>";
|
||||
|
||||
echo '<div id="pied_de_page" style="display: none;">';
|
||||
echo '<div class="gauche" id="gauche" style="height: 210px;">';
|
||||
echo '<div class="marque" id="marque">
|
||||
|
||||
<p id="marque_texte">'.t("ShipHeart ™ est une marque de Koriolan").'</p>
|
||||
|
||||
<div class="signature" id="signature">
|
||||
<a style="padding: 0;" title="'.t("Accéder à notre site Koriolan").'" href="https://koriolan.tech/" target="_blank">
|
||||
<img src="images/logo_koriolan_rvb.png">
|
||||
</a>
|
||||
</div>';
|
||||
|
||||
echo '</div>';
|
||||
echo '</div>';
|
||||
|
||||
echo '<div class="droite" id="droite" style="height: 210px;">';
|
||||
|
||||
echo '<div class="mentions_legales" id="mentions_legales">';
|
||||
|
||||
if ($nom_page != "mentions_legales.php")
|
||||
{
|
||||
echo '<a title="'.t("Mentions légales").'" href="mentions_legales.php">
|
||||
'.t("Mentions légales").'
|
||||
</a>';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<a title="'.t("Retour").'" href="shipmembers.php">
|
||||
'.t("Retour").'
|
||||
</a>';
|
||||
}
|
||||
echo '</div>';
|
||||
echo '</div>';
|
||||
echo '</div>';
|
||||
|
||||
echo '<div id="pied_de_page_mobile" >';
|
||||
echo '</div>';
|
||||
|
||||
|
||||
|
||||
//==================================================================================
|
||||
// Script JS pour pieds de page :
|
||||
?><script>
|
||||
|
||||
function footer ()
|
||||
{
|
||||
if (window.innerWidth <= 850) //Footer mobile :
|
||||
{
|
||||
document.getElementById('pied_de_page_mobile').appendChild(document.getElementById('mentions_legales'));
|
||||
document.getElementById('pied_de_page_mobile').appendChild(document.getElementById('marque_texte'));
|
||||
document.getElementById('pied_de_page_mobile').appendChild(document.getElementById('signature'));
|
||||
}
|
||||
else //Footer "normal" :
|
||||
{
|
||||
document.getElementById('droite').appendChild(document.getElementById('mentions_legales'));
|
||||
document.getElementById('marque').appendChild(document.getElementById('marque_texte'));
|
||||
document.getElementById('marque').appendChild(document.getElementById('signature'));
|
||||
}
|
||||
}
|
||||
|
||||
document.onreadystatechange = function()
|
||||
{
|
||||
footer();
|
||||
page = "<?php echo $nom_page ?>";
|
||||
if (page == "faq.php")
|
||||
{
|
||||
show_hide('0');
|
||||
|
||||
for(var k = 0; k < reponses.length; k++)
|
||||
{
|
||||
document.getElementById(reponses[k].id).hidden=true;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
window.addEventListener('resize', function(event)
|
||||
{
|
||||
footer();
|
||||
});
|
||||
|
||||
</script><?php
|
||||
// Fin du script JS
|
||||
//====================================================================================
|
||||
|
||||
|
||||
echo '</body>';
|
||||
|
||||
echo '</html>';
|
||||
|
||||
} // Fin de la fonction Pied_de_page()
|
||||
|
||||
|
||||
|
||||
<?php
|
||||
|
||||
|
||||
|
||||
//************************************************************************************************************
|
||||
// Fonction : Initialisation de la session. A appeler avant tout envoi au client.
|
||||
// Reçoit : Rien
|
||||
// Retour : Rien
|
||||
//************************************************************************************************************
|
||||
function Init_session($nom_page)
|
||||
{
|
||||
ini_set('arg_separator.output', '&');
|
||||
ini_set("url_rewriter.tags","a=href,area=href,frame=src,iframe=src,input=src"); // Ces deux lignes sont destinées à faire ajouter autoamtiquement & au lieu de '&' dans la passage des variables de Session (nécessaire pour W3C validator...)
|
||||
|
||||
// Cookie de session : sans attribut domain (cookie réservé exactement au site), SameSite=Lax (synthèse §47) :
|
||||
session_set_cookie_params([
|
||||
'lifetime' => 3600,
|
||||
'path' => '/',
|
||||
'secure' => true,
|
||||
'httponly' => true,
|
||||
'samesite' => 'Lax',
|
||||
]);
|
||||
|
||||
session_start(); // Ouverture de session (avant tout autre envoi au client!!!)
|
||||
|
||||
Initialiser_session();
|
||||
}
|
||||
|
||||
|
||||
//************************************************************************************************************
|
||||
// Fonction : Initialise une session neuve, UNE fois : valeurs par défaut, paramètres de TB_Configuration, langues,
|
||||
// textes. Auparavant fait uniquement par index.php : une page ouverte directement (lien d'invitation
|
||||
// scanné sur un téléphone, favori...) utilisait des variables inexistantes (synthèse §47).
|
||||
// Reçoit : Rien
|
||||
// Retour : Rien
|
||||
//************************************************************************************************************
|
||||
function Initialiser_session()
|
||||
{
|
||||
if (isset($_SESSION['session_initialisee'])) return;
|
||||
|
||||
$_SESSION['acces_valide'] = false;
|
||||
$_SESSION['display_menu'] = false;
|
||||
$_SESSION['langue'] = 'FR'; // Valeur par défaut, remplacée par Langue_par_defaut de TB_Configuration
|
||||
$_SESSION['shipmember'] = array('Cle_primaire' => 0, 'Prenom' => "", 'Nom' => "", 'Entreprise' => "", 'Rue' => "",
|
||||
'Code_postal' => "", 'Ville' => "", 'ID_Pays' => 75, 'Telephone' => "", 'Email' => "",
|
||||
'Commentaires' => "", 'Niveau_acces' => 0);
|
||||
$_SESSION['droits_acces'] = 0;
|
||||
$_SESSION['bateau_shipmember'] = array();
|
||||
$_SESSION['acces'] = 0;
|
||||
$_SESSION['modifier_texte'] = 0;
|
||||
|
||||
Ouverture_bdd();
|
||||
|
||||
// Paramètres de configuration générale :
|
||||
$reponse = Requete_bdd('SELECT Nom, Valeur FROM TB_Configuration WHERE Validite=1', __FILE__, __LINE__);
|
||||
while ($donnees = Recherche_ligne_bdd($reponse))
|
||||
{
|
||||
if ($donnees['Nom'] == "Langue_par_defaut") $_SESSION['langue'] = $donnees['Valeur'];
|
||||
else $_SESSION['Config__'.$donnees['Nom']] = $donnees['Valeur'];
|
||||
}
|
||||
Liberation_jeu_de_resultat_bdd($reponse);
|
||||
|
||||
// ID des langues selon leur préfixe :
|
||||
$reponse = Requete_bdd('SELECT ID, Prefix FROM TB_Langues', __FILE__, __LINE__);
|
||||
while ($donnees = Recherche_ligne_bdd($reponse)) $_SESSION['id_langue'][$donnees['Prefix']] = $donnees['ID'];
|
||||
Liberation_jeu_de_resultat_bdd($reponse);
|
||||
|
||||
Fermeture_bdd();
|
||||
|
||||
chargement_langue(); // Textes de la langue en cours
|
||||
|
||||
$_SESSION['session_initialisee'] = true;
|
||||
}
|
||||
|
||||
|
||||
//************************************************************************************************************
|
||||
// Fonction : Insertion de l'entête des pages HTML ; essentiellement la partie <header></header>.
|
||||
// Au passage, cette fonction étant la première appelée par chaque page (après l'ouverture
|
||||
// de session obligatoire pour pouvoir accéder aux variables de session), on vérifie si
|
||||
// l'environnement est correctement positionné. Si ce n'est pas le cas, par exemple avec
|
||||
// l'accès à la BDD non établi ou aucune langue sélectionnée, elle renvoit immédiatement
|
||||
// vers le fichier 'index.php' qui s'en chargera.
|
||||
// Reçoit : Rien
|
||||
// Retour : Rien
|
||||
//************************************************************************************************************
|
||||
function Entete_page_html()
|
||||
{
|
||||
// Vérification à chaque ouverture de page que les variables de session sont bien initialisées (le test se fait sur quelques "échantillons" supposés représentatifs...) :
|
||||
if ((!isset($_SESSION['langue'])) OR
|
||||
(!isset($_SESSION['display_menu'])))
|
||||
{
|
||||
header('Location:index.php?origine='.basename($_SERVER['SCRIPT_FILENAME']));
|
||||
exit();
|
||||
}
|
||||
|
||||
// Entête HTML :
|
||||
echo '<!DOCTYPE html>';
|
||||
|
||||
echo '<html lang="FR">';
|
||||
|
||||
echo '<head>';
|
||||
echo '<meta charset="UTF-8">';
|
||||
echo '<title>ShipHeart - Simplicity is true luxury</title>';
|
||||
echo '<meta name="description" content="'.t("ShipHeart by Koriolan, la première centrale de vie à bord pour les bateaux de plaisance").'" />';
|
||||
echo '<meta name="keywords" content="ShipHeart" />';
|
||||
echo '<meta content="text/html" http-equiv="content-type" />';
|
||||
echo '<meta name="viewport" content="width=device-width, initial-scale=1">';
|
||||
echo '<link rel="icon" type="image/png" href="images/favicon.png" />';
|
||||
|
||||
|
||||
echo "<link href='https://fonts.googleapis.com/css?family=Montserrat' rel='stylesheet'>";
|
||||
echo "<link href='https://fonts.googleapis.com/css2?family=Oswald&display=swap' rel='stylesheet'>";
|
||||
echo "<link rel='stylesheet' href='https://unpkg.com/leaflet@1.9.4/dist/leaflet.css' integrity='sha256-p4NxAoJBhIIN+hmNHrzRCf9tD/miZyoHS5obTRR9BMY=' crossorigin=''/>";
|
||||
|
||||
echo "<link rel='stylesheet' href='/vendor/noUiSlider/dist/nouislider.min.css'>";
|
||||
echo "<script src='/vendor/noUiSlider/dist/nouislider.min.js'></script>";
|
||||
|
||||
// gestion des fichiers CSS (et de scripts spécifiques à certains fichiers) :
|
||||
switch(basename($_SERVER['SCRIPT_FILENAME']))
|
||||
{
|
||||
case "administration.php" : { echo '<link rel="stylesheet" type="text/css" media="screen" href="format_administration.css" />'; break; }
|
||||
case "textes.php" : { echo '<link rel="stylesheet" type="text/css" media="screen" href="format_textes.css" />'; break; }
|
||||
case "bateaux.php" : { echo '<link rel="stylesheet" type="text/css" media="screen" href="format_bateaux.css" />'; break; }
|
||||
case "cartes.php" : { echo '<link rel="stylesheet" type="text/css" media="screen" href="format_cartes.css" />'; break; }
|
||||
case "mentions_legales.php" : { echo '<link rel="stylesheet" type="text/css" media="screen" href="format_mentions_legales.css" />'; break; }
|
||||
case "shipmembers.php" : { echo '<link rel="stylesheet" type="text/css" media="screen" href="format_shipmembers.css" />'; break; }
|
||||
case "uploads.php" : { echo '<link rel="stylesheet" type="text/css" media="screen" href="format_uploads.css" />'; break; }
|
||||
case "versions.php" : { echo '<link rel="stylesheet" type="text/css" media="screen" href="format_versions.css" />'; break; }
|
||||
}
|
||||
|
||||
echo '<link rel="stylesheet" type="text/css" href="/vendor/bootstrap/bootstrap.min.css" />'; // CSS de Bootstrap
|
||||
echo '<link rel="stylesheet" type="text/css" media="screen" href="format.css" />'; // CSS général, tous écrans.
|
||||
echo '<link rel="stylesheet" type="text/css" media="screen and (max-device-width : 667px)" href="format__telephone.css" />'; // CSS pour les petits écrans (doit être placé à la fin car il override les CSS globaux)
|
||||
|
||||
// Chargement de srcipts JS généraux :
|
||||
echo '<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>'; // Pour Google Charts (graphiques)
|
||||
echo '<script src="/vendor/jQuery/jquery-3.6.0.min.js"></script>';
|
||||
|
||||
|
||||
|
||||
|
||||
echo '</head>';
|
||||
|
||||
echo '<body>';
|
||||
}
|
||||
|
||||
//************************************************************************************************************
|
||||
// Fonction : Insertion de l'entête des pages avec l'affichage du bandeau de titre et les menus.
|
||||
// Puis affichage des messages d'erreur et d'information en les marquant de façon différenciée
|
||||
// selon que le menu est déployé ou non et/ou que le message d'erreur existe et/ou que le
|
||||
// message d'information existe.
|
||||
// Reçoit : Les message d'erreur et le message d'information (de plus, on retrouve le nom du fichier via les variables du serveur)
|
||||
// Retour : Rien
|
||||
//************************************************************************************************************
|
||||
function Entete_page($message_erreur, $message_information)
|
||||
{
|
||||
|
||||
$nom_page = basename($_SERVER['SCRIPT_FILENAME']);
|
||||
|
||||
// Détermination de la nouvelle langue par rapport à l'actuelle :
|
||||
if ($_SESSION['langue'] == "FR") $new_langue = "EN";
|
||||
else $new_langue = "FR";
|
||||
|
||||
|
||||
echo '<div id="entete">';
|
||||
|
||||
//----------------------------------
|
||||
// Bandeau gauche :
|
||||
echo '<div id="logo_home">
|
||||
<a id="home" href="">
|
||||
<a href="shipmembers.php" style="padding: 0;" id="logo_heart_a" title="'.t("Retour à l'accueil").'">
|
||||
<div id="logo_heart"> </div>
|
||||
<div id="logo_texte"> </div>
|
||||
</a>
|
||||
</a>
|
||||
</div>';
|
||||
|
||||
// echo '<div id="menu_mobile"> </div> ';
|
||||
// echo '<div id="nav_bar_global" style="display: none;">';
|
||||
|
||||
//----------------------------------
|
||||
// Bandeau droit :
|
||||
echo '<div id="navbar_right">';
|
||||
|
||||
//----------------------------------
|
||||
// Bouton LANGUE :
|
||||
echo '<div id="flag_lang">';
|
||||
echo '<a class="'.$new_langue.'_acc" title="'.t("Switch to English...").'" href="'.$nom_page.'?action=changement_langue&langue='.$new_langue.'">
|
||||
</a>';
|
||||
echo '</div>';
|
||||
|
||||
//----------------------------------
|
||||
// Bouton SHIPMEMBER ACCESS :
|
||||
echo '<div id="logo_shipmember">';
|
||||
echo '<div id="shipmember">';
|
||||
if ($_SESSION['acces_valide'])
|
||||
{
|
||||
echo '<a title="'.t("Accès validé pour ").' '.$_SESSION['shipmember']['Prenom'].'" href="shipmembers.php?action=navigation&destination=Accueil">
|
||||
<span class="acces_valide">'.substr($_SESSION['shipmember']['Prenom'],0,1).'</span>
|
||||
</a>';
|
||||
}
|
||||
// else echo '<a title="'.$_SESSION['textes']['fonctions']['entete']['ligne_icones']['shipmember_a_title'].'" href="shipmembers.php?action=navigation&destination=Accueil"> </a>';
|
||||
echo '</div>';
|
||||
echo "</div>";
|
||||
|
||||
echo '</div>';
|
||||
|
||||
|
||||
echo '</div>';
|
||||
|
||||
|
||||
//--------------------------------------------------------------------------------------------
|
||||
// Menu afficher / masquer -- Mobile
|
||||
//--------------------------------------------------------------------------------------------
|
||||
echo '<script>
|
||||
window.onload = function () {
|
||||
pro = document.getElementsByClassName("portail_pro");
|
||||
par = document.getElementsByClassName("portail_par");
|
||||
if ($(window).width() > 850) {
|
||||
if (pro.length > 0) { for (i = 0; i < pro.length ; i++){ pro[i].hidden=true; } document.getElementById(\'par_p\').hidden = true }
|
||||
if (par.length > 0) { for (i = 0; i < par.length ; i++){ par[i].hidden=true; } document.getElementById(\'pro_p\').hidden = true }
|
||||
document.getElementById(\'img_type\').hidden= false;
|
||||
document.getElementById(\'logo_heart_a\').href = "bienvenue.php";
|
||||
} else {
|
||||
if (pro.length > 0) { for (i = 0; i < pro.length ; i++){ pro[i].hidden=false; } document.getElementById(\'par_p\').hidden = false }
|
||||
if (par.length > 0) { for (i = 0; i < par.length ; i++){ par[i].hidden=false; } document.getElementById(\'pro_p\').hidden = false }
|
||||
document.getElementById(\'img_type\').hidden= true;
|
||||
document.getElementById(\'logo_heart_a\').href = "accueil.php";
|
||||
}
|
||||
} ;
|
||||
$(document).ready(function(){
|
||||
function menu_control(){
|
||||
hidden_div = document.getElementById("nav_bar_global").style.display;
|
||||
hidden_div.replace(/[\u200B-\u200D\uFEFF]/g, \'\');
|
||||
|
||||
if (hidden_div == "block") hidden_div = "none";
|
||||
else if (hidden_div == "none") hidden_div = "block";
|
||||
document.getElementById("nav_bar_global").style.display=hidden_div;
|
||||
};
|
||||
$("#menu_mobile").click(menu_control);
|
||||
});
|
||||
|
||||
|
||||
window.addEventListener(\'click\', function(e){
|
||||
if (!document.getElementById(\'nav_bar_global\').contains(e.target) && !document.getElementById(\'menu_mobile\').contains(e.target) ){
|
||||
document.getElementById("nav_bar_global").style.display="none";
|
||||
}
|
||||
});
|
||||
|
||||
window.addEventListener(\'touchstart\', function(e){
|
||||
if (!document.getElementById(\'nav_bar_global\').contains(e.target) && !document.getElementById(\'menu_mobile\').contains(e.target) ){
|
||||
document.getElementById("nav_bar_global").style.display="none";
|
||||
}
|
||||
});
|
||||
|
||||
$(window).resize(function() {
|
||||
pro = document.getElementsByClassName("portail_pro");
|
||||
par = document.getElementsByClassName("portail_par");
|
||||
if ($(this).width() > 850) {
|
||||
if (pro.length > 0) { for (i = 0; i < pro.length ; i++){ pro[i].hidden=true; } document.getElementById(\'par_p\').hidden = true }
|
||||
if (par.length > 0) { for (i = 0; i < par.length ; i++){ par[i].hidden=true; } document.getElementById(\'pro_p\').hidden = true }
|
||||
document.getElementById(\'img_type\').hidden= false;
|
||||
document.getElementById(\'logo_heart_a\').href = "bienvenue.php";
|
||||
} else {
|
||||
if (pro.length > 0) { for (i = 0; i < pro.length ; i++){ pro[i].hidden=false; } document.getElementById(\'par_p\').hidden = false }
|
||||
if (par.length > 0) { for (i = 0; i < par.length ; i++){ par[i].hidden=false; } document.getElementById(\'pro_p\').hidden = false }
|
||||
document.getElementById(\'img_type\').hidden= true;
|
||||
document.getElementById(\'logo_heart_a\').href = "accueil.php";
|
||||
}
|
||||
});
|
||||
</script>';
|
||||
|
||||
|
||||
//--------------------------------------------------------------------------------------------
|
||||
// Script d'affichage/masquage du menu :
|
||||
//--------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
//--------------------------------------------------------------------------------------------
|
||||
// Affichage des messages d'erreur et d'info sous le menu :
|
||||
//--------------------------------------------------------------------------------------------
|
||||
if (!PRODUCTION) $message_erreur .= "/!\ Base de données de test [".BDD_DATABASE."]<br />";
|
||||
// else $message_erreur .= "Base de données de production [".BDD_DATABASE."]<br />";
|
||||
|
||||
if ($message_erreur != "") echo '<div class="message_erreur">'.$message_erreur.'</div>';
|
||||
if ($message_information != "") echo '<div class="message_information">'.$message_information.'</div>';
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
//************************************************************************************************************
|
||||
// Fonction : Insertion du pied de page
|
||||
// Reçoit : Rien (mais on retrouve le nom du fichier via les variables du serveur)
|
||||
// Retour : Rien
|
||||
//************************************************************************************************************
|
||||
function Pied_de_page()
|
||||
{
|
||||
$nom_page = basename($_SERVER['SCRIPT_FILENAME']);
|
||||
|
||||
// echo "<script src='https://unpkg.com/leaflet@1.9.4/dist/leaflet.js' integrity='sha256-20nQCchB9co0qIjJZRGuk2/Z9VM+kNiyxNV1lvTlZBo=' crossorigin=''> </script>";
|
||||
|
||||
echo '<div id="pied_de_page" style="display: none;">';
|
||||
echo '<div class="gauche" id="gauche" style="height: 210px;">';
|
||||
echo '<div class="marque" id="marque">
|
||||
|
||||
<p id="marque_texte">'.t("ShipHeart ™ est une marque de Koriolan").'</p>
|
||||
|
||||
<div class="signature" id="signature">
|
||||
<a style="padding: 0;" title="'.t("Accéder à notre site Koriolan").'" href="https://koriolan.tech/" target="_blank">
|
||||
<img src="images/logo_koriolan_rvb.png">
|
||||
</a>
|
||||
</div>';
|
||||
|
||||
echo '</div>';
|
||||
echo '</div>';
|
||||
|
||||
echo '<div class="droite" id="droite" style="height: 210px;">';
|
||||
|
||||
echo '<div class="mentions_legales" id="mentions_legales">';
|
||||
|
||||
if ($nom_page != "mentions_legales.php")
|
||||
{
|
||||
echo '<a title="'.t("Mentions légales").'" href="mentions_legales.php">
|
||||
'.t("Mentions légales").'
|
||||
</a>';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<a title="'.t("Retour").'" href="shipmembers.php">
|
||||
'.t("Retour").'
|
||||
</a>';
|
||||
}
|
||||
echo '</div>';
|
||||
echo '</div>';
|
||||
echo '</div>';
|
||||
|
||||
echo '<div id="pied_de_page_mobile" >';
|
||||
echo '</div>';
|
||||
|
||||
|
||||
|
||||
//==================================================================================
|
||||
// Script JS pour pieds de page :
|
||||
?><script>
|
||||
|
||||
function footer ()
|
||||
{
|
||||
if (window.innerWidth <= 850) //Footer mobile :
|
||||
{
|
||||
document.getElementById('pied_de_page_mobile').appendChild(document.getElementById('mentions_legales'));
|
||||
document.getElementById('pied_de_page_mobile').appendChild(document.getElementById('marque_texte'));
|
||||
document.getElementById('pied_de_page_mobile').appendChild(document.getElementById('signature'));
|
||||
}
|
||||
else //Footer "normal" :
|
||||
{
|
||||
document.getElementById('droite').appendChild(document.getElementById('mentions_legales'));
|
||||
document.getElementById('marque').appendChild(document.getElementById('marque_texte'));
|
||||
document.getElementById('marque').appendChild(document.getElementById('signature'));
|
||||
}
|
||||
}
|
||||
|
||||
document.onreadystatechange = function()
|
||||
{
|
||||
footer();
|
||||
page = "<?php echo $nom_page ?>";
|
||||
if (page == "faq.php")
|
||||
{
|
||||
show_hide('0');
|
||||
|
||||
for(var k = 0; k < reponses.length; k++)
|
||||
{
|
||||
document.getElementById(reponses[k].id).hidden=true;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
window.addEventListener('resize', function(event)
|
||||
{
|
||||
footer();
|
||||
});
|
||||
|
||||
</script><?php
|
||||
// Fin du script JS
|
||||
//====================================================================================
|
||||
|
||||
|
||||
echo '</body>';
|
||||
|
||||
echo '</html>';
|
||||
|
||||
} // Fin de la fonction Pied_de_page()
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user