From ee476e284241891130ff3bab420708a7b43275ee Mon Sep 17 00:00:00 2001 From: SylvainLelievre Date: Tue, 16 Feb 2021 11:53:52 +0100 Subject: [PATCH] Modification fonction index() de addon.php --- core/module/addon/addon.php | 81 ++++++++++++++++++++----------------- 1 file changed, 45 insertions(+), 36 deletions(-) diff --git a/core/module/addon/addon.php b/core/module/addon/addon.php index 6c041295..506429f9 100644 --- a/core/module/addon/addon.php +++ b/core/module/addon/addon.php @@ -65,6 +65,42 @@ class addon extends common { * Gestion des modules */ public function index() { + // Lister les modules + // $infoModules[nom_module]['realName'], ['version'], ['update'], ['delete'], ['dataDirectory'] + $infoModules = helper::getModules(); + + // Clés moduleIds dans les pages + $inPages = helper::arrayCollumn($this->getData(['page']),'moduleId', 'SORT_DESC'); + $inPagesTitle = []; + foreach( $inPages as $key=>$value){ + $inPagesTitle[ $this->getData(['page', $key, 'title' ]) ] = $value; + } + + // Parcourir les données des modules + foreach ($infoModules as $key=>$value) { + // Construire le tableau de sortie + self::$modInstal[] = [ + $key, + $infoModules[$key]['realName'], + $infoModules[$key]['version'], + implode(', ', array_keys($inPagesTitle,$key)), + array_key_exists('delete',$infoModules[$key]) && $infoModules[$key]['delete'] === true && implode(', ',array_keys($inPages,$key)) ==='' + ? template::button('moduleDelete' . $key, [ + 'class' => 'moduleDelete buttonRed', + 'href' => helper::baseUrl() . $this->getUrl(0) . '/moduleDelete/' . $key . '/' . $_SESSION['csrf'], + 'value' => template::ico('cancel') + ]) + : '', + array_key_exists('dataDirectory',$infoModules[$key]) && $infoModules[$key]['dataDirectory'] !== '' + ? template::button('moduleExport' . $key, [ + 'class' => 'buttonBlue', + 'href' => helper::baseUrl(false).$this->exportZip( $key ), + 'value' => template::ico('upload') + ]) + : '' + ]; + } + // Retour du formulaire ? if($this->isPost()) { // Installation d'un module @@ -96,11 +132,11 @@ class addon extends common { // Lecture de la version du module pour validation de la mise à jour // Pour une version <= version installée l'utilisateur doit cocher 'Mise à jour forcée' - // Lecture de version en lisant la valeur des constantes directement dans le fichier nommodule.php $version = '0.0'; $file = file_get_contents( $moduleDir.'/'.$moduleName.'/'.$moduleName.'.php'); - // A FAIRE supprimer les espaces et les tab et rechercher 'constVERSION' - $pos1 = strpos($file, 'const VERSION'); + $file = str_replace(' ','',$file); + $file = str_replace("\t",'',$file); + $pos1 = strpos($file, 'constVERSION'); if( $pos1 !== false){ $posdeb = strpos($file, "'", $pos1); $posend = strpos($file, "'", $posdeb + 1); @@ -137,7 +173,12 @@ class addon extends common { } else{ $success = false; - $notification = ' Version détectée '.$version.' <= à celle installée '.$infoModules[$moduleName]['version']; + if( $valNewVersion == $valInstalVersion){ + $notification = ' Version détectée '.$version.' = à celle installée '.$infoModules[$moduleName]['version']; + } + else{ + $notification = ' Version détectée '.$version.' < à celle installée '.$infoModules[$moduleName]['version']; + } if( $infoModules[$moduleName]['update'] === false){ $notification = ' Mise à jour par ce procédé interdite par le concepteur du module'; } @@ -161,38 +202,6 @@ class addon extends common { ]); } - // Lister les modules - // $infoModules[nom_module]['realName'], ['version'], ['update'], ['delete'], ['dataDirectory'] - $infoModules = helper::getModules(); - - // Clés moduleIds dans les pages - $inPages = helper::arrayCollumn($this->getData(['page']),'moduleId', 'SORT_DESC'); - - // Parcourir les données des modules - foreach ($infoModules as $key=>$value) { - // Construire le tableau de sortie - self::$modInstal[] = [ - $key, - $infoModules[$key]['realName'], - $infoModules[$key]['version'], - implode(', ',array_keys($inPages,$key)), - array_key_exists('delete',$infoModules[$key]) && $infoModules[$key]['delete'] === true - ? template::button('moduleDelete' . $key, [ - 'class' => 'moduleDelete buttonRed', - 'href' => helper::baseUrl() . $this->getUrl(0) . '/moduleDelete/' . $key . '/' . $_SESSION['csrf'], - 'value' => template::ico('cancel') - ]) - : '', - array_key_exists('update',$infoModules[$key]) && $infoModules[$key]['update'] === true - ? template::button('moduleDelete' . $key, [ - 'class' => 'moduleDelete buttonRed', - 'href' => helper::baseUrl() . $this->getUrl(0) . '/moduleDelete/' . $key . '/' . $_SESSION['csrf'], - 'value' => template::ico('cancel') - ]) - : '' - ]; - } - // Valeurs en sortie $this->addOutput([ 'title' => 'Gestion des modules',