remaniement de script d'installation

This commit is contained in:
Fred Tempez 2023-06-13 20:58:39 +02:00
parent 7b3e4cc67d
commit a38097391d

View File

@ -110,9 +110,32 @@ class install extends common
$userMail = $this->getInput('installMail', helper::FILTER_MAIL, true); $userMail = $this->getInput('installMail', helper::FILTER_MAIL, true);
$userId = $this->getInput('installId', helper::FILTER_ID, true); $userId = $this->getInput('installId', helper::FILTER_ID, true);
// Validation de la langue transmise
self::$i18nUI = $_SESSION['ZWII_UI'];
self::$i18nUI = array_key_exists(self::$i18nUI, self::$languages) ? self::$i18nUI : 'fr_FR';
// par défaut le contenu est la langue d'installation
$_SESSION['ZWII_CONTENT'] = self::$i18nUI;
// Création du dossier de langue avec le marqueur de langue par défaut
if (!is_dir(self::DATA_DIR . $_SESSION['ZWII_CONTENT'])) {
mkdir(self::DATA_DIR . $_SESSION['ZWII_CONTENT']);
touch(self::DATA_DIR . $_SESSION['ZWII_CONTENT'] . '/.default');
}
// Installation du site de test
if (
$this->getInput('installDefaultData', helper::FILTER_BOOLEAN) === false
&& $_SESSION['ZWII_CONTENT'] === 'fr_FR'
) {
$sample = true;
}
$this->initData('page', $_SESSION['ZWII_CONTENT'], $sample);
$this->initData('module', $_SESSION['ZWII_CONTENT'], $sample);
$this->initData('locale', $_SESSION['ZWII_CONTENT'], $sample);
// Création de l'utilisateur si les données sont complétées. // Création de l'utilisateur si les données sont complétées.
// success retour de l'enregistrement des données // success retour de l'enregistrement des données
$success = $this->setData([ $this->setData([
'user', 'user',
$userId, $userId,
[ [
@ -124,15 +147,13 @@ class install extends common
'signature' => 1, 'signature' => 1,
'mail' => $userMail, 'mail' => $userMail,
'password' => $this->getInput('installPassword', helper::FILTER_PASSWORD, true), 'password' => $this->getInput('installPassword', helper::FILTER_PASSWORD, true),
'language' => self::$i18nUI 'language' => $_SESSION['ZWII_CONTENT']
] ]
]); ]);
// Compte créé, envoi du mail et création des données du site
if ($success) { // Formulaire complété envoi du mail
// Envoie le mail // Envoie le mail
// Sent contient true si réussite sinon code erreur d'envoi en clair // Sent contient true si réussite sinon code erreur d'envoi en clair
$sent = $this->sendMail( $this->sendMail(
$userMail, $userMail,
'Installation de votre site', 'Installation de votre site',
'Bonjour' . ' <strong>' . $userFirstname . ' ' . $userLastname . '</strong>,<br><br>' . 'Bonjour' . ' <strong>' . $userFirstname . ' ' . $userLastname . '</strong>,<br><br>' .
@ -140,42 +161,13 @@ class install extends common
'<strong>URL du site :</strong> <a href="' . helper::baseUrl(false) . '" target="_blank">' . helper::baseUrl(false) . '</a><br>' . '<strong>URL du site :</strong> <a href="' . helper::baseUrl(false) . '" target="_blank">' . helper::baseUrl(false) . '</a><br>' .
'<strong>Identifiant du compte :</strong> ' . $this->getInput('installId') . '<br>', '<strong>Identifiant du compte :</strong> ' . $this->getInput('installId') . '<br>',
null, null,
$this->getData(['config', 'smtp', 'from']), 'localhost',
); );
// Validation de la langue transmise
self::$i18nUI = $_SESSION['ZWII_UI'];
self::$i18nUI = array_key_exists(self::$i18nUI, self::$languages) ? self::$i18nUI : 'fr_FR';
// par défaut le contenu est la langue d'installation
self::$i18nContent = self::$i18nUI;
$_SESSION['ZWII_CONTENT'] = self::$i18nContent;
// Création du dossier de langue avec le marqueur de langue par défaut
if (!is_dir(self::DATA_DIR . self::$i18nContent)) {
mkdir(self::DATA_DIR . self::$i18nContent);
touch(self::DATA_DIR . self::$i18nContent . '/.default');
}
// Installation du site de test
if (
$this->getInput('installDefaultData', helper::FILTER_BOOLEAN) === false
&& self::$i18nContent === 'fr_FR'
) {
$this->initData('module', 'fr_FR', true);
$this->initData('page', 'fr_FR', true);
$this->setData(['module', 'blog', 'posts', 'mon-premier-article', 'userId', $userId]);
$this->setData(['module', 'blog', 'posts', 'mon-deuxieme-article', 'userId', $userId]);
$this->setData(['module', 'blog', 'posts', 'mon-troisieme-article', 'userId', $userId]);
}
// Nettoyage fr par défaut // Nettoyage fr par défaut
if ( if (
self::$i18nContent !== 'fr_FR' $_SESSION['ZWII_CONTENT'] !== 'fr_FR'
) { ) {
if (is_dir(self::DATA_DIR . 'fr_FR')) if (is_dir(self::DATA_DIR . 'fr_FR'))
$this->removeDir(self::DATA_DIR . 'fr_FR'); $this->removeDir(self::DATA_DIR . 'fr_FR');
} }
@ -234,21 +226,25 @@ class install extends common
} }
// Créer la base de données des langues // Créer la base de données des langues
copy('core/module/install/ressource/i18n/language.json', self::DATA_DIR . 'language.json'); // copy('core/module/install/ressource/i18n/language.json', self::DATA_DIR . 'language.json');
$this->copyDir('core/module/install/ressource/i18n', self::I18N_DIR); $this->copyDir('core/module/install/ressource/i18n', self::I18N_DIR);
unlink(self::I18N_DIR . 'language.json'); // unlink(self::I18N_DIR . 'language.json');
// Fixe l'adresse from pour les envois d'email // Fixe l'adresse from pour les envois d'email
$this->setData(['config', 'smtp', 'from', 'no-reply@' . str_replace('www.', '', $_SERVER['HTTP_HOST'])]); $this->setData(['config', 'smtp', 'from', 'no-reply@' . str_replace('www.', '', $_SERVER['HTTP_HOST'])]);
// Supprimé à cause de l'écrasement des bases
//$this->setData(['module', 'blog', 'posts', 'mon-premier-article', 'userId', $userId]);
//$this->setData(['module', 'blog', 'posts', 'mon-deuxieme-article', 'userId', $userId]);
//$this->setData(['module', 'blog', 'posts', 'mon-troisieme-article', 'userId', $userId]);
// Valeurs en sortie // Valeurs en sortie
$this->addOutput([ $this->addOutput([
'redirect' => helper::baseUrl(), 'redirect' => helper::baseUrl(),
'notification' => $sent === true ? helper::translate('Installation terminée') : $sent, 'notification' => helper::translate('Installation terminée'),
'state' => ($sent === true && $success === true) ? true : null 'state' => true
]); ]);
} }
}
// Affichage du formulaire // Affichage du formulaire