Files
ms1inscription-v5/php/inc_settings.php
stephan 3e8112ec0b Implement statistics and layout enhancements for promoteur hub
This commit introduces a new function, `fxPromoteurHubGetEpreuveStats`, to aggregate and return statistics for events, including sold tickets, check-ins, and waiting list details. Additionally, it adds extensive CSS styles for the promoteur hub, enhancing the layout and visual presentation of statistics, alerts, and event tiles. These changes improve the user experience by providing clearer information and a more organized interface for event management.
2026-06-27 17:03:26 -04:00

478 lines
17 KiB
PHP

<?php
//ini_set( 'display_errors', 1 );
//error_reporting( E_ALL );
/*************
*
* Constantes *
*
**************/
define('_VERSION_CODE', '4.72.709');
define('_DATE_CODE', '2026-06-27');
//MSIN-4290
define('QR_SECRET_KEY', 'ms1_qr_2026_cle_secrete_longue_et_fixe');
// Outil temporaire ms1_kc_set.php — modifier key_chain_http (lien /kc/{pk}/)
// KEYCHAIN_HTTP_EDIT_SECRET : paramètre ?k= dans l'URL (mot de passe d'accès à la page)
// KEYCHAIN_HTTP_EDIT_SHIFT : ajouté au numéro saisi (ex. 8 → pk 108 en base)
// KEYCHAIN_HTTP_EDIT_ALLOWED_COM_IDS : com_id autorisés (virgules) pour /ms1_kc_set.php sans ?k=
define('KEYCHAIN_HTTP_EDIT_SECRET', 'ms1_kc_http_edit_2026_c7e4a91f3b2d8e0f6a5c4b3d2e1f0a9');
define('KEYCHAIN_HTTP_EDIT_SHIFT', 100);
define('KEYCHAIN_HTTP_EDIT_ALLOWED_COM_IDS', '');
/**************************************
*
* Profils connexion BD — source unique *
*
**************************************/
$tabConnClientPreprod = array(
'host' => 'localhost',
'user' => 'ms1incription_bd',
'pass' => '3+~=,y=eV)M;',
'db' => 'ms1incription_preprod',
);
$tabConnClientProd = array(
'host' => 'localhost',
'user' => 'ms1incription_bd',
'pass' => '3+~=,y=eV)M;',
'db' => 'ms1incription_prod',
);
$tabConnDevPreprod = array(
'host' => 'localhost',
'user' => 'devinscription_bd',
'pass' => 'x$@_v0-l_I((',
'db' => 'devinscription_preprod',
);
$tabConnDevProd = array(
'host' => 'localhost',
'user' => 'devinscription_bd',
'pass' => 'x$@_v0-l_I((',
'db' => 'devinscription_prod',
);
$tabConnCrmClient = array(
'host' => 'localhost',
'user' => 'ms1crm_bd',
'pass' => 'fPDJ,][ZGPwL',
'db' => 'ms1crm_prod',
);
$tabConnCrmDev = array(
'host' => 'localhost',
'user' => 'devcrmms1_bd',
'pass' => '.vB==c$s_Yk7',
'db' => 'devcrmms1_dev',
);
/**
* Branche le site sur un profil préprod + prod (même host/user/pass).
* $strMainRole : 'preprod' ou 'prod' → $strDatabaseMain
*/
function fxSettingsUseDbProfiles($tabPreprod, $tabProd, $strMainRole = 'preprod') {
global $strDatabaseHost, $strDatabaseUser, $strDatabasePass;
global $strDatabaseMain, $strDatabasePreProd, $strDatabaseProd;
$strDatabaseHost = $tabPreprod['host'];
$strDatabaseUser = $tabPreprod['user'];
$strDatabasePass = $tabPreprod['pass'];
$strDatabasePreProd = $tabPreprod['db'];
$strDatabaseProd = $tabProd['db'];
$strDatabaseMain = ($strMainRole === 'prod') ? $tabProd['db'] : $tabPreprod['db'];
}
function fxSettingsUseCrmProfile($tabCrm) {
global $strDatabaseHostcrm, $strDatabaseUsercrm, $strDatabasePasscrm, $strDatabaseMaincrm;
$strDatabaseHostcrm = $tabCrm['host'];
$strDatabaseUsercrm = $tabCrm['user'];
$strDatabasePasscrm = $tabCrm['pass'];
$strDatabaseMaincrm = $tabCrm['db'];
}
/**********************
*
* Variables globales *
*
**********************/
$strHost = (!empty($_SERVER['HTTP_HOST'])) ? trim($_SERVER['HTTP_HOST']) : '';
$currentFile = (!empty($_SERVER["PHP_SELF"])) ? trim($_SERVER["PHP_SELF"]) : '';
$parts = Explode('/', $currentFile);
$vPage = $parts[count($parts) - 1];
$vEmail = 'confirmation@ms1timing.com';
$vClient = 'ms1inscription';
$vNumero = '514-360-1610';
$vNumeroSF = '1-855-584-6464';
$vNumeroSFL = '1-855-5-TIMING';
date_default_timezone_set('America/Montreal');
$blnShowErrors = true;
$strConAdmin = '';
if (isset($_SESSION['usa_id'])) {
$strConAdmin = ' - Connecté en <span class="text-uppercase">admin</span> (' . $_SESSION['usa_info']['com_login'] . ')';
}
/**************************************
*
* Variables selon les environnements *
*
**************************************/
$vblnEnvironementPreProd = false;
$vblnEnvironementDev = false;
$arrConDatabaseClientPreProd = null;
$arrConDatabaseClientProd = null;
switch ($strHost) {
/****************************
* Environnement MYINTERNE *
****************************/
case "myinterne.com":
case "www.myinterne.com":
case "preprod.myinterne.com":
case "www.preprod.myinterne.com":
$vGoogleAnalytics = "";
$vblnEnvironementDev = false;
$blnShowErrors = false;
$vDomaine = $vDomaine2 = $vDomaineTiming = 'https://www.preprod.myinterne.com';
$vRepertoireFichiers = '/preprod';
$vEnvNotice = '
<div class="alert-warning py-2 text-center sticky-top">
<strong>Environnement Client <span class="text-uppercase">TEST</span>' . $strConAdmin . '</strong>
</div>
';
fxSettingsUseDbProfiles($tabConnClientPreprod, $tabConnClientProd, 'preprod');
fxSettingsUseCrmProfile($tabConnCrmClient);
$arrConFTP = array(
'host' => '127.0.0.1',
'user' => 'ms1inscription',
'pass' => 'ms1911',
'path_prod' => '/home/ms1incription/public_html',
'path_preprod'=> '/home/ms1incription/public_html/preprod'
);
$isPreprod = (strpos($strHost, 'preprod.') !== false);
if (!$isPreprod) {
$favicon = 'favicon.ico';
$faviconadm = 'favicon-rouge.ico';
fxSettingsUseDbProfiles($tabConnClientPreprod, $tabConnClientProd, 'prod');
$vblnEnvironementDev = false;
$vGoogleAnalytics = "";
$vPaypaladv = true;
$vPaypaladv_SANDBOX = false;
$vPaypal_devise = 'CAD';
define('PAYPAL_ENV', 'prod_client');
define('PAYPAL_ENV_FOOTER', 'prod_client');
define('PAYPAL_BASE_URL', 'https://api-m.paypal.com');
define('PAYPAL_CLIENT_ID', 'AU3fhK6opJ2cBkTghAHf02fsimwj345zn3TOPL5we3z0C9HNT_sU341OkIP9l-ucgE1JdBhmt3WlHb2v');
define('PAYPAL_CLIENT_SECRET', 'EDg0Y1ZxvUmrAxY9_-NZP3EsuoMRf2lu9st1mDn8Ha7f5z4hrk7_KKsu_tM_PSri86YuFRqbaVKBADlX');
define('PAYPAL_WEBHOOK_ID', '2EW679080K7814041');
define('PAYPAL_SANDBOX', false);
define('PAYPAL_CURRENCY', 'CAD');
if (isset($_SESSION['usa_id'])) {
$vEnvNotice = '
<div class="alert-warning py-2 text-center sticky-top">
<strong>Environnement Client <span class="text-uppercase">PROD</span>' . $strConAdmin . '</strong>
</div>
';
} else {
$vEnvNotice = '';
}
$vDomaine = $vDomaine2 = $vDomaineTiming = 'https://www.myinterne.com';
$vRepertoireFichiers = '';
$vGoogleAnalytics = "
<!-- Google tag (gtag.js) -->
<script async src=\"https://www.googletagmanager.com/gtag/js?id=G-9KF526LB6D\"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-8LEDDLNB94');
</script>
";
} else {
$favicon = 'favicon-jaune.ico';
$faviconadm = 'favicon-orange.ico';
$vblnEnvironementPreProd = true;
$vblnEnvironementDev = true;
$vPaypaladv = true;
$vPaypaladv_SANDBOX = true;
$vPaypal_devise = 'CAD';
define('PAYPAL_ENV', 'prod_test');
define('PAYPAL_ENV_FOOTER', 'prod_test');
define('PAYPAL_BASE_URL', 'https://api-m.sandbox.paypal.com');
define('PAYPAL_CLIENT_ID', 'AXiOtwcCb4Vqf7QylPje-K2xp9lOIfCv_HMW8oWn1k8cRJJ0sSu_sVNjtQqaoDll9-vN8LpmfrqfI82d');
define('PAYPAL_CLIENT_SECRET', 'EEs_rbmAZlZFgm8m8e8S9lmZD47I9sf44wjbYEqu99uVpgHb0PHa3aSYG8Pe3772kr9FWZ33iDrPL9Jr');
define('PAYPAL_WEBHOOK_ID', '58G68258926315914');
define('PAYPAL_SANDBOX', true);
define('PAYPAL_CURRENCY', 'CAD');
}
$vEnvNotice = '
<div class="alert-warning py-2 text-center sticky-top">
<strong>Environnement backup <span class="text-uppercase">PROD
</div>
';
break;
/****************************
* Environnement PRODUCTION client *
****************************/
case "ms1inscription.com":
case "www.ms1inscription.com":
case "preprod.ms1inscription.com":
case "www.preprod.ms1inscription.com":
$vGoogleAnalytics = "";
$vblnEnvironementDev = false;
$blnShowErrors = false;
$vDomaine = $vDomaine2 = $vDomaineTiming = 'https://www.preprod.ms1inscription.com';
$vRepertoireFichiers = '/preprod';
$vEnvNotice = '
<div class="alert-warning py-2 text-center sticky-top">
<strong>Environnement Client <span class="text-uppercase">TEST</span>' . $strConAdmin . '</strong>
</div>
';
fxSettingsUseDbProfiles($tabConnClientPreprod, $tabConnClientProd, 'preprod');
fxSettingsUseCrmProfile($tabConnCrmClient);
$arrConFTP = array(
'host' => '127.0.0.1',
'user' => 'ms1inscription',
'pass' => 'ms1911',
'path_prod' => '/home/ms1incription/public_html',
'path_preprod'=> '/home/ms1incription/public_html/preprod'
);
$isPreprod = (strpos($strHost, 'preprod.') !== false);
if (!$isPreprod) {
$favicon = 'favicon.ico';
$faviconadm = 'favicon-rouge.ico';
fxSettingsUseDbProfiles($tabConnClientPreprod, $tabConnClientProd, 'prod');
$vblnEnvironementDev = false;
$vGoogleAnalytics = "";
$vPaypaladv = true;
$vPaypaladv_SANDBOX = false;
$vPaypal_devise = 'CAD';
define('PAYPAL_ENV', 'prod_client');
define('PAYPAL_ENV_FOOTER', 'prod_client');
define('PAYPAL_BASE_URL', 'https://api-m.paypal.com');
define('PAYPAL_CLIENT_ID', 'AU3fhK6opJ2cBkTghAHf02fsimwj345zn3TOPL5we3z0C9HNT_sU341OkIP9l-ucgE1JdBhmt3WlHb2v');
define('PAYPAL_CLIENT_SECRET', 'EDg0Y1ZxvUmrAxY9_-NZP3EsuoMRf2lu9st1mDn8Ha7f5z4hrk7_KKsu_tM_PSri86YuFRqbaVKBADlX');
define('PAYPAL_WEBHOOK_ID', '2EW679080K7814041');
define('PAYPAL_SANDBOX', false);
define('PAYPAL_CURRENCY', 'CAD');
if (isset($_SESSION['usa_id'])) {
$vEnvNotice = '
<div class="alert-warning py-2 text-center sticky-top">
<strong>Environnement Client <span class="text-uppercase">PROD</span>' . $strConAdmin . '</strong>
</div>
';
} else {
$vEnvNotice = '';
}
$vDomaine = $vDomaine2 = $vDomaineTiming = 'https://www.ms1inscription.com';
$vRepertoireFichiers = '';
$vGoogleAnalytics = "
<!-- Google tag (gtag.js) -->
<script async src=\"https://www.googletagmanager.com/gtag/js?id=G-9KF526LB6D\"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-8LEDDLNB94');
</script>
";
} else {
$favicon = 'favicon-jaune.ico';
$faviconadm = 'favicon-orange.ico';
$vblnEnvironementPreProd = true;
$vblnEnvironementDev = true;
$vPaypaladv = true;
$vPaypaladv_SANDBOX = true;
$vPaypal_devise = 'CAD';
define('PAYPAL_ENV', 'prod_test');
define('PAYPAL_ENV_FOOTER', 'prod_test');
define('PAYPAL_BASE_URL', 'https://api-m.sandbox.paypal.com');
define('PAYPAL_CLIENT_ID', 'AXiOtwcCb4Vqf7QylPje-K2xp9lOIfCv_HMW8oWn1k8cRJJ0sSu_sVNjtQqaoDll9-vN8LpmfrqfI82d');
define('PAYPAL_CLIENT_SECRET', 'EEs_rbmAZlZFgm8m8e8S9lmZD47I9sf44wjbYEqu99uVpgHb0PHa3aSYG8Pe3772kr9FWZ33iDrPL9Jr');
define('PAYPAL_WEBHOOK_ID', '58G68258926315914');
define('PAYPAL_SANDBOX', true);
define('PAYPAL_CURRENCY', 'CAD');
}
break;
/*************************
* Environnement dev (ms1inscriptiondev) *
*************************/
case "ms1inscriptiondev.progiweb.net":
case "preprod.ms1inscriptiondev.progiweb.net":
$vGoogleAnalytics = "";
$vblnEnvironementDev = true;
$blnShowErrors = true;
$vDomaine = $vDomaine2 = $vDomaineTiming = 'https://preprod.ms1inscriptiondev.progiweb.net';
$vRepertoireFichiers = '/preprod';
$vEnvNotice = '
<div class="alert-danger py-2 text-center sticky-top" >
<strong style="font-size: 1em;">
Environnement de Dévelopement<span class="text-uppercase">TEST</span>' . $strConAdmin . '
</strong>
</div>
';
fxSettingsUseDbProfiles($tabConnDevPreprod, $tabConnDevProd, 'preprod');
fxSettingsUseCrmProfile($tabConnCrmDev);
// Cross-BD client (tunnel/VPN) — sync_static_db.php, validation avant prod
$arrConDatabaseClientPreProd = $tabConnClientPreprod;
$arrConDatabaseClientProd = $tabConnClientProd;
$arrConFTP = array(
'host' => '127.0.0.1',
'user' => 'ms1inscription',
'pass' => 'ms1911',
'path_prod' => '/home/devinscription/public_html',
'path_preprod'=> '/home/devinscription/public_html/preprod'
);
$isPreprod = (strpos($strHost, 'preprod.') !== false);
if (!$isPreprod) {
$vEnvNotice = '
<div class="alert-danger py-2 text-center sticky-top">
<strong>Environnement de Dévelopement <span class="text-uppercase">client</span>' . $strConAdmin . '</strong>
</div>
';
$favicon = 'favicon-blan-dev.ico';
$faviconadm = 'favicon-rouge-dev.ico';
fxSettingsUseDbProfiles($tabConnDevPreprod, $tabConnDevProd, 'prod');
$vblnEnvironementDev = false;
$vGoogleAnalytics = "";
$vPaypaladv = true;
$vPaypaladv_SANDBOX = true;
$vPaypal_devise = 'CAD';
define('PAYPAL_ENV', 'dev_client');
define('PAYPAL_ENV_FOOTER', 'dev_client');
define('PAYPAL_BASE_URL', 'https://api-m.sandbox.paypal.com');
define('PAYPAL_CLIENT_ID', 'AQXvt0u9caqG-l_S5H-qFra-rEGiDifuk-eCa1DeylT0o4Vgc6RpnHQfMZt7lREyWH8nur6-_cgGtazF');
define('PAYPAL_CLIENT_SECRET', 'EOsLApT-17U2hU2bm0wXl0ZRqCg0eBaXTr9iz97LLziMHUt8nwi8ymgcDkkJ_msbBCZnOlR8IOw1KpTH');
define('PAYPAL_WEBHOOK_ID', '5AD874137H322344J');
define('PAYPAL_SANDBOX', true);
define('PAYPAL_CURRENCY', 'CAD');
$vDomaine = $vDomaine2 = $vDomaineTiming = 'https://ms1inscriptiondev.progiweb.net';
$vRepertoireFichiers = '';
} else {
$favicon = 'favicon-jaune-dev.ico';
$faviconadm = 'favicon-orange-dev.ico';
$vblnEnvironementPreProd = true;
$vPaypaladv = true;
$vPaypaladv_SANDBOX = true;
$vPaypal_devise = 'CAD';
define('PAYPAL_ENV', 'dev_test');
define('PAYPAL_ENV_FOOTER', 'dev_test');
define('PAYPAL_BASE_URL', 'https://api-m.sandbox.paypal.com');
define('PAYPAL_CLIENT_ID', 'AXLKhIIMWSaiLlNi6EqDK7zU5c65J7hEXAZUauPm_Nnd-5A3vxO81QZej3X0T1pgiZ9Wki_FexheCPgB');
define('PAYPAL_CLIENT_SECRET', 'EEEZPzN0mTANRpj1e2KdP-U0x8UpHKjktbITVLDr2STpwnNkvKMDQ66XcdJyrK0yIsjcW4UjTY7cUr9N');
define('PAYPAL_WEBHOOK_ID', '87T78443WB181490Y');
define('PAYPAL_SANDBOX', true);
define('PAYPAL_CURRENCY', 'CAD');
}
break;
}
/*****************************
*
* Connexion base de données *
*
*****************************/
$arrConDatabaseMain = array(
'host' => $strDatabaseHost,
'user' => $strDatabaseUser,
'pass' => $strDatabasePass,
'db' => $strDatabaseMain
);
$arrConDatabaseProd = array(
'host' => $strDatabaseHost,
'user' => $strDatabaseUser,
'pass' => $strDatabasePass,
'db' => $strDatabaseProd
);
$arrConDatabasePreProd = array(
'host' => $strDatabaseHost,
'user' => $strDatabaseUser,
'pass' => $strDatabasePass,
'db' => $strDatabasePreProd
);
$arrConDatabasecrm = array(
'host' => $strDatabaseHostcrm,
'user' => $strDatabaseUsercrm,
'pass' => $strDatabasePasscrm,
'db' => $strDatabaseMaincrm
);
/************************************
*
* Affichage des messages d'erreurs *
*
************************************/
if ($blnShowErrors) {
error_reporting(E_ALL);
ini_set('display_errors', false);
ini_set('display_startup_errors', TRUE);
define('EOL', (PHP_SAPI == 'cli') ? PHP_EOL : '<br>');
}
// MSIN-3855
require_once $_SERVER['DOCUMENT_ROOT'] . "/paypal_advanced/config.php";