From e9a0764a03ad87ea026d9f55a11b450e49dd5f3d Mon Sep 17 00:00:00 2001 From: Thomas Zilio Date: Wed, 27 Jun 2018 14:25:19 +0200 Subject: [PATCH] Miglioramento requisiti --- include/configuration.php | 159 +-------------------------------- include/requirements.php | 183 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 187 insertions(+), 155 deletions(-) create mode 100644 include/requirements.php diff --git a/include/configuration.php b/include/configuration.php index ce055a108..5c20689e8 100644 --- a/include/configuration.php +++ b/include/configuration.php @@ -293,7 +293,6 @@ if (empty($creation) && (!file_exists('config.inc.php') || !$valid_config)) {
'; - // REQUISITI PER IL CORRETTO FUNZIONAMENTO echo '
- diff --git a/include/requirements.php b/include/requirements.php new file mode 100644 index 000000000..5759647b0 --- /dev/null +++ b/include/requirements.php @@ -0,0 +1,183 @@ + tr('Fornisce un sistema di riscrittura URL basato su regole predefinite'), +]; + +$available_modules = apache_get_modules(); + +$apache = []; +foreach ($modules as $name => $description) { + $status = in_array($name, $available_modules); + + $apache[] = [ + 'name' => $name, + 'description' => $description, + 'status' => $status, + 'type' => tr('Modulo'), + ]; +} + +// PHP +$settings = [ + 'zip' => [ + 'type' => 'ext', + 'description' => tr('Permette di leggere e scrivere gli archivi compressi ZIP e i file al loro interno'), + ], + 'pdo_mysql' => [ + 'type' => 'ext', + 'description' => tr('Permette di effettuare la connessione al database MySQL'), + ], + 'openssl' => [ + 'type' => 'ext', + 'description' => tr("Permette l'utilizzo di funzioni crittografiche simmetriche e asimmetriche (facoltativo)"), + ], + 'intl' => [ + 'type' => 'ext', + 'description' => tr("Permette l'automazione della conversione dei numeri (facoltativo)"), + ], + 'soap' => [ + 'type' => 'ext', + 'description' => tr('Permette la comunicazione con servizi esterni, quali il database europeo delle Partite IVA (facoltativo)'), + ], + 'curl' => [ + 'type' => 'ext', + 'description' => tr('Permette la comunicazione con servizi esterni, quali APILayer (facoltativo)'), + ], + + 'display_errors' => [ + 'type' => 'value', + 'description' => true, + ], + 'upload_max_filesize' => [ + 'type' => 'value', + 'description' => '>16M', + ], + 'post_max_size' => [ + 'type' => 'value', + 'description' => '>16M', + ], +]; + +$php = []; +foreach ($settings as $name => $values) { + $description = $values['description']; + + if ($values['type'] == 'ext') { + $status = extension_loaded($name); + } else { + $ini = str_replace(['k', 'M'], ['000', '000000'], ini_get($name)); + $real = str_replace(['k', 'M'], ['000', '000000'], $description); + + if (starts_with($real, '>')) { + $status = $ini >= substr($real, 1); + } elseif (starts_with($real, '<')) { + $status = $ini <= substr($real, 1); + } else { + $status = ($real == $ini); + } + + if (is_bool($description)) { + $description = !empty($description) ? 'On' : 'Off'; + } else { + $description = str_replace(['>', '<'], '', $description); + } + + $description = tr('Valore consigliato: _VALUE_', [ + '_VALUE_' => $description, + ]); + } + + $type = ($values['type'] == 'ext') ? tr('Estensione') : tr('Impostazione'); + + $php[] = [ + 'name' => $name, + 'description' => $description, + 'status' => $status, + 'type' => $type, + ]; +} + +// Percorsi di servizio +$dirs = [ + 'backup' => tr('Necessario per il salvataggio dei backup'), + 'files' => tr('Necessario per il salvataggio di file inseriti dagli utenti'), + 'logs' => tr('Necessario per la gestione dei file di log'), +]; + +$directories = []; +foreach ($dirs as $name => $description) { + $status = is_writable($docroot.DIRECTORY_SEPARATOR.$name); + + $directories[] = [ + 'name' => $name, + 'description' => $description, + 'status' => $status, + 'type' => tr('Cartella'), + ]; +} + +$requirements = [ + tr('Apache') => $apache, + tr('PHP (_VERSION_)', [ + '_VERSION_' => phpversion(), + ]) => $php, + tr('Percorsi di servizio') => $directories, +]; + +// Introduzione +echo ' +

'.tr('Benvenuto in _NAME_!', [ + '_NAME_' => 'OpenSTAManager', +]).'

+

'.tr("Prima di procedere alla configurazione e all'installazione del software, sono necessari alcuni accorgimenti per garantire il corretto funzionamento del gestionale").'.

+
+ +

'.tr('Le estensioni e impostazioni PHP possono essere personalizzate nel file di configurazione _FILE_', [ + '_FILE_' => 'php.ini', +]).'.

+
'; + +// Tabelle di riepilogo +foreach ($requirements as $key => $values) { + $statuses = array_column($values, 'status'); + $general_status = true; + foreach ($statuses as $status) { + $general_status &= $status; + } + + echo ' +
+
+

'.$key.'

'; + + if ($general_status) { + echo ' +
+ +
'; + } + + echo ' +
+
+ '; + + foreach ($values as $value) { + echo ' + + + + + + '; + } + + echo ' +
'.$value['type'].''.$value['name'].''.$value['description'].'
+
+
'; +}