diff --git a/core/core.php b/core/core.php index 45d821ff..c4afd129 100644 --- a/core/core.php +++ b/core/core.php @@ -165,7 +165,6 @@ class common { private $saveFlag = false; // Descripteur de données Entrées / Sorties - // Liste ici tous les fichiers de données private $dataFiles = [ 'admin' => '', 'blacklist' => '', @@ -177,7 +176,6 @@ class common { 'page' => '', 'theme' => '', 'user' => '' - ]; public static $fontsWebSafe = [ @@ -272,42 +270,6 @@ class common { 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 ''; - } - - // 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é if($this->user === []) { $this->user = $this->getData(['user', $this->getInput('ZWII_USER_ID')]); @@ -470,6 +432,10 @@ class common { * @param array $keys Clé(s) des données */ public function deleteData($keys) { + + // Récupère le descripteur dans le tableau dataFiles si absent + $this->connectData($keys[0]); + // Descripteur de la base $db = $this->dataFiles[$keys[0]]; // Initialisation de la requête par le nom de la base @@ -499,6 +465,9 @@ class common { 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 $success = false; // Construire la requête dans la base inf à 1 retourner toute la base @@ -524,6 +493,9 @@ class common { */ public function getData($keys = []) { + // Récupère le descripteur dans le tableau dataFiles si absent + $this->connectData($keys[0]); + // Eviter une requete vide if (count($keys) >= 1) { // 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 *