From ebfa9a743bbda1a41b2b61f77a35c4e4c2415327 Mon Sep 17 00:00:00 2001 From: Thomas Zilio Date: Wed, 4 Jul 2018 17:15:14 +0200 Subject: [PATCH] Aggiornamento dell'aggiornamento --- include/init/update.php | 6 ++ modules/aggiornamenti/edit.php | 57 +++-------- modules/aggiornamenti/upload_modules.php | 116 +++++++++++------------ modules/tipi_intervento/edit.php | 4 +- 4 files changed, 80 insertions(+), 103 deletions(-) diff --git a/include/init/update.php b/include/init/update.php index 93a5abb75..f72023190 100644 --- a/include/init/update.php +++ b/include/init/update.php @@ -85,6 +85,12 @@ if (filter('action') == 'do_update') { '.tr('Continua').' '; + } else { + // Rimostro la finestra di login + echo ' + '; } } diff --git a/modules/aggiornamenti/edit.php b/modules/aggiornamenti/edit.php index e5e123ca0..34714db04 100644 --- a/modules/aggiornamenti/edit.php +++ b/modules/aggiornamenti/edit.php @@ -39,51 +39,22 @@ if (get_var('Attiva aggiornamenti')) { } echo ' -
'; - // Aggiornamento - echo ' -
-
-
-

'.tr('Carica un aggiornamento').'

-
-
-
- - +
+
+

'.tr('Carica un aggiornamento').'

+
+
+ + - + - - -
-
-
'; - - // Nuovo modulo - echo ' -
-
-
-

'.tr('Carica un nuovo modulo').'

-
-
-
- - - - - -
-
-
-
'; - echo ' -
'; + + +
+
'; } // Elenco moduli installati diff --git a/modules/aggiornamenti/upload_modules.php b/modules/aggiornamenti/upload_modules.php index 631d385a7..15bea66a5 100644 --- a/modules/aggiornamenti/upload_modules.php +++ b/modules/aggiornamenti/upload_modules.php @@ -20,6 +20,7 @@ $type = $_POST['type']; // Lettura dell'archivio $zip = new ZipArchive(); if (!$zip->open($file['tmp_name'])) { + $_SESSION['errors'][] = tr('File di installazione non valido!'); $_SESSION['errors'][] = checkZip($file['tmp_name']); return; @@ -42,70 +43,69 @@ if (file_exists($extraction_dir.'/VERSION')) { // Ripristina il file di configurazione dell'installazione file_put_contents($docroot.'/config.inc.php', $config); -} +} else { + $finder = Symfony\Component\Finder\Finder::create() + ->files() + ->ignoreDotFiles(true) + ->ignoreVCS(true) + ->in($extraction_dir); -// Installazione/aggiornamento di un modulo -elseif (file_exists($extraction_dir.'/MODULE')) { - // Leggo le info dal file di configurazione del modulo - $info = Util\Ini::readFile($extraction_dir.'/MODULE'); + $files = $finder->name('MODULE')->name('PLUGIN'); - // Copio i file nella cartella "modules//" - copyr($extraction_dir, $docroot.'/modules/'.$info['directory']); + foreach ($files as $file) { + // Informazioni dal file di configurazione + $info = Util\Ini::readFile($file->getRealPath()); - // Verifico se il modulo non esista già - $installed = Modules::get($info['name']); - if (empty($installed)) { - $info['parent'] = Modules::get($info['parent']) ? $info['parent'] : null; + // Informazioni aggiuntive per il database + $insert = []; - $dbo->insert('zz_modules', [ - 'name' => $info['name'], - 'title' => !empty($info['title']) ? $info['title'] : $info['name'], - 'directory' => $info['directory'], - 'options' => $info['options'], - 'version' => $info['version'], - 'compatibility' => $info['compatibility'], - 'order' => 100, - 'parent' => $info['parent'], - 'default' => 0, - 'enabled' => 1, - ]); + // Modulo + if (basename($file->getRealPath()) == 'MODULE') { + $directory = 'modules'; + $table = 'zz_modules'; + + $installed = Modules::get($info['name']); + $insert['parent'] = Modules::get($info['parent']); + } + + // Plugin + elseif (basename($file->getRealPath()) == 'PLUGIN') { + $directory = 'plugins'; + $table = 'zz_plugins'; + + $installed = Plugins::get($info['name']); + $insert['idmodule_from'] = Modules::get($info['module_from'])['id']; + $insert['idmodule_to'] = Modules::get($info['module_to'])['id']; + $insert['position'] = $info['position']; + } + + // Copia dei file nella cartella relativa + copyr(dirname($file->getRealPath()), $docroot.'/'.$directory.'/'.$info['directory']); + + // Eventuale registrazione nel database + if (empty($installed)) { + $dbo->insert($table, array_merge($insert, [ + 'name' => $info['name'], + 'title' => !empty($info['title']) ? $info['title'] : $info['name'], + 'directory' => $info['directory'], + 'options' => $info['options'], + 'version' => $info['version'], + 'compatibility' => $info['compatibility'], + 'order' => 100, + 'default' => 0, + 'enabled' => 1, + ])); + + $_SESSION['errors'][] = tr('Installazione completata!'); + } else { + $_SESSION['errors'][] = tr('Aggiornamento completato!'); + } } } -// Installazione/aggiornamento di un plugin -elseif (file_exists($extraction_dir.'/PLUGIN')) { - // Leggo le info dal file di configurazione del modulo - $info = Util\Ini::readFile($extraction_dir.'/PLUGIN'); - - // Copio i file nella cartella "modules//" - copyr($extraction_dir, $docroot.'/plugins/'.$info['directory']); - - // Verifico se il modulo non esista già - $installed = Plugins::get($info['name']); - if (empty($installed)) { - $info['parent'] = Plugins::get($info['parent']) ? $info['parent'] : null; - - $dbo->insert('zz_plugins', [ - 'name' => $info['name'], - 'title' => !empty($info['title']) ? $info['title'] : $info['name'], - 'directory' => $info['directory'], - 'options' => $info['options'], - 'version' => $info['version'], - 'compatibility' => $info['compatibility'], - 'order' => 100, - 'parent' => $info['parent'], - 'default' => 0, - 'enabled' => 1, - ]); - } -} - -// File di installazione non valido -else { - $_SESSION['errors'][] = tr('File di installazione non valido!'); -} - +// Rimozione delle risorse inutilizzate delete($extraction_dir); -redirect($rootdir); - $zip->close(); + +// Redirect +redirect(ROOTDIR.'/editor.php?id_module='.$id_module); diff --git a/modules/tipi_intervento/edit.php b/modules/tipi_intervento/edit.php index 4c905a4d1..4c1fc9427 100644 --- a/modules/tipi_intervento/edit.php +++ b/modules/tipi_intervento/edit.php @@ -15,11 +15,11 @@ include_once __DIR__.'/../../core.php';
{[ "type": "text", "label": "", "name": "descrizione", "required": 1, "value": "$descrizione$" ]}
- +
{[ "type": "number", "label": "", "name": "tempo_standard", "help": "Esempi:
  • 60 minuti = 1 ora
  • 30 minuti = 0,5 ore
  • 15 minuti = 0,25 ore
'); ?>", "maxlength": 5, "min-value": "0", "max-value": "24", "class": "text-center", "value": "$tempo_standard$", "icon-after": "ore" ]}
- +