[10.0.030.dev] correction CSS + modification config / restore and backup

This commit is contained in:
Fred Tempez 2020-02-10 16:36:57 +01:00
parent 72c2ac151c
commit 90946cf9f1
6 changed files with 134 additions and 95 deletions

View File

@ -34,7 +34,7 @@ class common {
const TEMP_DIR = 'site/tmp/'; const TEMP_DIR = 'site/tmp/';
// Numéro de version // Numéro de version
const ZWII_VERSION = '10.0.029.dev'; const ZWII_VERSION = '10.0.030.dev';
public static $actions = []; public static $actions = [];
public static $coreModuleIds = [ public static $coreModuleIds = [

View File

@ -145,6 +145,10 @@ img[align='right'] {
margin-left: 10px; margin-left: 10px;
} }
#metaImage {
height: 100px;
}
/* /*
Signature dans les articles blog et news Signature dans les articles blog et news
*/ */
@ -972,13 +976,14 @@ label {
width: 88%; width: 88%;
} }
.inputFileDelete { .inputFileDelete {
display: inline-block; display: block;
width: 10%; width: 10%;
padding: 10px 0; padding: 10px 0;
background: #F5F5F5; background: #F5F5F5;
text-align: center; text-align: center;
/*float: right;*/ float: right;
min-height :100%; min-height :100%;
} }
.inputFile:hover { .inputFile:hover {
text-decoration: none; text-decoration: none;

View File

@ -20,7 +20,7 @@ class config extends common {
'generateFiles' => self::GROUP_ADMIN, 'generateFiles' => self::GROUP_ADMIN,
'updateRobots' => self::GROUP_ADMIN, 'updateRobots' => self::GROUP_ADMIN,
'index' => self::GROUP_ADMIN, 'index' => self::GROUP_ADMIN,
'manage' => self::GROUP_ADMIN, 'restore' => self::GROUP_ADMIN,
'updateBaseUrl' => self::GROUP_ADMIN 'updateBaseUrl' => self::GROUP_ADMIN
]; ];
@ -200,21 +200,29 @@ class config extends common {
* Sauvegarde des données * Sauvegarde des données
*/ */
public function backup() { public function backup() {
// Creation du ZIP // Soumission du formulaire
$filter = $this->getInput('configBackupOption',helper::FILTER_BOOLEAN) === true ? ['backup','tmp'] : ['backup','tmp','file']; if($this->isPost()) {
$fileName = helper::autoBackup(self::TEMP_DIR,$filter); // Creation du ZIP
$filter = $this->getInput('configBackupOption',helper::FILTER_BOOLEAN) === true ? ['backup','tmp'] : ['backup','tmp','file'];
$fileName = helper::autoBackup(self::TEMP_DIR,$filter);
// Téléchargement du ZIP // Téléchargement du ZIP
header('Content-Type: application/zip'); header('Content-Type: application/zip');
header('Content-Disposition: attachment; filename="' . $fileName . '"'); header('Content-Disposition: attachment; filename="' . $fileName . '"');
header('Content-Length: ' . filesize(self::TEMP_DIR . $fileName)); header('Content-Length: ' . filesize(self::TEMP_DIR . $fileName));
readfile(self::TEMP_DIR . $fileName); readfile(self::TEMP_DIR . $fileName);
// Valeurs en sortie // Valeurs en sortie
$this->addOutput([ $this->addOutput([
'display' => self::DISPLAY_RAW 'display' => self::DISPLAY_RAW
]); ]);
unlink(self::TEMP_DIR . $fileName); unlink(self::TEMP_DIR . $fileName);
exit(); } else {
// Valeurs en sortie
$this->addOutput([
'title' => 'Sauvegarder',
'view' => 'backup'
]);
}
} }
/** /**
@ -254,11 +262,11 @@ class config extends common {
/** /**
* Procédure d'importation * Procédure d'importation
*/ */
public function manage() { public function restore() {
// Soumission du formulaire // Soumission du formulaire
if($this->isPost()) { if($this->isPost()) {
//if ($this->getInput('configManageImportFile')) //if ($this->getInput('configrestoreImportFile'))
$fileZip = $this->getInput('configManageImportFile'); $fileZip = $this->getInput('configRestoreImportFile');
$file_parts = pathinfo($fileZip); $file_parts = pathinfo($fileZip);
$folder = date('Y-m-d-h-i-s', time()); $folder = date('Y-m-d-h-i-s', time());
$zip = new ZipArchive(); $zip = new ZipArchive();
@ -266,7 +274,7 @@ class config extends common {
// Valeurs en sortie erreur // Valeurs en sortie erreur
$this->addOutput([ $this->addOutput([
'notification' => 'Le fichier n\'est pas une archive valide', 'notification' => 'Le fichier n\'est pas une archive valide',
'redirect' => helper::baseUrl() . 'config/manage', 'redirect' => helper::baseUrl() . 'config/restore',
'state' => false 'state' => false
]); ]);
} }
@ -275,7 +283,7 @@ class config extends common {
// Valeurs en sortie erreur // Valeurs en sortie erreur
$this->addOutput([ $this->addOutput([
'notification' => 'Impossible de lire l\'archive', 'notification' => 'Impossible de lire l\'archive',
'redirect' => helper::baseUrl() . 'config/manage', 'redirect' => helper::baseUrl() . 'config/restore',
'state' => false 'state' => false
]); ]);
} }
@ -300,14 +308,14 @@ class config extends common {
// V10 valide user et config // V10 valide user et config
$version = '10'; $version = '10';
// Option active, les users sont stockées // Option active, les users sont stockées
if ($this->getInput('configManageImportUser', helper::FILTER_BOOLEAN) === true ) { if ($this->getInput('configRestoreImportUser', helper::FILTER_BOOLEAN) === true ) {
$users = $this->getData(['user']); $users = $this->getData(['user']);
} }
} else { // Version invalide } else { // 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',
'redirect' => helper::baseUrl() . 'config/manage', 'redirect' => helper::baseUrl() . 'config/restore',
'state' => false 'state' => false
]); ]);
} }
@ -315,7 +323,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 constructeur // Positionnement d'une variable de session lue au constructeur
if ($version === '9') { if ($version === '9') {
$_SESSION['KEEP_USERS'] = $this->getInput('configManageImportUser', helper::FILTER_BOOLEAN); $_SESSION['KEEP_USERS'] = $this->getInput('configRestoreImportUser', helper::FILTER_BOOLEAN);
} }
// Extraire le zip // Extraire le zip
@ -326,13 +334,13 @@ class config extends common {
// 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('configManageImportUser', 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 ? 'Sauvegarde importée avec succès' : 'Erreur d\'extraction'; $notification = $success === true ? 'Sauvegarde importée avec succès' : 'Erreur d\'extraction';
$redirect = $this->getInput('configManageImportUser', helper::FILTER_BOOLEAN) === true ? helper::baseUrl() . 'config/manage' : helper::baseUrl() . 'user/login/'; $redirect = $this->getInput('configRestoreImportUser', helper::FILTER_BOOLEAN) === true ? helper::baseUrl() . 'config/restore' : helper::baseUrl() . 'user/login/';
// Valeurs en sortie erreur // Valeurs en sortie erreur
$this->addOutput([ $this->addOutput([
'notification' => $notification, 'notification' => $notification,
@ -343,8 +351,8 @@ class config extends common {
// Valeurs en sortie // Valeurs en sortie
$this->addOutput([ $this->addOutput([
'title' => 'Sauvegarder / Restaurer', 'title' => 'Restaurer',
'view' => 'manage' 'view' => 'restore'
]); ]);
} }
@ -475,7 +483,7 @@ class config extends common {
// Valeurs en sortie // Valeurs en sortie
$this->addOutput([ $this->addOutput([
'notification' => $success ? 'Conversion effectuée' : 'Aucune conversion', 'notification' => $success ? 'Conversion effectuée' : 'Aucune conversion',
'redirect' => helper::baseUrl() . 'config/manage', 'redirect' => helper::baseUrl() . 'config/restore',
'state' => $success ? true : false 'state' => $success ? true : false
]); ]);
} }

View File

@ -0,0 +1,33 @@
<?php echo template::formOpen('configBackupForm'); ?>
<div class="row">
<div class="col2">
<?php echo template::button('configBackupBack', [
'class' => 'buttonGrey',
'href' => helper::baseUrl() . 'config',
'ico' => 'left',
'value' => 'Retour'
]); ?>
</div>
<div class="col2 offset8">
<?php echo template::submit('configBackupSubmit',[
'value' => 'Télécharger',
'ico' => 'download'
]); ?>
</div>
</div>
<div class="row">
<div class="col12">
<div class="block">
<h4>Option de sauvegarde</h4>
<div class="row">
<div class="col10">
<?php echo template::checkbox('configBackupOption', true, 'Inclure le contenu du gestionnaire de fichiers', [
'checked' => true,
'help' => 'Cette option n\'est pas recommandée lorsque le contenu du gestionnaire de fichiers est très volumineux.'
]); ?>
</div>
</div>
</div>
</div>
</div>
<?php echo template::formClose(); ?>

View File

@ -7,14 +7,8 @@
'ico' => 'home', 'ico' => 'home',
'value' => 'Accueil' 'value' => 'Accueil'
]); ?> ]); ?>
</div> </div>
<div class="col3 offset5"> <div class="col2 offset8">
<?php echo template::button('configManageButton', [
'href' => helper::baseUrl() . 'config/manage',
'value' => 'Sauvegarder / Restaurer'
]); ?>
</div>
<div class="col2">
<?php echo template::submit('configSubmit'); ?> <?php echo template::submit('configSubmit'); ?>
</div> </div>
</div> </div>
@ -116,29 +110,23 @@
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div class="col6"> <div class="col6">
<?php echo template::checkbox('configAutoBackup', true, 'Sauvegarde automatique quotidienne partielle', [ <?php echo template::checkbox('configMaintenance', true, 'Site en maintenance', [
'checked' => $this->getData(['config', 'autoBackup']), 'checked' => $this->getData(['config', 'maintenance'])
'help' => '<p>Une archive contenant le dossier /site/data est copiée dans le dossier \'site/backup\'. La sauvegarde est conservée pendant 30 jours.</p><p>Le contenu du gestionnaire de fichiers n\'est pas sauvegardé.</p>'
]); ?> ]); ?>
</div> </div>
<div class="col6"> <div class="col6">
<?php echo template::checkbox('configAutoUpdate', true, 'Mise à jour automatique', [ <?php echo template::checkbox('configAutoUpdate', true, 'Mise à jour automatique', [
'checked' => $this->getData(['config', 'autoUpdate']), 'checked' => $this->getData(['config', 'autoUpdate']),
'help' => 'Vérification quotidienne des mises à jour.' 'help' => 'Vérification quotidienne des mises à jour.'
]); ?> ]); ?>
</div> </div>
</div>
<div class="row">
<div class="col6">
<?php echo template::checkbox('configMaintenance', true, 'Site en maintenance', [
'checked' => $this->getData(['config', 'maintenance'])
]); ?>
</div>
</div> </div>
</div> </div>
</div> </div>
<div class="col6"> </div>
<div class="row">
<div class="col12">
<div class="block"> <div class="block">
<h4>Réseaux sociaux</h4> <h4>Réseaux sociaux</h4>
<div class="row"> <div class="row">
@ -205,6 +193,35 @@
</div> </div>
</div> </div>
</div> </div>
</div>
<div class="row">
<div class="col6">
<div class="block">
<h4>Sauvegarde et restauration</h4>
<div class="row">
<div class="col12">
<?php echo template::checkbox('configAutoBackup', true, 'Sauvegarde automatique quotidienne partielle', [
'checked' => $this->getData(['config', 'autoBackup']),
'help' => '<p>Une archive contenant le dossier /site/data est copiée dans le dossier \'site/backup\'. La sauvegarde est conservée pendant 30 jours.</p><p>Le contenu du gestionnaire de fichiers n\'est pas sauvegardé.</p>'
]); ?>
</div>
</div>
<div class="row">
<div class="col4 offset2">
<?php echo template::button('configManageButton', [
'href' => helper::baseUrl() . 'config/backup',
'value' => 'Sauvegarder'
]); ?>
</div>
<div class="col4 offset1">
<?php echo template::button('configManageButton', [
'href' => helper::baseUrl() . 'config/restore',
'value' => 'Restaurer'
]); ?>
</div>
</div>
</div>
</div>
<div class="col6"> <div class="col6">
<div class="block"> <div class="block">
<h4>Référencement</h4> <h4>Référencement</h4>
@ -224,13 +241,11 @@
</div> </div>
<div class="row"> <div class="row">
<div class="col12 textAlignCenter"> <div class="col12 textAlignCenter">
<img src="<?php echo helper::baseUrl(false) . self::FILE_DIR.'source/screenshot.png';?>" data-tippy-content="Cette capture d'écran est nécessaire aux partages sur les réseaux sociaux. Elle est régénérée lorsque le fichier 'screenshot.png' est effacé du gestionnaire de fichiers." /> <img id="metaImage" src="<?php echo helper::baseUrl(false) . self::FILE_DIR.'source/screenshot.png';?>" data-tippy-content="Cette capture d'écran est nécessaire aux partages sur les réseaux sociaux. Elle est régénérée lorsque le fichier 'screenshot.png' est effacé du gestionnaire de fichiers." />
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div>
<div class="row">
<div class="col12"> <div class="col12">
<?php <?php
// Lire le contenu des fichiers de script // Lire le contenu des fichiers de script

View File

@ -1,43 +1,27 @@
<?php echo template::formOpen('configManageForm'); ?> <?php echo template::formOpen('configRestoreForm'); ?>
<div class="row"> <div class="row">
<div class="col2"> <div class="col2">
<?php echo template::button('configManageBack', [ <?php echo template::button('configRestoreBack', [
'class' => 'buttonGrey', 'class' => 'buttonGrey',
'href' => helper::baseUrl() . 'config', 'href' => helper::baseUrl() . 'config',
'ico' => 'left', 'ico' => 'left',
'value' => 'Retour' 'value' => 'Retour'
]); ?> ]); ?>
</div> </div>
<div class="col2 offset8">
<?php echo template::submit('configRestoreSubmit',[
'value' => 'Restaurer',
'ico' => 'upload'
]); ?>
</div>
</div> </div>
<div class="row"> <div class="row">
<div class="col6"> <div class="col12">
<div class="block">
<h4>Sauvegarde totale du site</h4>
<div class="row">
<div class="col10 offset1">
<?php echo template::button('configBackupButton', [
'href' => helper::baseUrl() . 'config/backup',
'value' => 'Générer et télécharger <br />les données de site',
]); ?>
</div>
</div>
<div class="row">
<div class="col10">
<?php echo template::checkbox('configBackupOption', true, 'Inclure le contenu du gestionnaire de fichiers', [
'checked' => true,
'disabled' => true,
'help' => 'Cette option n\'est pas recommandée lorsque le contenu du gestionnaire de fichiers est très volumineux.'
]); ?>
</div>
</div>
</div>
</div>
<div class="col6">
<div class="block"> <div class="block">
<h4>Restauration ou transfert d'un site</h4> <h4>Restauration ou transfert d'un site</h4>
<div class="row"> <div class="row">
<div class="col12"> <div class="col8 offset2">
<?php echo template::file('configManageImportFile', [ <?php echo template::file('configRestoreImportFile', [
'label' => 'Sélectionnez une archive au format ZIP', 'label' => 'Sélectionnez une archive au format ZIP',
'type' => 2, 'type' => 2,
'help' => 'L\'archive a été déposée dans le gestionaire de fichiers. Les archives inférieures à la version 9 ne sont pas acceptées.' 'help' => 'L\'archive a été déposée dans le gestionaire de fichiers. Les archives inférieures à la version 9 ne sont pas acceptées.'
@ -45,17 +29,12 @@
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div class="col8"> <div class="col8 offset2">
<?php echo template::checkbox('configManageImportUser', true, 'Préserver utilisateurs installés', [ <?php echo template::checkbox('configRestoreImportUser', true, 'Préserver utilisateurs installés', [
'checked' => true, 'checked' => true,
'help' => 'Les données des utilisateurs installés ne sont pas écrasés par la restauration quand l\'option est active.' 'help' => 'Les données des utilisateurs installés ne sont pas écrasés par la restauration quand l\'option est active.'
]); ?> ]); ?>
</div> </div>
<div class="col4">
<?php echo template::submit('configManageSubmit',[
'value' => 'Restaurer'
]); ?>
</div>
</div> </div>
</div> </div>
</div> </div>
@ -77,7 +56,7 @@
$baseUrlValue = $this->getData(['core', 'baseUrl']); $baseUrlValue = $this->getData(['core', 'baseUrl']);
$buttonClass = (helper::baseUrl(true,false) !== $this->getData(['core', 'baseUrl']) ) ? '' : 'disabled'; $buttonClass = (helper::baseUrl(true,false) !== $this->getData(['core', 'baseUrl']) ) ? '' : 'disabled';
} }
echo template::text('configManageBaseURLToConvert', [ echo template::text('configRestoreBaseURLToConvert', [
'label' => 'Dossier d\'installation de l\'archive' , 'label' => 'Dossier d\'installation de l\'archive' ,
'value' => $baseUrlValue, 'value' => $baseUrlValue,
'readonly' => true, 'readonly' => true,
@ -85,7 +64,7 @@
]); ?> ]); ?>
</div> </div>
<div class="col5"> <div class="col5">
<?php echo template::text('configManageCurrentURL', [ <?php echo template::text('configRestoreCurrentURL', [
'label' => 'Dossier du site actuel', 'label' => 'Dossier du site actuel',
'value' => helper::baseUrl(true,false), 'value' => helper::baseUrl(true,false),
'readonly' => true, 'readonly' => true,
@ -93,7 +72,7 @@
]); ?> ]); ?>
</div> </div>
<div class="col2 verticalAlignBottom"> <div class="col2 verticalAlignBottom">
<?php echo template::button('configManageUpdateBaseURLButton', [ <?php echo template::button('configRestoreUpdateBaseURLButton', [
'href' => helper::baseUrl() . 'config/updateBaseUrl', 'href' => helper::baseUrl() . 'config/updateBaseUrl',
'class' => $buttonClass, 'class' => $buttonClass,
'value' => 'convertir' 'value' => 'convertir'
@ -103,5 +82,4 @@
</div> </div>
</div> </div>
</div> </div>
<?php echo template::formClose(); ?> <?php echo template::formClose(); ?>