From 09a94daaff7be244b42f5c9971d1807997a9bc4d Mon Sep 17 00:00:00 2001 From: Dasc3er Date: Thu, 31 Dec 2020 16:13:28 +0100 Subject: [PATCH] =?UTF-8?q?Introduzione=20modifiche=20per=20compatibilit?= =?UTF-8?q?=C3=A0=20con=20Laravel?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .editorconfig | 11 - .php_cs | 33 -- actions.php | 17 +- ajax.php | 4 +- ajax_dataload.php | 6 +- ajax_select.php | 2 +- assets/src/js/functions/functions.js | 4 +- assets/src/js/functions/select.js | 41 +- backup/.htaccess | 1 - bug.php | 13 +- composer.json | 15 +- config.example.php | 63 --- config/csrf_config.php | 4 +- controller.php | 8 +- core.php | 74 ++- editor.php | 22 +- files/.htaccess | 7 - files/impianti/componente.ini | 20 - files/temp/.gitkeep | 0 gulpfile.js | 515 ------------------ include/bottom.php | 6 +- include/colonne.php | 6 +- include/common/articolo.php | 8 +- include/common/form.php | 2 +- include/common/importa.php | 2 +- include/common/riga.php | 4 +- include/common/sconto.php | 4 +- include/init/configuration.php | 37 +- include/init/init.php | 16 +- include/init/update.php | 16 +- include/manager.php | 4 +- include/top.php | 68 +-- index.php | 59 +- info.php | 6 +- lib/functions.php | 89 +-- lib/helpers.php | 45 +- log.php | 10 +- logs/.htaccess | 1 - modules/aggiornamenti/edit.php | 8 +- modules/aggiornamenti/src/UpdateHook.php | 2 +- modules/aggiornamenti/upload_modules.php | 2 +- modules/anagrafiche/ajax/search.php | 4 +- modules/anagrafiche/ajax/select.php | 4 +- modules/anagrafiche/bulk.php | 4 +- modules/anagrafiche/buttons.php | 4 +- modules/anagrafiche/edit.php | 4 +- modules/anagrafiche/plugins/allegati.php | 6 +- modules/anagrafiche/src/Import/CSV.php | 2 - modules/articoli/ajax/complete.php | 6 +- modules/articoli/ajax/search.php | 2 +- modules/articoli/bulk.php | 8 +- modules/articoli/edit.php | 4 +- .../articoli/plugins/articoli.movimenti.php | 8 +- modules/articoli/src/Articolo.php | 4 +- .../articoli/widgets/stampa_inventario.php | 2 +- modules/backups/edit.php | 2 +- modules/categorie_articoli/actions.php | 4 +- modules/categorie_articoli/add.php | 2 +- modules/categorie_articoli/edit.php | 2 +- modules/categorie_articoli/row-list.php | 2 +- modules/combinazioni_articoli/edit.php | 2 +- modules/contratti/add_preventivo.php | 2 +- modules/contratti/bulk.php | 2 +- modules/contratti/crea_documento.php | 2 +- modules/contratti/edit.php | 4 +- modules/contratti/row-add.php | 2 +- modules/contratti/row-edit.php | 2 +- modules/dashboard/ajax.php | 14 +- modules/dashboard/edit.php | 8 +- modules/ddt/add_ordine.php | 2 +- modules/ddt/ajax/search.php | 2 +- modules/ddt/bulk.php | 4 +- modules/ddt/crea_documento.php | 2 +- modules/ddt/edit.php | 4 +- modules/ddt/init.php | 2 +- modules/ddt/row-add.php | 2 +- modules/ddt/row-edit.php | 2 +- modules/ddt/src/DDT.php | 2 +- modules/fatture/actions.php | 4 +- modules/fatture/add_contratto.php | 2 +- modules/fatture/add_ddt.php | 2 +- modules/fatture/add_intervento.php | 4 +- modules/fatture/add_ordine.php | 2 +- modules/fatture/add_preventivo.php | 2 +- modules/fatture/add_serial.php | 2 +- modules/fatture/ajax/search.php | 2 +- modules/fatture/bulk.php | 8 +- modules/fatture/buttons.php | 8 +- modules/fatture/crea_documento.php | 2 +- modules/fatture/edit.php | 2 +- modules/fatture/row-add.php | 2 +- modules/fatture/row-edit.php | 2 +- modules/fatture/src/Fattura.php | 3 +- modules/fatture/src/Gestori/Bollo.php | 2 +- modules/fatture/variables.php | 4 +- modules/giacenze_sedi/controller_before.php | 2 +- modules/giacenze_sedi/init.php | 2 +- modules/impianti/ajax/search.php | 2 +- modules/impianti/edit.php | 2 +- .../plugins/my_impianti.interventi.php | 7 +- modules/import/actions.php | 2 +- modules/interventi/add.php | 2 +- modules/interventi/add_ddt.php | 2 +- modules/interventi/ajax/search.php | 2 +- modules/interventi/ajax_costi.php | 2 +- modules/interventi/ajax_tecnici.php | 2 +- modules/interventi/bulk.php | 2 +- modules/interventi/crea_documento.php | 2 +- modules/interventi/edit.php | 2 +- modules/interventi/modals/anteprima_firma.php | 5 +- modules/interventi/modals/copy_sessione.php | 2 +- modules/interventi/modals/manage_sessione.php | 2 +- modules/interventi/row-add.php | 4 +- modules/interventi/row-edit.php | 4 +- modules/interventi/row-list.php | 2 +- modules/interventi/src/API/v1/Interventi.php | 2 +- .../interventi/widgets/stampa_riepilogo.php | 2 +- modules/mansioni/edit.php | 85 --- modules/movimenti/add.php | 13 +- modules/ordini/crea_documento.php | 2 +- modules/ordini/edit.php | 2 +- modules/ordini/modutil.php | 4 +- modules/ordini/row-add.php | 2 +- modules/ordini/row-edit.php | 2 +- modules/ordini/src/Ordine.php | 2 +- modules/pagamenti/actions.php | 4 +- modules/pagamenti/edit.php | 2 +- modules/partitario/actions.php | 14 +- modules/partitario/add_conto.php | 2 +- modules/partitario/aggiorna_reddito.php | 4 +- modules/partitario/dettagli_conto.php | 4 +- modules/partitario/edit.php | 4 +- modules/partitario/edit_conto.php | 2 +- modules/preventivi/ajax/search.php | 2 +- modules/preventivi/bulk.php | 2 +- modules/preventivi/crea_documento.php | 2 +- modules/preventivi/row-add.php | 2 +- modules/preventivi/row-edit.php | 2 +- .../widgets/preventivi.dashboard.php | 2 +- modules/primanota/add.php | 2 +- modules/primanota/edit.php | 4 +- modules/scadenzario/bulk.php | 2 +- modules/scadenzario/edit.php | 2 +- modules/scadenzario/variables.php | 2 +- modules/segmenti/edit.php | 8 +- modules/smtp/actions.php | 4 +- modules/stampe_contabili/edit.php | 12 +- modules/stampe_contabili/stampe_contabili.php | 4 +- modules/statistiche/edit.php | 6 +- modules/stato_email/edit.php | 2 +- modules/stato_servizi/actions.php | 2 +- modules/stato_servizi/edit.php | 7 + .../stato_servizi/src/API/v1/FolderSize.php | 4 +- modules/stato_servizi/src/ServicesHook.php | 2 +- .../widgets/spazio_utilizzato.php | 2 +- modules/utenti/actions.php | 4 +- modules/utenti/info.php | 6 +- modules/utenti/self.php | 2 +- modules/utenti/src/API/v1/Login.php | 4 +- modules/utenti/user.php | 2 +- modules/viste/edit.php | 2 +- pdfgen.php | 2 +- plugins/componenti/edit.php | 6 +- plugins/exportFE/edit.php | 2 +- plugins/importFE/actions.php | 11 +- plugins/importFE/edit.php | 6 +- plugins/importFE/generate.php | 4 +- plugins/importFE/init.php | 2 +- plugins/importFE/list.php | 4 +- plugins/importFE/src/InvoiceHook.php | 2 +- plugins/pianificazione_interventi/edit.php | 2 +- plugins/pianificazione_interventi/row-add.php | 2 +- .../pianificazione_interventi/row-edit.php | 2 +- .../pianificazione_interventi/row-list.php | 2 +- .../widgets/promemoria_da_pianificare.php | 2 +- plugins/presentazioni_bancarie/edit.php | 2 +- plugins/receiptFE/edit.php | 4 +- .../receiptFE/src/NotificheRicevuteHook.php | 2 +- plugins/receiptFE/src/ReceiptHook.php | 2 +- plugins/revisioni/edit.php | 4 +- plugins/sedi/edit.php | 2 +- plugins/statistiche_anagrafiche/info.php | 12 +- reset.php | 22 +- src/API/App/v1/Interventi.php | 4 +- src/API/App/v1/Login.php | 4 +- src/API/App/v1/RigheInterventi.php | 4 +- src/API/App/v1/SessioniInterventi.php | 6 +- src/API/Manager.php | 2 +- src/API/Response.php | 4 +- src/App.php | 4 +- src/AppLegacy.php | 375 +++++++++++++ src/Auth.php | 8 +- src/Backup.php | 4 +- src/Common/Components/Article.php | 3 +- src/Database.php | 91 +--- src/Extensions/MessageHandler.php | 4 +- src/HTMLBuilder/Handler/CKEditorHandler.php | 2 +- src/HTMLBuilder/Handler/DefaultHandler.php | 2 +- src/HTMLBuilder/Manager/ButtonManager.php | 4 +- src/HTMLBuilder/Manager/FileManager.php | 2 +- src/HTMLBuilder/Manager/WidgetManager.php | 2 +- src/HTMLBuilder/Wrapper/HTMLWrapper.php | 2 +- src/Intl/Formatter.php | 2 +- src/Models/Module.php | 6 +- src/Models/OperationLog.php | 4 +- src/Models/Plugin.php | 4 +- src/Models/User.php | 4 +- src/Modules.php | 6 +- src/Notifications/EmailNotification.php | 2 +- src/Permissions.php | 7 +- src/Prints.php | 15 +- src/Traits/PathTrait.php | 6 +- src/Translator.php | 2 +- src/Util/Messages.php | 27 +- src/Util/Query.php | 8 +- templates/barcode/body.php | 2 - templates/fatturato/init.php | 4 +- templates/fatture_elettroniche/body.php | 2 +- templates/info.php | 10 +- templates/interventi/init.php | 2 +- templates/magazzino_inventario/body.php | 2 +- templates/ordini/body.php | 11 +- templates/partitario_mastrino/init.php | 4 +- templates/riepilogo_interventi/init.php | 4 +- templates/scadenzario/init.php | 4 +- templates/spesometro/body.php | 4 +- update/2_4_26.php | 2 +- view.php | 6 +- 228 files changed, 1007 insertions(+), 1512 deletions(-) delete mode 100755 .editorconfig delete mode 100755 .php_cs delete mode 100755 backup/.htaccess delete mode 100755 config.example.php delete mode 100755 files/.htaccess delete mode 100755 files/impianti/componente.ini delete mode 100644 files/temp/.gitkeep delete mode 100755 gulpfile.js delete mode 100755 logs/.htaccess delete mode 100644 modules/mansioni/edit.php create mode 100644 src/AppLegacy.php diff --git a/.editorconfig b/.editorconfig deleted file mode 100755 index 6bb235b83..000000000 --- a/.editorconfig +++ /dev/null @@ -1,11 +0,0 @@ -# editorconfig.org - -root = true - -[*] -charset = utf-8 -end_of_line = lf -indent_size = 4 -indent_style = space -insert_final_newline = true -trim_trailing_whitespace = true \ No newline at end of file diff --git a/.php_cs b/.php_cs deleted file mode 100755 index eccec1e55..000000000 --- a/.php_cs +++ /dev/null @@ -1,33 +0,0 @@ -files() - ->exclude('.couscous') - ->exclude('node_modules') - ->exclude('vendor') - ->exclude('tests') - ->ignoreDotFiles(true) - ->ignoreVCS(true) - ->in(__DIR__); - -$config = PhpCsFixer\Config::create() - ->setRules([ - '@Symfony' => true, - 'array_syntax' => ['syntax' => 'short'], - 'yoda_style' => false, - 'no_short_echo_tag' => true, - 'ordered_imports' => true, - 'no_alternative_syntax' => true, - 'ordered_class_elements' => true, - 'phpdoc_order' => true, - //'no_superfluous_phpdoc_tags' => [ - // 'allow_mixed' => true, - // 'allow_unused_params' => true, - //], - //'phpdoc_add_missing_param_annotation' => [ - // 'only_untyped' => false, - //], - ]) - ->setFinder($finder); - -return $config; diff --git a/actions.php b/actions.php index cca727e2a..9d69ff6f5 100755 --- a/actions.php +++ b/actions.php @@ -88,7 +88,7 @@ if (filter('op') == 'aggiungi-allegato' || filter('op') == 'rimuovi-allegato') { } } - redirect(base_path().'/editor.php?id_module='.$id_module.'&id_record='.$id_record.((!empty($options['id_plugin'])) ? '#tab_'.$options['id_plugin'] : '')); + redirect_legacy(base_url().'/editor.php?id_module='.$id_module.'&id_record='.$id_record.((!empty($options['id_plugin'])) ? '#tab_'.$options['id_plugin'] : '')); } } @@ -288,17 +288,8 @@ elseif (post('op') == 'send-email') { } } elseif (filter('op') == 'aggiorna_colonne') { include_once base_dir().'/include/colonne.php'; -} elseif (filter('op') == 'toggle_colonna') { - $visible = filter('visible'); - $id_riga = filter('id_vista'); - - $dbo->query('UPDATE `zz_views` SET `visible` = '.prepare($visible).' WHERE id = '.prepare($id_riga)); -} elseif (filter('op') == 'ordina_colonne') { - $order = explode(',', post('order', true)); - - foreach ($order as $i => $id_riga) { - $dbo->query('UPDATE `zz_views` SET `order` = '.prepare($i).' WHERE id='.prepare($id_riga)); - } +} elseif (filter('op') == 'visualizza_riferimenti') { + include_once base_dir().'/include/riferimenti/riferimenti.php'; } elseif (filter('op') == 'visualizza_righe_riferimenti') { include_once base_dir().'/include/riferimenti/riferimenti.php'; } elseif (filter('op') == 'visualizza_righe_documento') { @@ -359,7 +350,7 @@ if ($structure->permission == 'rw') { $bulk = empty($bulk) ? [] : $bulk; if (in_array(post('op'), array_keys($bulk))) { - redirect(base_path().'/controller.php?id_module='.$id_module, 'js'); + redirect_legacy(base_url().'/controller.php?id_module='.$id_module, 'js'); } else { // Esecuzione delle operazioni del modulo ($include_file = $structure->filepath('actions.php')) ? include $include_file : null; diff --git a/ajax.php b/ajax.php index 8b82006f8..b904d3ec9 100755 --- a/ajax.php +++ b/ajax.php @@ -45,7 +45,7 @@ switch (filter('op')) { } if (!$found) { - array_push($_SESSION[$array[0]][$array[1]], $value); + $_SESSION[$array[0]][$array[1]][] = $value; } // print_r($_SESSION[$array[0]][$array[1]]); @@ -82,7 +82,7 @@ switch (filter('op')) { $posizione .= ', '.get('id_record'); } - $user = Auth::user(); + $user = auth()->user(); $interval = setting('Timeout notifica di presenza (minuti)') * 60 * 2; $dbo->query('UPDATE zz_semaphores SET updated = NOW() WHERE id_utente = :user_id AND posizione = :position', [ diff --git a/ajax_dataload.php b/ajax_dataload.php index b58fecb4f..5f46f7e68 100755 --- a/ajax_dataload.php +++ b/ajax_dataload.php @@ -180,11 +180,11 @@ if (!empty($query)) { // Link per i moduli if (empty($id_plugin)) { - $column['data-link'] = base_path().'/editor.php?id_module='.$id_module.'&id_record='.$id_record.$hash; + $column['data-link'] = base_url().'/editor.php?id_module='.$id_module.'&id_record='.$id_record.$hash; } // Link per i plugin else { - $column['data-link'] = base_path().'/add.php?id_module='.$id_module.'&id_record='.$id_record.'&id_plugin='.$id_plugin.'&id_parent='.$id_parent.'&edit=1'.$hash; + $column['data-link'] = base_url().'/add.php?id_module='.$id_module.'&id_record='.$id_record.'&id_plugin='.$id_plugin.'&id_parent='.$id_parent.'&edit=1'.$hash; $column['data-type'] = 'dialog'; } @@ -197,7 +197,7 @@ if (!empty($query)) { } // Replace base_link() per le query - $value = str_replace('base_link()', base_path(), $value); + $value = str_replace('base_link()', base_url(), $value); $result[] = str_replace('|attr|', implode(' ', $attributes), '
'.$value.'
'); } diff --git a/ajax_select.php b/ajax_select.php index 03932f48c..57743e81f 100755 --- a/ajax_select.php +++ b/ajax_select.php @@ -27,7 +27,7 @@ if (!isset($resource)) { // Opzioni di selezione sugli elementi $options = filter('options') ?: []; - $options_compatibility = session_get('superselect', []); + $options_compatibility = session('superselect', []); $options = array_merge($options_compatibility, $options); // Preselezione su $elements dichiarato da file precedente diff --git a/assets/src/js/functions/functions.js b/assets/src/js/functions/functions.js index e77147816..c57c65811 100755 --- a/assets/src/js/functions/functions.js +++ b/assets/src/js/functions/functions.js @@ -301,7 +301,7 @@ function message(element) { }, }); } else { - redirect(href, data, method, blank); + redirect_legacy(href, data, method, blank); } }, function (dismiss) { @@ -309,7 +309,7 @@ function message(element) { ); } -function redirect(href, data, method, blank) { +function redirect_legacy(href, data, method, blank) { method = method ? method : "get"; blank = blank ? blank : false; diff --git a/assets/src/js/functions/select.js b/assets/src/js/functions/select.js index a8756c410..70840d0ea 100755 --- a/assets/src/js/functions/select.js +++ b/assets/src/js/functions/select.js @@ -34,12 +34,9 @@ function start_superselect() { * @param container * @returns {*} */ -function optionRendering(data, container) { - // Aggiunta degli attributi impostati staticamente - selectOptionAttributes(data); - - // Impostazione del colore dell'opzione +function selectOptionRender(data, container) { let bg; + if (data._bgcolor_) { bg = data._bgcolor_; } else if ($(data.element).attr("_bgcolor_")) { @@ -53,29 +50,6 @@ function optionRendering(data, container) { $(container).css("color", setContrast(bg)); } - return data.text; -} - -/** - * Gestisce le operazioni di rendering per le opzioni selezionate del select. - * - * @param data - * @returns {*} - */ -function selectionRendering(data) { - // Aggiunta degli attributi impostati staticamente - selectOptionAttributes(data); - - return data.text; -} - -/** - * Gestisce le operazioni per l'impostazione dinamica degli attributi per una singola opzione del select. - * - * @param data - * @returns {void} - */ -function selectOptionAttributes(data) { // Aggiunta degli attributi impostati staticamente let attributes = $(data.element).data("select-attributes"); if (attributes) { @@ -83,6 +57,8 @@ function selectOptionAttributes(data) { data[key] = value; } } + + return data.text; } /** @@ -152,9 +128,6 @@ jQuery.fn.selectAdd = function (values) { values.forEach(function (item) { if (item.data) { - item['data-select-attributes'] = JSON.stringify(item.data); - - // Retrocompatibilità per l'uso del attributo data su selectData Object.keys(item.data).forEach(function (element) { item['data-' + element] = item.data[element]; }); @@ -247,8 +220,7 @@ function initStaticSelectInput(input) { escapeMarkup: function (text) { return text; }, - templateResult: optionRendering, - templateSelection: selectionRendering, + templateResult: selectOptionRender, }); } @@ -269,8 +241,7 @@ function initDynamicSelectInput(input) { escapeMarkup: function (text) { return text; }, - templateResult: optionRendering, - templateSelection: selectionRendering, + templateResult: selectOptionRender, ajax: { url: globals.rootdir + "/ajax_select.php?op=" + $input.data('source'), dataType: 'json', diff --git a/backup/.htaccess b/backup/.htaccess deleted file mode 100755 index 3a4288278..000000000 --- a/backup/.htaccess +++ /dev/null @@ -1 +0,0 @@ -Deny from all diff --git a/bug.php b/bug.php index 4d50c6d68..44a94f8ba 100755 --- a/bug.php +++ b/bug.php @@ -25,7 +25,7 @@ include_once __DIR__.'/core.php'; $account = Account::where('predefined', true)->first(); $bug_email = 'info@openstamanager.com'; -$user = Auth::user(); +$user = auth()->user(); if (filter('op') == 'send') { // Preparazione email @@ -87,13 +87,14 @@ if (filter('op') == 'send') { delete($backup_file); } - redirect(base_path().'/bug.php'); - exit(); + redirect_legacy(base_url().'/bug.php'); + throw new \App\Exceptions\LegacyExitException; + } $pageTitle = tr('Bug'); -include_once App::filepath('include|custom|', 'top.php'); +include_once AppLegacy::filepath('include|custom|', 'top.php'); if (empty($account['from_address']) || empty($account['server'])) { echo ' @@ -198,6 +199,6 @@ echo ' }); -'; +'; -include_once App::filepath('include|custom|', 'bottom.php'); +include_once AppLegacy::filepath('include|custom|', 'bottom.php'); diff --git a/composer.json b/composer.json index 907b70ae4..74048081d 100755 --- a/composer.json +++ b/composer.json @@ -15,7 +15,12 @@ }], "type": "project", "require": { - "php": ">=7.2", + "php": "^7.3|^8.0", + "fideloper/proxy": "^4.4", + "fruitcake/laravel-cors": "^2.0", + "guzzlehttp/guzzle": "^7.0.1", + "laravel/framework": "^8.12", + "laravel/tinker": "^2.5", "ext-curl": "*", "ext-dom": "*", "ext-fileinfo": "*", @@ -34,7 +39,6 @@ "dragonmantank/cron-expression": "^1.0", "ezyang/htmlpurifier": "^4.8", "filp/whoops": "^2.1", - "guzzlehttp/guzzle": "^6.3", "ifsnop/mysqldump-php": "^2.3", "illuminate/database": "^6.0", "intervention/image": "^2.3", @@ -64,7 +68,12 @@ }, "require-dev": { "codeception/codeception": "^3.0", - "friendsofphp/php-cs-fixer": "^2.10" + "friendsofphp/php-cs-fixer": "^2.10", + "facade/ignition": "^2.5", + "fakerphp/faker": "^1.9.1", + "mockery/mockery": "^1.4.2", + "nunomaduro/collision": "^5.0", + "phpunit/phpunit": "^9.3.3" }, "autoload": { "psr-4": { diff --git a/config.example.php b/config.example.php deleted file mode 100755 index 3f982f57d..000000000 --- a/config.example.php +++ /dev/null @@ -1,63 +0,0 @@ -. - */ - -// Impostazioni di base per l'accesso al database -$db_host = '|host|'; -$db_username = '|username|'; -$db_password = '|password|'; -$db_name = '|database|'; -//$port = '|port|'; - -// Percorso della cartella di backup -$backup_dir = __DIR__.'/backup/'; - -// Tema selezionato per il front-end -$theme = 'default'; - -// Impostazioni di sicurezza -$redirectHTTPS = false; // Redirect automatico delle richieste da HTTP a HTTPS -$disableCSRF = true; // Protezione contro CSRF - -// Impostazioni di debug -$debug = false; - -// Personalizzazione dei gestori dei tag personalizzati -$HTMLWrapper = null; -$HTMLHandlers = []; -$HTMLManagers = []; - -// Lingua del progetto (per la traduzione e la conversione numerica) -$lang = '|lang|'; -// Personalizzazione della formattazione di timestamp, date e orari -$formatter = [ - 'timestamp' => '|timestamp|', - 'date' => '|date|', - 'time' => '|time|', - 'number' => [ - 'decimals' => '|decimals|', - 'thousands' => '|thousands|', - ], -]; - -// Ulteriori file CSS e JS da includere -$assets = [ - 'css' => [], - 'print' => [], - 'js' => [], -]; diff --git a/config/csrf_config.php b/config/csrf_config.php index 61b740868..73ddb6241 100755 --- a/config/csrf_config.php +++ b/config/csrf_config.php @@ -26,10 +26,10 @@ return [ 'GET' => 0, 'POST' => 0, ], - 'jsUrl' => base_path().'/assets/dist/js/csrf/csrfprotector.js', + 'jsUrl' => base_url().'/assets/dist/js/csrf/csrfprotector.js', 'tokenLength' => 10, 'cookieConfig' => [ - 'path' => base_path(), + 'path' => base_url(), 'secure' => isHTTPS(true), ], 'verifyGetFor' => [], diff --git a/controller.php b/controller.php index d5ef0265f..bd4eed5f7 100755 --- a/controller.php +++ b/controller.php @@ -20,12 +20,12 @@ include_once __DIR__.'/core.php'; if (!empty($id_record) && !empty($id_module)) { - redirect(base_path().'/editor.php?id_module='.$id_module.'&id_record='.$id_record); + redirect_legacy(base_url().'/editor.php?id_module='.$id_module.'&id_record='.$id_record); } elseif (empty($id_module)) { - redirect(base_path().'/index.php'); + redirect_legacy(base_url().'/index.php'); } -include_once App::filepath('include|custom|', 'top.php'); +include_once AppLegacy::filepath('include|custom|', 'top.php'); // Inclusione gli elementi fondamentali include_once base_dir().'/actions.php'; @@ -112,4 +112,4 @@ function modificaColonne(button) { // Widget in basso echo '{( "name": "widgets", "id_module": "'.$id_module.'", "position": "right", "place": "controller" )}'; -include_once App::filepath('include|custom|', 'bottom.php'); +include_once AppLegacy::filepath('include|custom|', 'bottom.php'); diff --git a/core.php b/core.php index cced4a696..53ffa9ca9 100755 --- a/core.php +++ b/core.php @@ -30,7 +30,8 @@ if (version_compare(phpversion(), $minimum) < 0) {

Stai utilizzando la versione PHP '.phpversion().', non compatibile con OpenSTAManager.

Aggiorna PHP alla versione >= '.$minimum.'.

'; - exit(); + throw new \App\Exceptions\LegacyExitException; + } // Caricamento delle impostazioni personalizzabili @@ -38,38 +39,30 @@ if (file_exists(__DIR__.'/config.inc.php')) { include_once __DIR__.'/config.inc.php'; } -// Caricamento delle dipendenze e delle librerie del progetto -$loader = require_once __DIR__.'/vendor/autoload.php'; - -$namespaces = require_once __DIR__.'/config/namespaces.php'; -foreach ($namespaces as $path => $namespace) { - $loader->addPsr4($namespace.'\\', __DIR__.'/'.$path.'/custom/src'); - $loader->addPsr4($namespace.'\\', __DIR__.'/'.$path.'/src'); -} - // Individuazione dei percorsi di base -App::definePaths(__DIR__); +AppLegacy::definePaths(__DIR__); $docroot = DOCROOT; $rootdir = ROOTDIR; $baseurl = BASEURL; - +/* // Sicurezza della sessioni ini_set('session.cookie_samesite', 'strict'); ini_set('session.use_trans_sid', '0'); ini_set('session.use_only_cookies', '1'); -session_set_cookie_params(0, base_path(), null, isHTTPS(true)); -session_start(); +session_set_cookie_params(0, base_url(), null, isHTTPS(true)); +session_start();*/ // Lettura della configurazione -$config = App::getConfig(); +$config = AppLegacy::getConfig(); // Redirect al percorso HTTPS se impostato nella configurazione if (!empty($config['redirectHTTPS']) && !isHTTPS(true)) { header('HTTP/1.1 301 Moved Permanently'); header('Location: https://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']); - exit(); + throw new \App\Exceptions\LegacyExitException; + } /* GESTIONE DEGLI ERRORI */ @@ -95,7 +88,7 @@ if (!API\Response::isAPIRequest()) { $handlers[] = new Extensions\MessageHandler(Monolog\Logger::ERROR); // File di log ordinati in base alla data - if (App::debug()) { + if (AppLegacy::debug()) { $handlers[] = new RotatingFileHandler(base_dir().'/logs/error.log', 0, Monolog\Logger::ERROR); $handlers[] = new RotatingFileHandler(base_dir().'/logs/setup.log', 0, Monolog\Logger::EMERGENCY); } @@ -103,7 +96,7 @@ if (!API\Response::isAPIRequest()) { // Inizializzazione Whoops $whoops = new Whoops\Run(); - if (App::debug()) { + if (AppLegacy::debug()) { $whoops->pushHandler(new Whoops\Handler\PrettyPageHandler()); } @@ -135,7 +128,7 @@ error_reporting(E_ALL & ~E_WARNING & ~E_CORE_WARNING & ~E_NOTICE & ~E_USER_DEPRE $pattern = '[%datetime%] %channel%.%level_name%: %message% %context%'.PHP_EOL.'%extra% '.PHP_EOL; $monologFormatter = new Monolog\Formatter\LineFormatter($pattern); -$monologFormatter->includeStacktraces(App::debug()); +$monologFormatter->includeStacktraces(AppLegacy::debug()); // Filtra gli errori per livello preciso del gestore dedicato foreach ($handlers as $handler) { @@ -158,10 +151,10 @@ $dbo = $database = database(); // Istanziamento del gestore delle traduzioni del progetto $lang = !empty($config['lang']) ? $config['lang'] : (isset($_GET['lang']) ? $_GET['lang'] : null); $formatter = !empty($config['formatter']) ? $config['formatter'] : []; -$translator = trans(); -$translator->addLocalePath(base_dir().'/locale'); -$translator->addLocalePath(base_dir().'/modules/*/locale'); -$translator->setLocale($lang, $formatter); +AppLegacy::setFormatter($lang, $formatter); +//$translator->addLocalePath(base_dir().'/locale'); +//$translator->addLocalePath(base_dir().'/modules/*/locale'); +//$translator->setLocale($lang, $formatter); // Individuazione di versione e revisione del progetto $version = Update::getVersion(); @@ -169,19 +162,19 @@ $revision = Update::getRevision(); /* ACCESSO E INSTALLAZIONE */ // Controllo sulla presenza dei permessi di accesso basilari -$continue = $dbo->isInstalled() && !Update::isUpdateAvailable() && (Auth::check() || API\Response::isAPIRequest()); +$continue = $dbo->isInstalled() && !Update::isUpdateAvailable() && (auth()->check() || API\Response::isAPIRequest()); if (!empty($skip_permissions)) { Permissions::skip(); } -if (!$continue && getURLPath() != slashes(base_path().'/index.php') && !Permissions::getSkip()) { - if (Auth::check()) { - Auth::logout(); +if (!$continue && getURLPath() != slashes(base_url().'/index.php') && !Permissions::getSkip()) { + if (auth()->check()) { + auth()->logout(); } - redirect(base_path().'/index.php'); - exit(); + redirect_legacy(base_url().'/index.php'); + throw new \App\Exceptions\LegacyExitException; } /* INIZIALIZZAZIONE GENERALE */ @@ -192,7 +185,7 @@ if (!API\Response::isAPIRequest()) { // Controllo CSRF if (empty($config['disableCSRF'])) { - csrfProtector::init(); + //csrfProtector::init(); } // Aggiunta del wrapper personalizzato per la generazione degli input @@ -211,13 +204,12 @@ if (!API\Response::isAPIRequest()) { } // Registrazione globale del template per gli input HTML - register_shutdown_function('translateTemplate'); ob_start(); // Retrocompatibilità - $_SESSION['infos'] = isset($_SESSION['infos']) ? array_unique($_SESSION['infos']) : []; - $_SESSION['warnings'] = isset($_SESSION['warnings']) ? array_unique($_SESSION['warnings']) : []; - $_SESSION['errors'] = isset($_SESSION['errors']) ? array_unique($_SESSION['errors']) : []; + session(['infos' => isset($_SESSION['infos']) ? array_unique($_SESSION['infos']) : []]); + session(['warnings' => isset($_SESSION['warnings']) ? array_unique($_SESSION['warnings']) : []]); + session(['errors' => isset($_SESSION['errors']) ? array_unique($_SESSION['errors']) : []]); // Impostazione del tema grafico di default $theme = !empty($config['theme']) ? $config['theme'] : 'default'; @@ -226,13 +218,13 @@ if (!API\Response::isAPIRequest()) { // Periodo di visualizzazione dei record // Personalizzato if (!empty($_GET['period_start'])) { - $_SESSION['period_start'] = $_GET['period_start']; - $_SESSION['period_end'] = $_GET['period_end']; + session(['period_start' => $_GET['period_start']]); + session(['period_end' => $_GET['period_end']]); } // Dal 01-01-yyy al 31-12-yyyy - elseif (!isset($_SESSION['period_start'])) { - $_SESSION['period_start'] = date('Y').'-01-01'; - $_SESSION['period_end'] = date('Y').'-12-31'; + elseif (session('period_start') == null) { + session(['period_start' => date('Y').'-01-01']); + session(['period_end' => date('Y').'-12-31']); } $id_record = filter('id_record'); @@ -249,13 +241,13 @@ if (!API\Response::isAPIRequest()) { $id_module = $module ? $module['id'] : null; $id_plugin = $plugin ? $plugin['id'] : null; - $user = Auth::user(); + $user = auth()->user(); if (!empty($id_module)) { // Segmenti if (!isset($_SESSION['module_'.$id_module]['id_segment'])) { $segments = Modules::getSegments($id_module); - $_SESSION['module_'.$id_module]['id_segment'] = isset($segments[0]['id']) ? $segments[0]['id'] : null; + session(['module_'.$id_module.'.id_segment' => isset($segments[0]['id']) ? $segments[0]['id'] : null]); } Permissions::addModule($id_module); diff --git a/editor.php b/editor.php index 749517636..2ef117dfb 100755 --- a/editor.php +++ b/editor.php @@ -25,12 +25,12 @@ use Carbon\Carbon; $read_only = $structure->permission == 'r'; if (empty($id_record) && !empty($id_module) && empty($id_plugin)) { - redirect(base_path().'/controller.php?id_module='.$id_module); + redirect_legacy(base_url().'/controller.php?id_module='.$id_module); } elseif (empty($id_record) && empty($id_module) && empty($id_plugin)) { - redirect(base_path().'/index.php'); + redirect_legacy(base_url().'/index.php'); } -include_once App::filepath('include|custom|', 'top.php'); +include_once AppLegacy::filepath('include|custom|', 'top.php'); if (!empty($id_record)) { Util\Query::setSegments(false); @@ -73,7 +73,7 @@ if (empty($record) || !$has_access) {
- + '.tr('Indietro').' '; @@ -83,9 +83,9 @@ if (empty($record) || !$has_access) { $advanced_sessions = setting('Attiva notifica di presenza utenti sul record'); if (!empty($advanced_sessions)) { - $dbo->query('DELETE FROM zz_semaphores WHERE id_utente='.prepare(Auth::user()['id']).' AND posizione='.prepare($id_module.', '.$id_record)); + $dbo->query('DELETE FROM zz_semaphores WHERE id_utente='.prepare(auth()->user()['id']).' AND posizione='.prepare($id_module.', '.$id_record)); - $dbo->query('INSERT INTO zz_semaphores (id_utente, posizione, updated) VALUES ('.prepare(Auth::user()['id']).', '.prepare($id_module.', '.$id_record).', NOW())'); + $dbo->query('INSERT INTO zz_semaphores (id_utente, posizione, updated) VALUES ('.prepare(auth()->user()['id']).', '.prepare($id_module.', '.$id_record).', NOW())'); echo '
@@ -159,7 +159,7 @@ if (empty($record) || !$has_access) { // Pulsanti di default echo '
- + '.tr("Torna all'elenco").' @@ -325,7 +325,7 @@ if (empty($record) || !$has_access) { } // Informazioni sulle operazioni - if (Auth::admin()) { + if (auth()->user()->isAdmin()) { echo '
'; @@ -441,7 +441,7 @@ echo '{( "name": "widgets", "id_module": "'.$id_module.'", "id_record": "'.$id_r if (!empty($record)) { echo '
- + '.tr('Indietro').' '; } @@ -519,7 +519,7 @@ if (!empty($advanced_sessions)) { ?> function getActiveUsers(){ - $.getJSON('/ajax.php?op=active_users', { + $.getJSON('/ajax.php?op=active_users', { id_module: , id_record: }, @@ -544,4 +544,4 @@ if (!empty($advanced_sessions)) { - php_flag engine off - - - php_flag engine off - diff --git a/files/impianti/componente.ini b/files/impianti/componente.ini deleted file mode 100755 index 666004e58..000000000 --- a/files/impianti/componente.ini +++ /dev/null @@ -1,20 +0,0 @@ -[Nome] -tipo = span -valore = "Componente di esempio" - -[Marca] -tipo = input -valore = - -[Tipo] -tipo = select -valore = -opzioni = "Tipo 1", "Tipo 2" - -[Data di installazione] -tipo = date -valore = - -[Note] -tipo = textarea -valore = diff --git a/files/temp/.gitkeep b/files/temp/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/gulpfile.js b/gulpfile.js deleted file mode 100755 index d7f5bb48d..000000000 --- a/gulpfile.js +++ /dev/null @@ -1,515 +0,0 @@ -/* - * OpenSTAManager: il software gestionale open source per l'assistenza tecnica e la fatturazione - * Copyright (C) DevCode s.r.l. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -// Librerie NPM richieste per l'esecuzione -const gulp = require('gulp'); -const merge = require('merge-stream'); -const del = require('del'); -const gulpIf = require('gulp-if'); -const babel = require('gulp-babel'); - -// Minificatori -const minifyJS = require('gulp-uglify'); -const minifyCSS = require('gulp-clean-css'); -const minifyJSON = require('gulp-json-minify'); - -// Interpretatori CSS -const sass = require('gulp-sass'); -const less = require('gulp-less'); -const stylus = require('gulp-stylus'); -const autoprefixer = require('gulp-autoprefixer'); - -// Concatenatore -const concat = require('gulp-concat'); - -// Altro -const flatten = require('gulp-flatten'); -const rename = require('gulp-rename'); - -// Release -const glob = require('globby'); -const md5File = require('md5-file') -const fs = require('fs'); -const archiver = require('archiver'); -const shell = require('shelljs'); -const inquirer = require('inquirer'); - -// Configurazione -const config = { - production: 'assets/dist', // Cartella di destinazione - development: 'assets/src', // Cartella dei file di personalizzazione - debug: false, - nodeDirectory: './node_modules', // Percorso per node_modules - paths: { - js: 'js', - css: 'css', - images: 'img', - fonts: 'fonts' - }, - babelOptions: { - compact: true, - presets: [ - ['@babel/env', { - modules: false - }], - ], - }, - minifiers: { - css: { - rebase: false, - } - } -}; -config.babelOptions.compact = !config.debug; - -// Elaborazione e minificazione di JS -const JS = gulp.parallel(() => { - const vendor = [ - 'jquery/dist/jquery.js', - 'autosize/dist/autosize.js', - 'autocompleter/autocomplete.js', - 'html5sortable/dist/html5sortable.js', - 'bootstrap-colorpicker/dist/js/bootstrap-colorpicker.js', - 'moment/moment.js', - 'components-jqueryui/jquery-ui.js', - 'datatables.net/js/jquery.dataTables.js', - 'datatables.net-buttons/js/dataTables.buttons.js', - 'datatables.net-buttons/js/buttons.colVis.js', - 'datatables.net-buttons/js/buttons.flash.js', - 'datatables.net-buttons/js/buttons.html5.js', - 'datatables.net-buttons/js/buttons.print.js', - 'datatables.net-scroller/js/dataTables.scroller.js', - 'datatables.net-select/js/dataTables.select.js', - 'dropzone/dist/dropzone.js', - 'autonumeric/dist/autoNumeric.min.js', - 'eonasdan-bootstrap-datetimepicker/build/js/bootstrap-datetimepicker.min.js', - 'fullcalendar/dist/fullcalendar.js', - 'geocomplete/jquery.geocomplete.js', - 'inputmask/dist/min/jquery.inputmask.bundle.min.js', - 'jquery-form/src/jquery.form.js', - 'jquery-ui-touch-punch/jquery.ui.touch-punch.js', - 'jquery.shorten/src/jquery.shorten.js', - 'numeral/numeral.js', - 'parsleyjs/dist/parsley.js', - 'select2/dist/js/select2.min.js', - 'signature_pad/dist/signature_pad.js', - 'sweetalert2/dist/sweetalert2.js', - 'toastr/build/toastr.min.js', - 'tooltipster/dist/js/tooltipster.bundle.js', - 'admin-lte/dist/js/adminlte.js', - 'bootstrap/dist/js/bootstrap.min.js', - 'bootstrap-daterangepicker/daterangepicker.js', - 'datatables.net-bs/js/dataTables.bootstrap.js', - 'datatables.net-buttons-bs/js/buttons.bootstrap.js', - 'smartwizard/dist/js/jquery.smartWizard.min.js', - 'bootstrap-maxlength/dist/bootstrap-maxlength.js', - ]; - - for (const i in vendor) { - vendor[i] = config.nodeDirectory + '/' + vendor[i]; - } - - return gulp.src(vendor) - .pipe(babel(config.babelOptions)) - .pipe(concat('app.min.js')) - .pipe(minifyJS()) - .pipe(gulp.dest(config.production + '/' + config.paths.js)); -}, srcJS); - -// Elaborazione e minificazione di JS personalizzati -function srcJS() { - const js = gulp.src([ - config.development + '/' + config.paths.js + '/base/*.js', - ]) - .pipe(babel(config.babelOptions)) - .pipe(concat('custom.min.js')) - .pipe(gulpIf(!config.debug, minifyJS())) - .pipe(gulp.dest(config.production + '/' + config.paths.js)); - - const functions = gulp.src([ - config.development + '/' + config.paths.js + '/functions/*.js', - ]) - .pipe(babel(config.babelOptions)) - .pipe(concat('functions.min.js')) - .pipe(gulpIf(!config.debug, minifyJS())) - .pipe(gulp.dest(config.production + '/' + config.paths.js)); - - return merge(js, functions); -} - -// Elaborazione e minificazione di CSS -const CSS = gulp.parallel(() => { - const vendor = [ - 'bootstrap-colorpicker/dist/css/bootstrap-colorpicker.css', - 'dropzone/dist/dropzone.css', - 'eonasdan-bootstrap-datetimepicker/build/css/bootstrap-datetimepicker.min.css', - 'font-awesome/css/font-awesome.min.css', - 'fullcalendar/dist/fullcalendar.css', - 'parsleyjs/src/parsley.css', - 'select2/dist/css/select2.min.css', - 'sweetalert2/dist/sweetalert2.css', - 'toastr/build/toastr.min.css', - 'tooltipster/dist/css/tooltipster.bundle.css', - 'admin-lte/dist/css/AdminLTE.css', - 'bootstrap/dist/css/bootstrap.min.css', - 'bootstrap-daterangepicker/daterangepicker.css', - 'datatables.net-bs/css/dataTables.bootstrap.css', - 'datatables.net-buttons-bs/css/buttons.bootstrap.css', - 'datatables.net-scroller-bs/css/scroller.bootstrap.css', - 'datatables.net-select-bs/css/select.bootstrap.css', - 'select2-bootstrap-theme/dist/select2-bootstrap.css', - 'smartwizard/dist/css/smart_wizard.min.css', - 'smartwizard/dist/css/smart_wizard_theme_arrows.min.css', - ]; - - for (const i in vendor) { - vendor[i] = config.nodeDirectory + '/' + vendor[i]; - } - - return gulp.src(vendor) - .pipe(gulpIf('*.scss', sass(), gulpIf('*.less', less(), gulpIf('*.styl', stylus())))) - .pipe(autoprefixer()) - .pipe(minifyCSS({ - rebase: false, - })) - .pipe(concat('app.min.css')) - .pipe(gulp.dest(config.production + '/' + config.paths.css)); -}, srcCSS); - -// Elaborazione e minificazione di CSS personalizzati -function srcCSS() { - const css = gulp.src([ - config.development + '/' + config.paths.css + '/*.{css,scss,less,styl}', - ]) - .pipe(gulpIf('*.scss', sass(), gulpIf('*.less', less(), gulpIf('*.styl', stylus())))) - .pipe(autoprefixer()) - .pipe(gulpIf(!config.debug, minifyCSS(config.minifiers.css))) - .pipe(concat('style.min.css')) - .pipe(gulp.dest(config.production + '/' + config.paths.css)); - - const print = gulp.src([ - config.development + '/' + config.paths.css + '/print/*.{css,scss,less,styl}', - config.nodeDirectory + '/fullcalendar/fullcalendar.print.css', - ], { - allowEmpty: true - }) - .pipe(gulpIf('*.scss', sass(), gulpIf('*.less', less(), gulpIf('*.styl', stylus())))) - .pipe(autoprefixer()) - .pipe(gulpIf(!config.debug, minifyCSS(config.minifiers.css))) - .pipe(concat('print.min.css')) - .pipe(gulp.dest(config.production + '/' + config.paths.css)); - - const themes = gulp.src([ - config.development + '/' + config.paths.css + '/themes/*.{css,scss,less,styl}', - config.nodeDirectory + '/admin-lte/dist/css/skins/_all-skins.min.css', - ]) - .pipe(gulpIf('*.scss', sass(), gulpIf('*.less', less(), gulpIf('*.styl', stylus())))) - .pipe(autoprefixer()) - .pipe(gulpIf(!config.debug, minifyCSS(config.minifiers.css))) - .pipe(concat('themes.min.css')) - .pipe(flatten()) - .pipe(gulp.dest(config.production + '/' + config.paths.css)); - - return merge(css, print, themes); -} - - -// Elaborazione delle immagini -const images = srcImages; - -// Elaborazione delle immagini personalizzate -function srcImages() { - return gulp.src([ - config.development + '/' + config.paths.images + '/**/*.{jpg,png,jpeg,gif}', - ]) - .pipe(gulp.dest(config.production + '/' + config.paths.images)); -} - - -// Elaborazione dei fonts -const fonts = gulp.parallel(() => { - const vendor = [ - 'font-awesome/fonts/fontawesome-webfont.eot', - 'font-awesome/fonts/fontawesome-webfont.svg', - 'font-awesome/fonts/fontawesome-webfont.ttf', - 'font-awesome/fonts/fontawesome-webfont.woff', - 'font-awesome/fonts/fontawesome-webfont.woff2', - 'font-awesome/fonts/FontAwesome.otf', - 'bootstrap/dist/fonts/glyphicons-halflings-regular.eot', - 'bootstrap/dist/fonts/glyphicons-halflings-regular.svg', - 'bootstrap/dist/fonts/glyphicons-halflings-regular.ttf', - 'bootstrap/dist/fonts/glyphicons-halflings-regular.woff', - 'bootstrap/dist/fonts/glyphicons-halflings-regular.woff2', - ]; - - for (const i in vendor) { - vendor[i] = config.nodeDirectory + '/' + vendor[i]; - } - - return gulp.src(vendor) - .pipe(flatten()) - .pipe(gulp.dest(config.production + '/' + config.paths.fonts)); -}, srcFonts); - -// Elaborazione dei fonts personalizzati -function srcFonts() { - return gulp.src([ - config.development + '/' + config.paths.fonts + '/**/*.{otf,eot,svg,ttf,woff,woff2}', - ]) - .pipe(flatten()) - .pipe(gulp.dest(config.production + '/' + config.paths.fonts)); -} - -function ckeditor() { - return gulp.src([ - config.nodeDirectory + '/ckeditor4/{adapters,lang,skins,plugins,core}/**/*.{js,json,css,png,gif,html}', - config.nodeDirectory + '/ckeditor4/*.{js,css}', - ]) - .pipe(gulp.dest(config.production + '/' + config.paths.js + '/ckeditor')); -} - -function colorpicker() { - return gulp.src([ - config.nodeDirectory + '/bootstrap-colorpicker/dist/**/*.{jpg,png,jpeg}', - ]) - .pipe(flatten()) - .pipe(gulp.dest(config.production + '/' + config.paths.images + '/bootstrap-colorpicker')); -} - -function password_strength() { - return gulp.src([ - config.nodeDirectory + '/pwstrength-bootstrap/dist/*.js', - ]) - .pipe(concat('password.min.js')) - .pipe(minifyJS()) - .pipe(gulp.dest(config.production + '/password-strength')); -} - -function hotkeys() { - return gulp.src([ - config.nodeDirectory + '/hotkeys-js/dist/hotkeys.min.js', - ]) - .pipe(flatten()) - .pipe(gulp.dest(config.production + '/' + config.paths.js + '/hotkeys-js')); -} - -function chartjs() { - return gulp.src([ - config.nodeDirectory + '/chart.js/dist/Chart.min.js', - ]) - .pipe(flatten()) - .pipe(gulp.dest(config.production + '/' + config.paths.js + '/chartjs')); -} - -function csrf() { - return gulp.src([ - './vendor/owasp/csrf-protector-php/js/csrfprotector.js', - ]) - .pipe(flatten()) - .pipe(gulp.dest(config.production + '/' + config.paths.js + '/csrf')); -} - -function pdfjs() { - const web = gulp.src([ - config.nodeDirectory + '/pdf.js/web/**/*', - '!' + config.nodeDirectory + '/pdf.js/web/cmaps/*', - '!' + config.nodeDirectory + '/pdf.js/web/*.map', - '!' + config.nodeDirectory + '/pdf.js/web/*.pdf', - ]) - .pipe(gulp.dest(config.production + '/pdfjs/web')); - - const build = gulp.src([ - config.nodeDirectory + '/pdf.js/build/*', - '!' + config.nodeDirectory + '/pdf.js/build/*.map', - ]) - .pipe(gulp.dest(config.production + '/pdfjs/build')); - - return merge(web, build); -} - -// Elaborazione e minificazione delle informazioni sull'internazionalizzazione -function i18n() { - return gulp.src([ - config.nodeDirectory + '/**/{i18n,lang,locale,locales}/*.{js,json}', - config.development + '/' + config.paths.js + '/i18n/**/*.{js,json}', - '!' + config.nodeDirectory + '/**/{src,plugins}/**', - '!' + config.nodeDirectory + '/ckeditor4/**', - '!' + config.nodeDirectory + '/summernote/**', - '!' + config.nodeDirectory + '/jquery-ui/**', - ]) - //.pipe(gulpIf('*.js', minifyJS(), gulpIf('*.json', minifyJSON()))) - .pipe(gulpIf('!*.min.*', rename({ - suffix: '.min' - }))) - .pipe(flatten({ - includeParents: 1 - })) - .pipe(gulp.dest(config.production + '/' + config.paths.js + '/i18n')); -} - -// PHP DebugBar assets -function phpDebugBar() { - return gulp.src([ - './vendor/maximebf/debugbar/src/DebugBar/Resources/**/*', - '!./vendor/maximebf/debugbar/src/DebugBar/Resources/vendor/**/*', - ]) - .pipe(gulpIf('*.css', minifyCSS(), gulpIf('*.js', minifyJS()))) - .pipe(gulp.dest(config.production + '/php-debugbar')); -} - -// Operazioni per la release -function release(done) { - // Impostazione dello zip - let output = fs.createWriteStream('./release.zip', {flags: 'w'}); - let archive = archiver('zip'); - - output.on('close', function () { - console.log('ZIP completato!'); - }); - - archive.on('error', function (err) { - throw err; - }); - - archive.pipe(output); - - // Individuazione dei file da aggiungere - glob([ - '**/*', - '!checksum.json', - '!database.json', - '!.idea/**', - '!.git/**', - '!node_modules/**', - '!include/custom/**', - '!backup/**', - '!files/**', - 'files/temp/.gitkeep', - '!logs/**', - '!config.inc.php', - '!update/structure.php', - '!**/*.(lock|phar|log|zip|bak|jar|txt)', - '!**/~*', - '!vendor/tecnickcom/tcpdf/examples/**', - '!vendor/tecnickcom/tcpdf/fonts/*', - 'vendor/tecnickcom/tcpdf/fonts/*helvetica*', - '!vendor/mpdf/mpdf/tmp/*', - '!vendor/mpdf/mpdf/ttfonts/*', - 'vendor/mpdf/mpdf/ttfonts/DejaVuinfo.txt', - 'vendor/mpdf/mpdf/ttfonts/DejaVu*Condensed*', - '!vendor/maximebf/debugbar/src/DebugBar/Resources/vendor/**', - '!vendor/respect/validation/tests/**', - '!vendor/willdurand/geocoder/tests/**', - ], { - dot: true, - }).then(function (files) { - // Aggiunta dei file con i relativi checksum - let checksum = {}; - for (const file of files) { - if (fs.lstatSync(file).isDirectory()) { - archive.directory(file, file); - } else { - archive.file(file); - - if (!file.startsWith('vendor')) { - checksum[file] = md5File.sync(file); - } - } - } - - // Eccezioni - archive.file('backup/.htaccess', {}); - archive.file('files/.htaccess', {}); - archive.file('files/my_impianti/componente.ini', {}); - archive.file('logs/.htaccess', {}); - - // Aggiunta del file dei checksum - let checksumFile = fs.createWriteStream('./checksum.json', {flags: 'w'}); - checksumFile.write(JSON.stringify(checksum)); - checksumFile.close(); - archive.file('checksum.json', {}); - - // Aggiunta del file per il controllo di integrità del database - archive.append(shell.exec('php update/structure.php', { - silent: true - }).stdout, { - name: 'database.json' - }); - - // Aggiunta del commit corrente nel file REVISION - archive.append(shell.exec('git rev-parse --short HEAD', { - silent: true - }).stdout, { - name: 'REVISION' - }); - - // Opzioni sulla release - inquirer.prompt([{ - type: 'input', - name: 'version', - message: 'Numero di versione:', - }, { - type: 'confirm', - name: 'beta', - message: 'Versione beta?', - default: false, - }]).then(function (result) { - let version = result.version; - - if (result.beta) { - version += 'beta'; - } - - archive.append(version, { - name: 'VERSION' - }); - - // Completamento dello zip - archive.finalize(); - - done(); - }); - }); -} - -// Pulizia -function clean() { - return del([config.production]); -} - -// Operazioni di default per la generazione degli assets -const bower = gulp.series(clean, gulp.parallel(JS, CSS, images, fonts, phpDebugBar, ckeditor, colorpicker, i18n, pdfjs, hotkeys, chartjs, password_strength, csrf)); - -// Debug su CSS e JS -exports.srcJS = srcJS; -exports.srcCSS = srcCSS; - -exports.bower = bower; -exports.release = release; -exports.default = bower; - -// Watch task - lanciato con `gulp watch`, resta in attesa e ogni volta che viene modificato un asset in src -// viene aggiornata la dist -gulp.task('watch', function () { - gulp.watch('assets/src/css/*.css', gulp.series(srcCSS, CSS)); - gulp.watch('assets/src/css/print/*.css', gulp.series(srcCSS, CSS)); - gulp.watch('assets/src/css/themes/*.css', gulp.series(srcCSS, CSS)); - gulp.watch('assets/src/js/base/*.js', gulp.series(srcJS, JS)); - gulp.watch('assets/src/js/functions/*.js', gulp.series(srcJS, JS)); - gulp.watch('assets/src/img/*', gulp.series(images)); -}); diff --git a/include/bottom.php b/include/bottom.php index 918715b39..8dc3679c5 100755 --- a/include/bottom.php +++ b/include/bottom.php @@ -19,7 +19,7 @@ include_once __DIR__.'/../core.php'; -if (Auth::check()) { +if (auth()->check()) { echo '
@@ -40,13 +40,13 @@ if (Auth::check()) { echo '
'; -if (Auth::check()) { +if (auth()->check()) { if (!empty($_SESSION['keep_alive'])) { echo ' '; } - if (App::debug()) { + if (AppLegacy::debug()) { echo '