This commit is contained in:
Fred Tempez 2024-09-30 19:22:08 +02:00
parent a474a41402
commit c4bb124bea
2 changed files with 86 additions and 46 deletions

View File

@ -320,12 +320,31 @@ class common
public function __construct() public function __construct()
{ {
// Construct cache
if (isset($GLOBALS['common_construct'])) {
$this->input['_POST'] = $GLOBALS['common_construct']['input']['_POST'];
$this->input['_COOKIE'] = $GLOBALS['common_construct']['input']['_COOKIE'];
self::$siteContent = $GLOBALS['common_construct']['siteContent'];
$this->dataFiles = $GLOBALS['common_construct']['dataFiles'];
$this->configFiles = $GLOBALS['common_construct']['configFiles'];
$this->user = $GLOBALS['common_construct']['user'];
self::$i18nUI = $GLOBALS['common_construct']['i18nUI'];
$this->hierarchy = $GLOBALS['common_construct']['hierarchy'];
$this->url = $GLOBALS['common_construct']['url'];
self::$dialog = $GLOBALS['common_construct']['dialog'];
return;
}
// Extraction des données http // Extraction des données http
if (isset($_POST)) { if (isset($_POST)) {
$this->input['_POST'] = $_POST; $this->input['_POST'] = $_POST;
// Cache
$GLOBALS['common_construct']['input']['_POST'] = $this->input['_POST'];
} }
if (isset($_COOKIE)) { if (isset($_COOKIE)) {
$this->input['_COOKIE'] = $_COOKIE; $this->input['_COOKIE'] = $_COOKIE;
// Cache
$GLOBALS['common_construct']['input']['_COOKIE'] = $this->input['_COOKIE'];
} }
// Déterminer le contenu du site // Déterminer le contenu du site
@ -336,16 +355,23 @@ class common
$_SESSION['ZWII_SITE_CONTENT'] = 'home'; $_SESSION['ZWII_SITE_CONTENT'] = 'home';
self::$siteContent = 'home'; self::$siteContent = 'home';
} }
// Cache
$GLOBALS['common_construct']['siteContent'] = self::$siteContent;
// Instanciation de la classe des entrées / sorties // Instanciation de la classe des entrées / sorties
// Les fichiers de configuration // Les fichiers de configuration
foreach ($this->configFiles as $module => $value) { foreach ($this->configFiles as $module => $value) {
$this->initDB($module); $this->initDB($module);
} }
// Cache
$GLOBALS['common_construct']['configFiles'] = $this->configFiles;
// Les fichiers des contenus // Les fichiers des contenus
foreach ($this->contentFiles as $module => $value) { foreach ($this->contentFiles as $module => $value) {
$this->initDB($module, self::$siteContent); $this->initDB($module, self::$siteContent);
} }
// Cache
$GLOBALS['common_construct']['dataFiles'] = $this->dataFiles;
// Installation fraîche, initialisation de la configuration inexistante // Installation fraîche, initialisation de la configuration inexistante
// Nécessaire pour le constructeur // Nécessaire pour le constructeur
@ -371,6 +397,8 @@ class common
if ($this->user === []) { if ($this->user === []) {
$this->user = $this->getData(['user', $this->getInput('ZWII_USER_ID')]); $this->user = $this->getData(['user', $this->getInput('ZWII_USER_ID')]);
} }
// Cache
$GLOBALS['common_construct']['user'] = $this->user;
// Langue de l'administration si le user est connecté // Langue de l'administration si le user est connecté
if ($this->getData(['user', $this->getUser('id'), 'language'])) { if ($this->getData(['user', $this->getUser('id'), 'language'])) {
@ -395,11 +423,15 @@ class common
// Stocker l'courseId pour le thème de TinyMCE // Stocker l'courseId pour le thème de TinyMCE
//setcookie('ZWII_SITE_CONTENT', self::$siteContent, time() + 3600, '', '', false, false); //setcookie('ZWII_SITE_CONTENT', self::$siteContent, time() + 3600, '', '', false, false);
setlocale(LC_ALL, self::$i18nUI); setlocale(LC_ALL, self::$i18nUI);
// Cache
$GLOBALS['common_construct']['i18nUI'] = self::$i18nUI;
// Construit la liste des pages parents/enfants // Construit la liste des pages parents/enfants
if ($this->hierarchy['all'] === []) { if ($this->hierarchy['all'] === []) {
$this->buildHierarchy(); $this->buildHierarchy();
} }
// Cache
$GLOBALS['common_construct']['hierarchy'] = $this->hierarchy;
// Construit l'url // Construit l'url
if ($this->url === '') { if ($this->url === '') {
@ -409,6 +441,8 @@ class common
$this->url = $this->homePageId(); $this->url = $this->homePageId();
} }
} }
// Cache
$GLOBALS['common_construct']['url'] = $this->url;
// Chargement des dialogues // Chargement des dialogues
if (!file_exists(self::I18N_DIR . self::$i18nUI . '.json')) { if (!file_exists(self::I18N_DIR . self::$i18nUI . '.json')) {
@ -428,6 +462,8 @@ class common
self::$dialog = array_merge(self::$dialog, $d); self::$dialog = array_merge(self::$dialog, $d);
} }
} }
// Cache
$GLOBALS['common_construct']['dialog'] = self::$dialog;
// Données de proxy // Données de proxy
$proxy = $this->getData(['config', 'proxyType']) . $this->getData(['config', 'proxyUrl']) . ':' . $this->getData(['config', 'proxyPort']); $proxy = $this->getData(['config', 'proxyType']) . $this->getData(['config', 'proxyUrl']) . ':' . $this->getData(['config', 'proxyPort']);
@ -1037,7 +1073,8 @@ public function setData($keys = [], $save = true)
/** /**
* @return bool l'utilisateur est connecté true sinon false * @return bool l'utilisateur est connecté true sinon false
*/ */
public function isConnected() { public function isConnected()
{
return ( return (
!empty($this->getUser('authKey')) !empty($this->getUser('authKey'))
&& &&

View File

@ -25,6 +25,9 @@ $siteId = md5($_SERVER['SERVER_NAME'] . $_SERVER['SCRIPT_FILENAME']); // Ou util
// Change le nom de la session en fonction de cet identifiant // Change le nom de la session en fonction de cet identifiant
session_name('zwii_session_' . $siteId); session_name('zwii_session_' . $siteId);
// Récupère dynamiquement le chemin du dossier dans lequel le script est exécuté
$scriptPath = dirname($_SERVER['SCRIPT_NAME']);
// Si le chemin est vide (ce qui peut arriver si le site est à la racine), définis-le comme '/' // Si le chemin est vide (ce qui peut arriver si le site est à la racine), définis-le comme '/'
if ($scriptPath === '/' || $scriptPath === '\\' || $scriptPath === '.') { if ($scriptPath === '/' || $scriptPath === '\\' || $scriptPath === '.') {
$scriptPath = '/'; $scriptPath = '/';