private function genImportMatrice($file) { $ff = $file; $file = BASE . 'io/' . $file; if (!is_file($file)) { return false; } $fileName = str_replace('.zip', '', $ff); $contents = ''; $configData = ''; // Extraction des données de la databse vers un dossier Temp $nameDirTemp = BASE . 'data/_temp/'; if (!is_dir($nameDirTemp)) { @mkdir($nameDirTemp); } if (!is_dir($nameDirTemp . $fileName . '/')) { @mkdir($nameDirTemp . $fileName . '/'); } $dirTempDatabase = $nameDirTemp . $fileName . '/'; $dirToCopyAllDatas = BASE . ''; // Récupération du fichier de configuration doorgets.php $zip = new ZipArchive(); if ($res = $zip->open($file)) { $zip->extractTo($dirTempDatabase); $zip->close(); } $contents = file_get_contents($dirTempDatabase . 'database/doorgets.php'); $configData = unserialize($contents); if (!empty($configData) && is_array($configData)) { $sql_query_install = ''; $dirDatabase = 'database/'; //$this->doorGets->dbpdo = null; $db = new CRUDx(); // Installation de la base de données $sqlToSave = array(); foreach ($configData as $k => $v) { if (!empty($v['sql_create_table'])) { $query = $v['sql_create_table']; $query = trim($query); if (!empty($query)) { $sql_query_install .= $query; } } $dirDatabaseName = $dirTempDatabase . $dirDatabase . $k . '/'; $allFiles = $this->files($dirDatabaseName); foreach ($allFiles as $nameFile) { if (is_file($dirDatabaseName . $nameFile)) { $dataTableFile = file_get_contents($dirDatabaseName . $nameFile); if ($dataTableContent = unserialize($dataTableFile)) { $sqlToSave[] = $dataTableContent; } } } } $db->dbQuery($sql_query_install); $db->dbpdo->commit(); $db->dbpdo = null; foreach ($sqlToSave as $query) { if (!empty($query)) { $db = new CRUD(); $db->dbQuery($query); $db->dbpdo->commit(); $db->dbpdo = null; } } // Copie des fichiers doorGets $this->full_copy($dirTempDatabase . 'doorgets/', BASE); // Suppression des données temporaire if (is_dir($nameDirTemp)) { $this->destroy_dir($nameDirTemp); } } FlashInfo::set($this->l("Votre sauvegarde est installée")); header("Location:./?controller=configuration&action=backups"); exit; }