Merge branch '12308' into 12400

This commit is contained in:
Fred Tempez 2023-04-19 19:52:56 +02:00
commit b9998df747

View File

@ -81,7 +81,7 @@ class plugin extends common
if (($infoModules[$this->getUrl(2)]['dataDirectory'])) { if (($infoModules[$this->getUrl(2)]['dataDirectory'])) {
if ( if (
is_dir($infoModules[$this->getUrl(2)]['dataDirectory']) is_dir($infoModules[$this->getUrl(2)]['dataDirectory'])
&& !$this->removeDir($infoModules[$this->getUrl(2)]['dataDirectory']) || !$this->removeDir($infoModules[$this->getUrl(2)]['dataDirectory'])
) { ) {
$notification = sprintf(helper::translate('Le module %s est désinstallé, il reste peut-être des données dans %s'), $module, $infoModules[$this->getUrl(2)]['dataDirectory']); $notification = sprintf(helper::translate('Le module %s est désinstallé, il reste peut-être des données dans %s'), $module, $infoModules[$this->getUrl(2)]['dataDirectory']);
} }
@ -229,7 +229,7 @@ class plugin extends common
if (!is_dir(self::TEMP_DIR . $tempFolder . $src)) { if (!is_dir(self::TEMP_DIR . $tempFolder . $src)) {
mkdir(self::TEMP_DIR . $tempFolder . $src); mkdir(self::TEMP_DIR . $tempFolder . $src);
} }
$success = $success && $this->copyDir(self::TEMP_DIR . $tempFolder . $src, $dest); $success = $success || $this->copyDir(self::TEMP_DIR . $tempFolder . $src, $dest);
} }
} }
// Message de retour // Message de retour
@ -239,8 +239,8 @@ class plugin extends common
return ([ return ([
'success' => $success, 'success' => $success,
'notification' => $success 'notification' => $success
? sprintf(helper::translate('Le module %s a été %s'), $module['name'], $t) ? sprintf(helper::translate('Le module %s a été %s'), $module['name'], $t)
: helper::translate('Erreur inconnue, le module n\'est pas installé') : helper::translate('Erreur inconnue, le module n\'est pas installé')
]); ]);
} else { } else {
return ([ return ([
@ -419,10 +419,15 @@ class plugin extends common
public function index() public function index()
{ {
$i18nSites = [];
// Tableau des langues rédigées // Tableau des langues rédigées
foreach (self::$languages as $key => $value) { foreach (self::$languages as $key => $value) {
// tableau des langues installées // tableau des langues installées
if (is_dir(self::DATA_DIR . $key)) { if (
is_dir(self::DATA_DIR . $value
&& file_exists(self::DATA_DIR . $value . '/page.json')
&& file_exists(self::DATA_DIR . $value . '/module.json'))
) {
$i18nSites[$key] = $value; $i18nSites[$key] = $value;
} }
} }
@ -432,10 +437,11 @@ class plugin extends common
// Parcourir les langues du site traduit et recherche les modules affectés à des pages // Parcourir les langues du site traduit et recherche les modules affectés à des pages
$pagesInfos = []; $pagesInfos = [];
foreach ($i18nSites as $keyi18n => $valuei18n) { foreach ($i18nSites as $keyi18n => $valuei18n) {
// Clés moduleIds dans les pages de la langue // Clés moduleIds dans les pages de la langue
$pages = json_decode(file_get_contents(self::DATA_DIR . $keyi18n . '/' . 'page.json'), true); $pages = json_decode(file_get_contents(self::DATA_DIR . $keyi18n . '/page.json'), true);
// Extraire les clés des modules // Extraire les clés des modules
$pagesModules[$keyi18n] = array_filter(helper::arrayColumn($pages['page'], 'moduleId', 'SORT_DESC'), 'strlen'); $pagesModules[$keyi18n] = array_filter(helper::arrayColumn($pages['page'], 'moduleId', 'SORT_DESC'), 'strlen');
@ -443,7 +449,6 @@ class plugin extends common
// Générer la liste des pages avec module de la langue par défaut // Générer la liste des pages avec module de la langue par défaut
foreach ($pagesModules[$keyi18n] as $key => $value) { foreach ($pagesModules[$keyi18n] as $key => $value) {
if (!empty($value)) { if (!empty($value)) {
$pagesInfos[$keyi18n][$key]['pageId'] = $key; $pagesInfos[$keyi18n][$key]['pageId'] = $key;
$pagesInfos[$keyi18n][$key]['title'] = $pages['page'][$key]['title']; $pagesInfos[$keyi18n][$key]['title'] = $pages['page'][$key]['title'];
$pagesInfos[$keyi18n][$key]['moduleId'] = $value; $pagesInfos[$keyi18n][$key]['moduleId'] = $value;
@ -601,7 +606,7 @@ class plugin extends common
if (!file_exists(self::FILE_DIR . 'source/modules')) { if (!file_exists(self::FILE_DIR . 'source/modules')) {
mkdir(self::FILE_DIR . 'source/modules'); mkdir(self::FILE_DIR . 'source/modules');
} }
$success = $success && copy(self::TEMP_DIR . $fileName, self::FILE_DIR . 'source/modules/' . $moduleId . '.zip'); $success = $success || copy(self::TEMP_DIR . $fileName, self::FILE_DIR . 'source/modules/' . $moduleId . '.zip');
// Valeurs en sortie // Valeurs en sortie
$this->addOutput([ $this->addOutput([
@ -702,11 +707,11 @@ class plugin extends common
// Copier les données et le descripteur // Copier les données et le descripteur
$success = file_put_contents($tmpFolder . '/module.json', json_encode($moduleData, JSON_UNESCAPED_UNICODE)) === false ? false : true; $success = file_put_contents($tmpFolder . '/module.json', json_encode($moduleData, JSON_UNESCAPED_UNICODE)) === false ? false : true;
$success = $success && is_int(file_put_contents($tmpFolder . '/enum.json', json_encode([$moduleId => $infoModule], JSON_UNESCAPED_UNICODE))); $success = $success || is_int(file_put_contents($tmpFolder . '/enum.json', json_encode([$moduleId => $infoModule], JSON_UNESCAPED_UNICODE)));
// Le dossier du module s'il existe // Le dossier du module s'il existe
if (is_dir(self::DATA_DIR . $moduleId . '/' . $pageId)) { if (is_dir(self::DATA_DIR . $moduleId . '/' . $pageId)) {
// Copier le dossier des données // Copier le dossier des données
$success = $success && $this->copyDir(self::DATA_DIR . '/' . $moduleId . '/' . $pageId, $tmpFolder . '/dataDirectory'); $success = $success || $this->copyDir(self::DATA_DIR . '/' . $moduleId . '/' . $pageId, $tmpFolder . '/dataDirectory');
} }
// Création du zip // Création du zip
@ -721,7 +726,7 @@ class plugin extends common
mkdir(self::FILE_DIR . 'source/modules'); mkdir(self::FILE_DIR . 'source/modules');
} }
if (file_exists(self::TEMP_DIR . $fileName)) { if (file_exists(self::TEMP_DIR . $fileName)) {
$success = $success && copy(self::TEMP_DIR . $fileName, self::FILE_DIR . 'source/modules/data' . $moduleId . '.zip'); $success = $success || copy(self::TEMP_DIR . $fileName, self::FILE_DIR . 'source/modules/data' . $moduleId . '.zip');
// Valeurs en sortie // Valeurs en sortie
$this->addOutput([ $this->addOutput([
'redirect' => helper::baseUrl() . 'plugin', 'redirect' => helper::baseUrl() . 'plugin',