bug setPage + réécriture de l'importation

This commit is contained in:
Fred Tempez 2021-09-14 20:54:31 +02:00
parent d642560e30
commit 63a831af1f
4 changed files with 35 additions and 27 deletions

View File

@ -485,7 +485,7 @@ class common {
*/ */
public function setPage($page, $value, $lang) { public function setPage($page, $value, $lang) {
return file_put_contents(self::DATA_DIR . $lang . '/content/' . $this->getData(['page', $page, 'content']), $value); return file_put_contents(self::DATA_DIR . $lang . '/content/' . $page . '.html', $value);
} }

View File

@ -633,8 +633,8 @@ if ($this->getData(['core', 'dataVersion']) < 11000) {
} }
foreach ($pageList as $parentKey => $parent) { foreach ($pageList as $parentKey => $parent) {
$content = $this->getData(['page', $parent, 'content']); $content = $this->getData(['page', $parent, 'content']);
// file_put_contents(self::DATA_DIR . self::$i18n . '/content/' . $parent . '.html', $content); //file_put_contents(self::DATA_DIR . self::$i18n . '/content/' . $parent . '.html', $content);
$this->setPage($parent, $content, self::$i18n); $this->setPage($parent, $content, 'fr');
$this->setData(['page', $parent, 'content', $parent . '.html']); $this->setData(['page', $parent, 'content', $parent . '.html']);
} }
@ -642,6 +642,4 @@ if ($this->getData(['core', 'dataVersion']) < 11000) {
$this->setData(['config','seo','robots',true]); $this->setData(['config','seo','robots',true]);
$this->setData(['core', 'dataVersion', 11000]); $this->setData(['core', 'dataVersion', 11000]);
} }
?>

View File

@ -193,7 +193,7 @@ class config extends common {
$this->addOutput([ $this->addOutput([
'notification' => $successSitemap ? 'Mises à jour des fichiers sitemap et robots.txt' : 'Echec d\'écriture, le site map n\'a pas été mis à jour', 'notification' => $successSitemap ? 'Mises à jour des fichiers sitemap et robots.txt' : 'Echec d\'écriture, le site map n\'a pas été mis à jour',
'redirect' => helper::baseUrl() . 'config/advanced', 'redirect' => helper::baseUrl() . 'config/advanced',
'state' => $successSitemap 'state' => $successSitemap
]); ]);
} }
@ -298,25 +298,35 @@ class config extends common {
$files [] = ( basename( $stat['name'] )); $files [] = ( basename( $stat['name'] ));
} }
// Détermination de la version à installer // Lire la dataversion
if (in_array('theme.json',$files) === true && $tmpDir = uniqid(4);
in_array('core.json',$files) === true && $success = $zip->extractTo( self::TEMP_DIR . $tmpDir );
in_array ('user.json', $files) === false ) { $data = file_get_contents( self::TEMP_DIR . $tmpDir . '/data/core.json');
// V9 pas de fichier user dans l'archive $obj = json_decode($data);
// Stocker le choix de conserver les users installées $dataVersion = strval ($obj->core->dataVersion);
$version = '9'; switch (strlen($dataVersion)) {
case 4:
if (substr($dataVersion,0,1) === '9' ) {
$version = 9;
} else {
$version = 0;
}
break;
case 5:
$version = substr($dataVersion,0,2);
break;
default:
$version = 0;
break;
}
$this->removeDir(self::TEMP_DIR . $tmpDir );
} elseif (in_array('theme.json',$files) === true && if ($version >= 10 ) {
in_array('core.json',$files) === true &&
in_array ('user.json', $files) === true &&
in_array ('config.json', $files) === true ) {
// V10 valide
$version = '10';
// Option active, les users sont stockées // Option active, les users sont stockées
if ($this->getInput('configRestoreImportUser', helper::FILTER_BOOLEAN) === true ) { if ($this->getInput('configRestoreImportUser', helper::FILTER_BOOLEAN) === true ) {
$users = $this->getData(['user']); $users = $this->getData(['user']);
} }
} else { // Version invalide } elseif ($version === 0) { // Version invalide
// Valeurs en sortie erreur // Valeurs en sortie erreur
$this->addOutput([ $this->addOutput([
'notification' => 'Cette archive n\'est pas une sauvegarde valide', 'notification' => 'Cette archive n\'est pas une sauvegarde valide',
@ -326,7 +336,7 @@ class config extends common {
} }
// Préserver les comptes des utilisateurs d'une version 9 si option cochée // Préserver les comptes des utilisateurs d'une version 9 si option cochée
// Positionnement d'une variable de session lue au constructeurs // Positionnement d'une variable de session lue au constructeurs
if ($version === '9') { if ($version === 9) {
$_SESSION['KEEP_USERS'] = $this->getInput('configRestoreImportUser', helper::FILTER_BOOLEAN); $_SESSION['KEEP_USERS'] = $this->getInput('configRestoreImportUser', helper::FILTER_BOOLEAN);
} }
// Extraire le zip ou 'site/' // Extraire le zip ou 'site/'
@ -334,13 +344,13 @@ class config extends common {
// Fermer l'archive // Fermer l'archive
$zip->close(); $zip->close();
// Restaurer les users originaux d'une v10 si option cochée // Restaurer les users originaux d'une v10 si option cochée
if (!empty($users) && if (!empty($users) &&
$version === '10' && $version >= 10 &&
$this->getInput('configRestoreImportUser', helper::FILTER_BOOLEAN) === true) { $this->getInput('configRestoreImportUser', helper::FILTER_BOOLEAN) === true) {
$this->setData(['user',$users]); $this->setData(['user',$users]);
} }
// Message de notification // Message de notification
$notification = $success === true ? 'Restauration réalisée avec succès' : 'Erreur inconnue'; $notification = $success === true ? 'Restauration réalisée avec succès' : 'Erreur inconnue';
$redirect = $this->getInput('configRestoreImportUser', helper::FILTER_BOOLEAN) === true ? helper::baseUrl() . 'config/restore' : helper::baseUrl() . 'user/login/'; $redirect = $this->getInput('configRestoreImportUser', helper::FILTER_BOOLEAN) === true ? helper::baseUrl() . 'config/restore' : helper::baseUrl() . 'user/login/';

View File

@ -440,8 +440,8 @@ class page extends common {
mkdir(self::DATA_DIR . self::$i18n . '/content'); mkdir(self::DATA_DIR . self::$i18n . '/content');
} }
$content = empty($this->getInput('pageEditContent', null)) ? '<p></p>' : str_replace('<p></p>', '<p>&nbsp;</p>', $this->getInput('pageEditContent', null)); $content = empty($this->getInput('pageEditContent', null)) ? '<p></p>' : str_replace('<p></p>', '<p>&nbsp;</p>', $this->getInput('pageEditContent', null));
// file_put_contents( self::DATA_DIR . self::$i18n . '/content/' . $pageId . '.html' , $content ); //file_put_contents( self::DATA_DIR . self::$i18n . '/content/' . $pageId . '.html' , $content );
$this->setPage($pageId, $content, self::$i18n); $this->setPage($pageId , $content, self::$i18n);
// Barre renommée : changement le nom de la barre dans les pages mères // Barre renommée : changement le nom de la barre dans les pages mères
if ($this->getinput('pageEditBlock') === 'bar') { if ($this->getinput('pageEditBlock') === 'bar') {
foreach ($this->getHierarchy() as $eachPageId=>$parentId) { foreach ($this->getHierarchy() as $eachPageId=>$parentId) {