chargement à la demande

This commit is contained in:
Fred Tempez 2022-04-14 21:54:09 +02:00
parent c073109f5a
commit 071899ae2a

View File

@ -165,7 +165,6 @@ class common {
private $saveFlag = false; private $saveFlag = false;
// Descripteur de données Entrées / Sorties // Descripteur de données Entrées / Sorties
// Liste ici tous les fichiers de données
private $dataFiles = [ private $dataFiles = [
'admin' => '', 'admin' => '',
'blacklist' => '', 'blacklist' => '',
@ -177,7 +176,6 @@ class common {
'page' => '', 'page' => '',
'theme' => '', 'theme' => '',
'user' => '' 'user' => ''
]; ];
public static $fontsWebSafe = [ public static $fontsWebSafe = [
@ -272,42 +270,6 @@ class common {
self::$i18n = 'fr'; self::$i18n = 'fr';
} }
// Instanciation de la classe des entrées / sorties
// Récupère les descripteurs
foreach ($this->dataFiles as $keys => $value) {
// Constructeur JsonDB
$this->dataFiles[$keys] = new \Prowebcraft\JsonDb([
'name' => $keys . '.json',
'dir' => $this->dataPath ($keys, self::$i18n),
'backup' => file_exists('site/data/.backup')
]);;
}
// Import version 9
if (file_exists(self::DATA_DIR . 'core.json') === true &&
$this->getData(['core','dataVersion']) < 10000) {
$keepUsers = isset($_SESSION['KEEP_USERS']) ? $_SESSION['KEEP_USERS'] : false;
$this->importData($keepUsers);
unset ($_SESSION['KEEP_USERS']);
// Réinstaller htaccess
copy('core/module/install/ressource/.htaccess', self::DATA_DIR . '.htaccess');
common::$importNotices [] = "Importation réalisée avec succès" ;
//echo '<script>window.location.replace("' . helper::baseUrl() . $this->getData(['config','homePageId']) . '")</script>';
}
// Installation fraîche, initialisation des modules manquants
// La langue d'installation par défaut est fr
foreach ($this->dataFiles as $stageId => $item) {
$folder = $this->dataPath ($stageId, self::$i18n);
if ( file_exists($folder . $stageId .'.json') === false ||
$this->getData([$stageId]) === NULL
) {
$this->initData($stageId, self::$i18n);
common::$coreNotices [] = $stageId ;
}
}
// Utilisateur connecté // Utilisateur connecté
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')]);
@ -470,6 +432,10 @@ class common {
* @param array $keys Clé(s) des données * @param array $keys Clé(s) des données
*/ */
public function deleteData($keys) { public function deleteData($keys) {
// Récupère le descripteur dans le tableau dataFiles si absent
$this->connectData($keys[0]);
// Descripteur de la base // Descripteur de la base
$db = $this->dataFiles[$keys[0]]; $db = $this->dataFiles[$keys[0]];
// Initialisation de la requête par le nom de la base // Initialisation de la requête par le nom de la base
@ -499,6 +465,9 @@ class common {
return false; return false;
} }
// Récupère le descripteur dans le tableau dataFiles si absent
$this->connectData($keys[0]);
// Initialisation du retour en cas d'erreur de descripteur // Initialisation du retour en cas d'erreur de descripteur
$success = false; $success = false;
// Construire la requête dans la base inf à 1 retourner toute la base // Construire la requête dans la base inf à 1 retourner toute la base
@ -524,6 +493,9 @@ class common {
*/ */
public function getData($keys = []) { public function getData($keys = []) {
// Récupère le descripteur dans le tableau dataFiles si absent
$this->connectData($keys[0]);
// Eviter une requete vide // Eviter une requete vide
if (count($keys) >= 1) { if (count($keys) >= 1) {
// descripteur de la base // descripteur de la base
@ -812,6 +784,29 @@ class common {
} }
private function connectData ($database) {
// Installation fraîche, initialisation des modules manquants
// La langue d'installation par défaut est fr
$folder = $this->dataPath ($database, self::$i18n);
if ( file_exists($folder . $database .'.json') === false
) {
$this->initData($database, self::$i18n);
common::$coreNotices [] = $database ;
}
// Instanciation de la classe des entrées / sorties
// Constructeur JsonDB
if (!is_object($this->dataFiles[$database]) ) {
$this->dataFiles[$database] = new \Prowebcraft\JsonDb([
'name' => $database . '.json',
'dir' => $this->dataPath ($database, self::$i18n),
'backup' => file_exists('site/data/.backup')
]);;
}
}
/** /**
* Génère un fichier json avec la liste des pages * Génère un fichier json avec la liste des pages
* *