alpha_full/index.php
2026-04-06 22:58:51 +02:00

486 lines
23 KiB
PHP
Executable File

<?php
// ---------------------------------------------------
// Page principale qui charge chaque section nécessaire
// ---------------------------------------------------
// Headers & Demarre la session et siteName
// ---------------------------------------------------
$includePathConf="./_conf";
global $debugMsg;
//headers et demarre session
include ("./_include/headers.php");
// ---------------------------------------------------
// Init des variables en masse + version
// ---------------------------------------------------
include ("./_conf/version.php");
include ("./_include/initVar.php");
// ---------------------------------------------------
// Test : si le site est pas publiable = authentification
// doit etre avant initSessLg.php, pcq on force a aller sur la base de prod dans ce fichier
// donc le fichier de connection a la base ne doit pas etre redéfini
// ---------------------------------------------------
include("./pages/auth/reqSelectAuth.php");
// ---------------------------------------------------
// Fonctions pour créer requete préparée
// ---------------------------------------------------
require_once ("./admin/adminInclude/_fonctions/fonctionRequete_select.php");
require_once ("./admin/adminInclude/_fonctions/fonctionRequete_update.php");
require_once ("./admin/adminInclude/_fonctions/fonctionRequete_pourTableaux.php");
// ---------------------------------------------------
// Chargement variables communes + connection base
// ---------------------------------------------------
$_SESSION['jeviensDeIndex']=0;
include ("./_include/initSessLg.php");
// ---------------------------------------------------
// Fonctions pour créer une div dynamique
// ---------------------------------------------------
require_once ($includePath. "/_fonctions/fonctions.gene.php");
require_once ($includePath. "/_fonctions/fonctionItemMessage.php");
require_once ($includePath. "/_fonctions/fonctionItemAvecImage.php");
require_once ($includePath. "/_fonctions/fonctionItemChamps.php");
include ("./_include/_fonctions/itemImageNew.php");
// ---------------------------------------------------
// Is agencement // voir initSessLg
// ---------------------------------------------------
if (isset($_GET['isAgencement'])) {
$isAgencement=$_GET['isAgencement'];
if($isAgencement == 0) $_SESSION['isAgencement'] = false;
else $_SESSION['isAgencement'] = true;
}
else {
if (file_exists("./admin/isAgencement.txt") ) {
$_SESSION['isAgencement'] = true;
// @unlink("isAgencement.txt");
}
else $_SESSION['isAgencement'] = false;
}
$test=false;
$uri = $_SERVER['REQUEST_URI'];
$test = strpos($uri, 'carrousselTheme');
if($test === false) $_SESSION['isAgencement'] = false;
if($affPageSite == 50) $_SESSION['isAgencement'] = false;
// a garder etre sur que isAgencement = ok
// if (isset($debug[1]) && $debug[1] == '1' ) $debugMsg .= 'URI (index.php - ligne 71) ='.$uri.' test ='.$test.' $_SESSION[isAgencement] =' .$_SESSION['isAgencement'] ?? 'non defini'. ' $_GET[isAgencement] ='.$_GET['isAgencement'] ?? 'non défini';
// ---------------------------------------------------
// Menu contextuel
// ---------------------------------------------------
global $mouseOverMenuContext;
global $mouseOverMenuContextContainer;
global $affMContext;
$mouseOverMenuContext='';
$mouseOverMenuContextContainer='';
$affMContext=false;
if (isset($_SESSION['isAgencement']) && $_SESSION['isAgencement'] === true ) {
$affMContext=true;
// appeler deselectElementAll(); ?? apparament a enleve tout
$mouseOverMenuContext=' onmouseover="this.style.border=\'3px dashed yellow\'; this.style.padding=\'3px\';" onmouseleave="this.style.border=\'\'; this.style.padding=\'\';" ';
$mouseOverMenuContextContainer=' onmouseover="this.style.border=\'3px dashed lightgreen\'; this.style.padding=\'3px\';" onmouseleave="this.style.border=\'\'; this.style.padding=\'\';" ';
$_SESSION['mouseOverMenuContext']=$mouseOverMenuContext;
$_SESSION['mouseOverMenuContextContainer']=$mouseOverMenuContextContainer;
}
// ---------------------------------------------------
// POST / GET / STATS / DE CHAQUE PAGE
// ---------------------------------------------------
require_once ("./structure/structure.post.php");
echo '<!DOCTYPE html>';
echo '<html lang="' .$lang. '" >';
// ---------------------------------------------------
// HEAD
// ---------------------------------------------------
echo '<head>';
// on veut rediriger une seule fois si le client est dans la page modifier mais son mail est vide
if (isset($_SESSION['redirect'])) $redirect=$_SESSION['redirect'];
if (empty($idMail) && ( $affPageSite==6 && $redirect=='')) {
$_SESSION['redirect']=1;
echo '<meta http-equiv="refresh" content="0; URL=./connection" />';
}
// charger le fichier de referencement
if (isset($debug[1]) && $debug[1] == '1' ) $refresh='Oui';
if (empty($refTitle)) include("./_include/req/20-init.referencement.php");
// ---------------------------------------------------
// js
// ---------------------------------------------------
$debugJs=0;
$debugCss=0;
include ("./structure/structure.js.css.php");
// modif ascenceur dans le BO
if (isset($_SESSION['isAgencement']) && $_SESSION['isAgencement'] === true ) {
echo '<style>
@supports (-webkit-appearance: none) {
::-webkit-scrollbar { width:14px; height:14px; }
// Track
::-webkit-scrollbar-track {width:14px; box-shadow :inset 0 0 5px lightgrey; border-radius: 3px; }
// Handle
::-webkit-scrollbar-thumb { border-radius: 3px; }
}</style>';
}
// ---------------------------------------------------
// Réglage du zoom si carroussel ou pas
// ---------------------------------------------------
if (isset($_GET['flagCarroussel'])) {
if (isset($_GET['zoomIframe'])) {$zoomIframe=$_GET['zoomIframe'];}else{$zoomIframe='0.8';};
$zoomIframe=str_replace(",",".",$zoomIframe);
if ($_GET['flagCarroussel']==1) { echo '<style>html{transform:scale(' .$zoomIframe. ',' .$zoomIframe. ');} </style>'; } // carroussel
if ($_GET['flagCarroussel']==2) { echo '<style>html{transform:scale(0.9, 0.9);} </style>'; } // zoom iframe page accueil modale
if ($_GET['flagCarroussel']==3) { echo '<style>html{transform:scale(0.9, 0.9);} </style>'; } // zoom agencement + page accueil
// echo 'zoom' .$zoomIframe;
}
// ---------------------------------------------------
// Head et meta
// ---------------------------------------------------
include ($includePath. "/head.php");
// ---------------------------------------------------
// Ne pas indexer le repertoire wbadm
// ---------------------------------------------------
if (isset( $_SESSION['isWbAdm'] ) && $_SESSION['isWbAdm']===true) {
echo '<meta name="robots" content="noindex, nofollow" />';
}
echo '</head>';
// ---------------------------------------------------
// Pour le Caroussel ne pas prendre les valeurs dans la session, car on a lusieurs sites et une session. prendre les valeurs en base
// ---------------------------------------------------
include ("./structure/requete_themeParam_carroussel.php");
include ("./structure/requete_themeParam_carroussel_constantes.php");
// ---------------------------------------------------
// BODY
// ---------------------------------------------------
echo '<body ';
if ($affImgFonds == 1) {
echo 'id="bodyImg" ';
echo 'style="background-attachment: fixed;';
// if ( $affPageSite==50) {echo ' position:fixed; ';}
if ( $affMContext === true ) {
echo ' cursor:context-menu;';
// pb : besoin de position:fixed pour agencement, mais fonctionne pas sur front
// if ( $_SESSION['isAgencement'] === true ) echo ' position:fixed; ';
echo '" ';
echo ' onClick="resetMenuContextuel" ' .$mouseOverMenuContextContainer. ' onContextMenu="return mConStyle ( this, \'Transverses site\', \'bodyImg\', 2, \'msgAccueil\', 7, 0, event );" ';
}
else echo '" ';
}
else {
echo 'id="body" ';
if ( $affMContext === true ) {
echo 'style="cursor:context-menu" ';
echo 'onClick="resetMenuContextuel" ' .$mouseOverMenuContextContainer. ' onContextMenu="return mConStyle ( this, \'Transverses site\', \'body\', 0, \'msgAccueil\', 7, 0, event );" ';
}
}
echo '>';
// ---------------------------------------------------
// pour la navigation clic droit
// ---------------------------------------------------
// debug
if (isset($affPageSite)) {
// echo 'affPageSite = '.$affPageSite;
$_SESSION['affPageSite']=$affPageSite;
}
else echo 'affPageSite = empty';
echo '<input type="hidden" style="display:none;" id="affPageSite" value="' .$affPageSite. '" >';
// ---------------------------------------------------
// Debug local infos user
// ---------------------------------------------------
$faire=0;
if ($_SESSION['ENVIRONNEMENT']=='local' && $faire==1) {
$whoami = shell_exec('whoami');
echo "Utilisateur PHP : <span style=\"color:purple;font-weight:bold;\"> $whoami </span>";
// Obtenir l'ID utilisateur
$uid = getmyuid();
// Obtenir les informations de l'utilisateur via son UID
$user_info = posix_getpwuid($uid);
echo ' Propriétaire : <span style="color:purple;font-weight:bold;">' . $user_info['name']. '</span> ';
// Obtenir l'ID du groupe
$gid = getmygid();
// Obtenir les informations du groupe via son GID
$group_info = posix_getgrgid($gid);
echo ' Groupe : <span style="color:purple;font-weight:bold;">' . $group_info['name']. '</span> ';
}
// ---------------------------------------------------
// Google tag manager : noScript
// ---------------------------------------------------
if (file_exists( $includePathPublication. '/googleA_noJS.js') ) {
echo '<script type="text/javascript" src="' .$includePathPublication. '/googleA/googleA_noJS.js" ></script>';
}
// ---------------------------------------------------
// Formulaire debug
// ---------------------------------------------------
// ne pas mettre le debug dans le site agencement
// ---------------------------------------------------
if (isset($_SESSION['isAgencement']) && $_SESSION['isAgencement'] === false) include_once ("./admin/adminInclude/debugForm.php");
// -------------------------------------------------
// Spinner
// ---------------------------------------------------
include ("./_include/_spinner/spinner.php");
// il ne faut pas le lancer a chaque fois, que pour les traitements longs
// echo '<script type="text/javascript">onSpinnerUser();</script>';
// -------------------------------------------------
// JS
// ---------------------------------------------------
$includeAdminJs="./admin/adminInclude/_js";
// -------------------------------------------------
// Bouton Admin => Site de test sauf sur agencement ( et adminConnect )
// -------------------------------------------------
if (isset($_SESSION['isWbAdm']) && $_SESSION['isWbAdm'] === true && isset($_SESSION['isAgencement']) && $_SESSION['isAgencement'] === false) {
echo '<div class="flexToColumn blink-one" style="align-items: center; display:flex; text-align:center; width:50%; justify-content:space-around; border:0px; margin:auto; grid-column:1 / span 5; background-color:#FBEFF5; color: black; font-size:0.9rem; border-radius:5px;" onclick="this.classList.remove(\'blink-one\');" onmouseleave="this.classList.add(\'blink-one\');" >';
// -------------------------------------------------
// Btn Admin
// -------------------------------------------------
require_once ("./pages/index/btnAdmin.php");
echo '<span style=" text-align:center; background-color:#FBEFF5; opacity:1; width:100%;" >';
echo "&#160;&#160; Vous êtes sur le site de <b>test</b>";
// Affichage de la résolution de l'ecran
// echo '<script type="text/javascript" src="' .$includePathJs. '/affRes.js" ></script>';
echo "</span>";
echo '</div>';
}
// ---------------------------------------------------
// SITE CONTAINER
// ---------------------------------------------------
if ( $affMContext === true ) echo '<div id="site-container" style="cursor:context-menu" ' .$mouseOverMenuContextContainer. ' onContextMenu="return mConStyle ( this, \'Structure site\',\'site-container\', 0, \'titre\', 6, 0, event );" >';
else echo '<div id="site-container" >';
// si authentifié admin on ne redemande pas genre SSO...
if (isset($_SESSION['isAdmin']) && $_SESSION['isAdmin']=='O') { $_SESSION['authValid']=true; }
if (!isset($_SESSION['auth']) || empty($_SESSION['auth'])) {
include ($includePathAdmin. "/req/reqSelectAuthFromAdmin.php");
}
// ---------------------------------------------------
// Autentification si maintenance & Prod
$continuer=1;
// Si prod. et si le site n'est pas publiable = auth=1.
if ($_SESSION['isProd'] === true && $_SESSION['auth'] == 1 ) {
if ($_SESSION['authValid'] === false || $_SESSION['authValid'] == '') {
$continuer=2;
include ("./pages/auth/authForm.php");
}
}
// ---------------------------------------------------
// si wbadm = authentification dans tous les cas aussi
// todo edt : pour memoire ameliorer le message et en faire un different de prod
// si on a demandé la deconnexion on va sur aurevoir.php => affPageSite=7
if ($_SESSION['isProd'] === false) {
if ($_SESSION['authValid'] === false && $affPageSite!=7) { // != quitter
$continuer=0;
if ($affPageSite==50) include ("./pages/index/adminConnect.php");
else include ("./pages/auth/authForm.php");
}
}
if (isset($debug[16]) && $debug[16] == '1' ) $debugMsg .= monDebug(1, [
'isProd' => isset($_SESSION['isProd'])?$_SESSION['isProd']:'empty',
'AUTHENT' => isset($_SESSION['auth'])?$_SESSION['auth']:'empty',
'authValid' => isset($_SESSION['authValid'])?$_SESSION['authValid']:'empty',
'isAdmin session' => isset($_SESSION['isAdmin'])?$_SESSION['isAdmin']:'empty',
'isConnected' => isset($connected)?$connected:'empty',
'continuer' => isset($continuer)?$continuer:'empty'
], 'index.php -- ligne 321','');
if ($continuer==1) {
// ---------------------------------------------------
// HEADER CONTAINER --> LIGNE 1
// ---------------------------------------------------
if (!isset($_SESSION['affHeaderContainer'])) {$_SESSION['affHeaderContainer']=1;}
if (!isset($affHeaderContainer)) {$affHeaderContainer=1;}
if ($affHeaderContainer==1) {
// ---------------------------------------------------
// affichage du conteneur titre si en image
// ---------------------------------------------------
if ($titreAfficher[0]==1 ) {
// include_once ($includePath. "/req/03-init.langueActives.php");
include ("./admin/agencement/titre/titreReqSelect.php");
if ($theImage!='' && $theImage!='-') { //sinon affichage texte dans entetePage.php
echo '<div id="header-containerImg" onClick="window.location=\'./accueil\';" style="background-position: center;';
if ( $affMContext === true ) echo 'cursor:context-menu;" '.$mouseOverMenuContextContainer. ' onContextMenu="return mConStyle (this, \'Structure site\',\'header-containerImg\', 2, \'titre\', 6, 0, event);" ';
else echo 'cursor:pointer;" ' ;
echo '>';
}
else {
// le style s'appelle imgTitre mais c'est bien du texte en css
if ( $affMContext === true ) echo '<div id="header-container" data-tooltip="' .$titreTitle[0]. '" style="position:sticky;" ' .$mouseOverMenuContextContainer. ' onContextMenu="return mConStyle(this, \'Structure site\',\'header-container\', 1 \'titre\', 6, 0, event);" >';
else echo '<div id="header-container" data-tooltip="' .$titreTitle[0]. '" style="position:sticky;" >';
}
}
else {
if ( $affMContext === true ) echo '<div id="header-container" style="position:sticky; cursor:context-menu;" ' .$mouseOverMenuContextContainer. ' onContextMenu="return mConStyle(this, \'Structure site\',\'header-container\', 1 \'titre\', 6, 0, event);" >';
else echo '<div id="header-container" style="position:sticky;" >';
}
// ---------------------------------------------------
// autres éléments d'entête
// ---------------------------------------------------
require_once ("./pages/_entete/entetePage.php");
echo '</div>';
}
// ---------------------------------------------------
// MENU --> LIGNE 2
// ---------------------------------------------------
if ( $affMContext === true ) echo '<div style="cursor:context-menu" id="menuD-container" ' .$mouseOverMenuContextContainer. ' onContextMenu="return mConStyle(this, \'Structure site\', \'menuD-container\', 3, \'menu\', 5, 0, event);" >';
else echo '<div id="menuD-container" >';
include ($includePathMenus. "/menuDeroulant.php");
echo '</div>';
// ---------------------------------------------------
// Barre de recherche --> LIGNE 3
// ---------------------------------------------------
if ($affRech==1) {
if ( $affMContext === true ) echo '<div id="rechBarre-container" class="flexToColumn" style="cursor:context-menu" ' .$mouseOverMenuContextContainer. ' onContextMenu="return mContextuel(this, \'rechBarre-container\',\'catalog\', 11, event);" >';
else echo '<div id="rechBarre-container" class="flexToColumn" >';
// echo '<div id="rechBarre-container" class="flexToColumn" onContextMenu="return mContextuel(\'rechBarre-container\', \'rechBarre-container\',\'catalog\', \'11\', event);">';
require_once ($includePathMenus. "/barreRech.php");
echo '</div>';
}
// ---------------------------------------------------
// MENU INDEPENDANT --> LIGNE 4
// ---------------------------------------------------
if (isset($_SESSION['numStruct']) && $_SESSION['numStruct']==1) {
if ( $affMContext === true ) { $menuC= $mouseOverMenuContextContainer.' onContextMenu="return mConStyle(this, \'Menu familles\', \'menuIndep-container\', 0, \'catalog\', 1, 0, event);"'; } else $menuC='';
// si pas barre de recherche , remonter le menu indep de 1
// if($affRech!=1) {echo '<div id="menuIndep-container" '.$menuC.' >';}
// else
echo '<div id="menuIndep-container" '.$menuC.' >';
// besoin de ce flag pour ne pas masquer le menu deroulant famille si menu independant
// ce flag est lu par javascript
// echo '<input type="hidden" id="numStruct" value="1" >';
include $includePathMenus. "/menuFamillesVerticalDeroulant.php";
echo '</div>';
}
// ---------------------------------------------------
// BANDEAU --> LIGNE 5 :
// si pas d'affichage on a géré le positionnement des autres dans agencement
// affBandeau dépend de chaque theme
// ---------------------------------------------------
if (isset($_SESSION['affBandeau']) && $_SESSION['affBandeau']==1) {
if ( $affMContext === true ) echo '<div id="bandeau-container" style="cursor:context-menu" ' .$mouseOverMenuContextContainer. ' onContextMenu="return mConStyle(this, \'Structure site\', \'bandeau-container\', 4, \'titre\', 6, 3 ,event);" >';
else echo '<div id="bandeau-container" >';
require_once ("./pages/bandeau.php");
echo '</div>';
}
// ---------------------------------------------------
// USR MSG --> LIGNE 5 -> defini en fin de page mais s'affiche ici
// ---------------------------------------------------
// ---------------------------------------------------
// PAGES --> LIGNE 6-7 ou 5-7 si pas bandeau
// ---------------------------------------------------
if ( $affMContext === true ) echo '<div id="page-container" style="cursor:context-menu" ' .$mouseOverMenuContextContainer. ' onContextMenu="return mConStyle(this, \'Structure site\', \'page-container\', 7, \'msgAccueil\', 7, 0 , event);" >';
else echo '<div id="page-container">';
require_once ("./structure/structure.form.php");
echo '</div>';
// ---------------------------------------------------
// PUB --> 8 si pas d'affichage on a géré le positionnement des autres dans agencement
// ---------------------------------------------------
if ($_SESSION['affPub']==1) {
// pour le MC, pas de contenu on prends accueil par defaut
if ( $affMContext === true ) echo '<div id="pub-container" ' .$mouseOverMenuContextContainer. ' onContextMenu="return mConStyle(this, \'Structure site\', \'pub-container\', 8,\'msgAccueil\', 7, 0, event);" >';
else echo '<div id="pub-container" >';
require_once ($includePathPublication. "/publicite/menuPubAll.php");
echo '</div>';
}
// ---------------------------------------------------
// Pour le menu déroulant : affichage du panier
// ---------------------------------------------------
include ("./menu/menuPanier.php");
// ---------------------------------------------------
// DEBUG des variables communes
// ---------------------------------------------------
if ($bdd=="alpha") { if (isset($debug[1]) && $debug[1] == '1' ) {require_once ("index.debug.php");} }
// ---------------------------------------------------
// debug de chaque page
// ---------------------------------------------------
if ($bdd=="alpha") {if (isset($debug[1]) && $debug[1] == '1') {require_once ("./structure/structure.debug.php"); } }
// ---------------------------------------------------
// PDP --> 9
// ---------------------------------------------------
if ( $affMContext === true ) echo '<div id="pdp-container" ' .$mouseOverMenuContextContainer. ' onContextMenu="return mConStyle(this, \'Structure site\', \'pdp-container\', 10,\'msgAccueil\', 7, 0, event);" >';
else echo '<div id="pdp-container" >';
require_once ("./pages/_piedDePageSite/pdpFrm.php");
echo '</div>';
} //auth continuer
// ---------------------------------------------------
// MESSAGES UTILISATEUR --> 4
// ---------------------------------------------------
include ($includePath. "/usrSiteMsg.php");
echo '</div>'; //site container
// Arrêter le spinner
echo '<script>offSpinnerUser();</script>';
// Charger le menu contextuel qui modifie le DOM
echo '<script type="text/javascript" src="' .$includePathJs. '/menuContextuel.js.php" ></script>';
// Enlever element selectd -> ne fonctione pas a voir plus tard
// if (isset($_SESSION['isAgencement']) && $_SESSION['isAgencement'] === false ) {
// echo '<script type="text/javascript">
// deselectElementAll()
// </script>';
// }
// Ne pas afficher le bouton admin dans la prévisualisation site du backofice
echo '<script type="text/javascript" src="' .$includePathJs. '/isBackOffice.js.php" ></script>';
// Gestion du changement de langue
echo '<script type="text/javascript" src="' .$includePathJs. '/langues.js.php" ></script>';
// FIN :MISE EN SESSION
include ("./_include/finSessLg.php");
echo '</body>';
echo '</html>';
?>