diff --git a/modules/aggiornamenti/edit.php b/modules/aggiornamenti/edit.php index 242c7dbaa..3a615d20f 100644 --- a/modules/aggiornamenti/edit.php +++ b/modules/aggiornamenti/edit.php @@ -2,6 +2,60 @@ include_once __DIR__.'/../../core.php'; +// Personalizzazioni di codice +$custom = custom(); +$tables = customTables(); +if (!empty($custom) || !empty($tables)) { + echo ' +
+
+

+ '.tr('Personalizzazioni').' +

+
+
'; + + if (!empty($custom)) { + echo ' + + + + + + '; + + foreach ($custom as $element) { + echo ' + + + + + '; + } + + echo ' +
'.tr('Percorso').''.tr('Cartella personalizzata').''.tr('Database personalizzato').'
'.$element['path'].''.($element['directory'] ? 'Si' : 'No').''.($element['database'] ? 'Si' : 'No').'
+ +

'.tr("Si sconsiglia l'aggiornamento senza il supporto dell'assistenza ufficiale").'.

'; + } else { + echo ' +

'.tr('Non ci sono strutture personalizzate').'.

'; + } + + if (!empty($tables)) { + echo ' +
+ + Attenzione! Ci sono delle tabelle non previste nella versione standard del gestionale: '.implode(', ', $tables).'. +
'; + } + + echo ' +
+
'; +} + +// Aggiornamenti if (setting('Attiva aggiornamenti')) { $alerts = []; @@ -148,70 +202,7 @@ $modules = Modules::getHierarchy(); $osm_version = Update::getVersion(); -foreach ($modules as $module) { - // STATO - if (!empty($module['enabled'])) { - $text = tr('Abilitato'); - $text .= ($module['id'] != $id_module) ? '. '.tr('Clicca per disabilitarlo').'...' : ''; - $stato = ''; - } else { - $stato = ''; - $class = 'warning'; - } - - // Possibilità di disabilitare o abilitare i moduli tranne quello degli aggiornamenti - if ($module['id'] != $id_module) { - if ($module['enabled']) { - $stato = "".$stato."\n"; - } else { - $stato = "".$stato."\n"; - } - } - - // COMPATIBILITA' - $compatibilities = explode(',', $module['compatibility']); - // Controllo per ogni versione se la regexp combacia per dire che è compatibile o meno - $comp = false; - foreach ($compatibilities as $compatibility) { - $comp = (preg_match('/'.$compatibility.'/', $osm_version)) ? true : $comp; - } - - if ($comp) { - $compatible = ''; - ($module['enabled']) ? $class = 'success' : $class = 'warning'; - } else { - $compatible = ''; - $class = 'danger'; - } - - echo ' - - '.$module['title'].' - '.$module['version'].' - '.$stato.' - '.$compatible.''; - - echo ' - '; - - // Possibilità di disinstallare solo se il modulo non è tra quelli predefiniti - if (empty($module['default'])) { - echo " - "; - } else { - echo " - - - "; - } - - echo ' - - '; - - // Prima di cambiare modulo verifico se ci sono sottomoduli - echo submodules($module['all_children']); -} +echo submodules($modules); echo ' diff --git a/modules/aggiornamenti/modutil.php b/modules/aggiornamenti/modutil.php index 40d1a77a8..e8f93a70d 100644 --- a/modules/aggiornamenti/modutil.php +++ b/modules/aggiornamenti/modutil.php @@ -1,6 +1,6 @@ fetchArray('SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = '.prepare($database->getDatabaseName()).' AND TABLE_NAME NOT IN ('.implode(',', $names).") AND TABLE_NAME != 'updates'"); + + return array_column($results, 'TABLE_NAME'); +} + + /** + * Controlla se il database presenta alcune sezioni personlizzate. + * + * @return array + */ +function customDatabase() +{ + $database = database(); + $modules = $database->fetchArray("SELECT name, CONCAT('modules/', directory) AS directory FROM zz_modules WHERE options2 != ''"); + $plugins = $database->fetchArray("SELECT name, CONCAT('plugins/', directory) AS directory FROM zz_plugins WHERE options2 != ''"); + + $results = array_merge($modules, $plugins); + + return $results; +} + +function custom() +{ + $database_check = customDatabase(); + $structure_check = customStructure(); + + $list = []; + foreach ($database_check as $element) { + $pos = array_search($element['directory'], $structure_check); + + $list[] = [ + 'path' => $element['directory'], + 'database' => true, + 'directory' => $pos !== false, + ]; + + if ($pos !== false) { + unset($structure_check[$pos]); + } + } + + foreach ($structure_check as $element) { + $list[] = [ + 'path' => $element, + 'database' => false, + 'directory' => true, + ]; + } + + return $list; +} diff --git a/plugins/importFE/edit.php b/plugins/importFE/edit.php index 457ff06bc..1a5ffc342 100644 --- a/plugins/importFE/edit.php +++ b/plugins/importFE/edit.php @@ -6,7 +6,7 @@ use Plugins\ImportFE\Interaction; echo '