diff --git a/actions.php b/actions.php index b69535026..97534a6e2 100755 --- a/actions.php +++ b/actions.php @@ -30,7 +30,7 @@ if (empty($structure) || empty($structure['enabled'])) { die(tr('Accesso negato')); } -$upload_dir = DOCROOT.'/'.Uploads::getDirectory($id_module, $id_plugin); +$upload_dir = base_dir().'/'.Uploads::getDirectory($id_module, $id_plugin); $database->beginTransaction(); @@ -87,7 +87,7 @@ if (filter('op') == 'link_file' || filter('op') == 'unlink_file') { } } - redirect(ROOTDIR.'/editor.php?id_module='.$id_module.'&id_record='.$id_record.((!empty($options['id_plugin'])) ? '#tab_'.$options['id_plugin'] : '')); + redirect(base_path().'/editor.php?id_module='.$id_module.'&id_record='.$id_record.((!empty($options['id_plugin'])) ? '#tab_'.$options['id_plugin'] : '')); } } @@ -273,13 +273,13 @@ elseif (post('op') == 'send-email') { flash()->error(tr('Errore durante l\'invio email! Verifica i parametri dell\'account SMTP utilizzato.')); } } elseif (filter('op') == 'aggiorna_colonne') { - include_once DOCROOT.'/include/colonne.php'; + include_once base_dir().'/include/colonne.php'; } elseif (filter('op') == 'visualizza_riferimenti') { - include_once DOCROOT.'/include/riferimenti/riferimenti.php'; + include_once base_dir().'/include/riferimenti/riferimenti.php'; } elseif (filter('op') == 'visualizza_righe_riferimenti') { - include_once DOCROOT.'/include/riferimenti/righe_riferimenti.php'; + include_once base_dir().'/include/riferimenti/righe_riferimenti.php'; } elseif (filter('op') == 'visualizza_righe_documento') { - include_once DOCROOT.'/include/riferimenti/righe_documento.php'; + include_once base_dir().'/include/riferimenti/righe_documento.php'; } elseif (filter('op') == 'salva_riferimento_riga') { $database->insert('co_riferimenti_righe', [ 'source_type' => filter('source_type'), @@ -336,7 +336,7 @@ if ($structure->permission == 'rw') { $bulk = empty($bulk) ? [] : $bulk; if (in_array(post('op'), array_keys($bulk))) { - redirect(ROOTDIR.'/controller.php?id_module='.$id_module, 'js'); + redirect(base_path().'/controller.php?id_module='.$id_module, 'js'); } else { // Esecuzione delle operazioni del modulo include $structure->filepath('actions.php'); diff --git a/add.php b/add.php index 7535b9eb6..f634ba663 100755 --- a/add.php +++ b/add.php @@ -20,7 +20,7 @@ include_once __DIR__.'/core.php'; // Inclusione elementi fondamentali del modulo -include $docroot.'/actions.php'; +include base_dir().'/actions.php'; // Controllo dei permessi if (empty($id_plugin)) { diff --git a/ajax.php b/ajax.php index 02aeac754..c1384ccb4 100755 --- a/ajax.php +++ b/ajax.php @@ -72,7 +72,7 @@ switch (filter('op')) { break; case 'checklists': - include DOCROOT.'/plugins/checks.php'; + include base_dir().'/plugins/checks.php'; break; diff --git a/ajax_dataload.php b/ajax_dataload.php index 6fdd017e9..3753e2a00 100755 --- a/ajax_dataload.php +++ b/ajax_dataload.php @@ -22,11 +22,13 @@ include_once __DIR__.'/core.php'; use Util\Query; // Informazioni fondamentali -$columns = filter('columns'); -$order = filter('order')[0]; +$columns = (array) filter('columns'); +$order = filter('order') ? filter('order')[0] : []; $draw_numer = intval(filter('draw')); -$order['column'] = $order['column'] - 1; +if (!empty(filter('order'))) { + $order['column'] = $order['column'] - 1; +} array_shift($columns); $total = Util\Query::readQuery($structure); @@ -76,7 +78,7 @@ if (!empty($query)) { // Allineamento delle righe $align = []; - $row = $rows[0] ?: []; + $row = isset($rows[0]) ? $rows[0] : []; foreach ($row as $field => $value) { $value = trim($value); @@ -164,7 +166,7 @@ if (!empty($query)) { $id_record = $r['id']; $hash = ''; - $id_module = $r['_link_module_'] ?: $id_module; + $id_module = !empty($r['_link_module_']) ? $r['_link_module_'] : $id_module; if (!empty($r['_link_record_'])) { $id_record = $r['_link_record_']; $hash = !empty($r['_link_hash_']) ? '#'.$r['_link_hash_'] : ''; @@ -173,11 +175,11 @@ if (!empty($query)) { // Link per i moduli if (empty($id_plugin)) { - $column['data-link'] = $rootdir.'/editor.php?id_module='.$id_module.'&id_record='.$id_record.$hash; + $column['data-link'] = base_path().'/editor.php?id_module='.$id_module.'&id_record='.$id_record.$hash; } // Link per i plugin else { - $column['data-link'] = $rootdir.'/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_path().'/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'; } @@ -189,8 +191,8 @@ if (!empty($query)) { $attributes[] = $key.'="'.$val.'"'; } - // Replace rootdir per le query - $value = str_replace('ROOTDIR', ROOTDIR, $value); + // Replace base_link() per le query + $value = str_replace('base_link()', base_path(), $value); $result[] = str_replace('|attr|', implode(' ', $attributes), '
'.$value.'
'); } diff --git a/ajax_select.php b/ajax_select.php index 166fc9e29..ea0f20a45 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['superselect'] ?: []; + $options_compatibility = session_get('superselect', []); $options = array_merge($options_compatibility, $options); // Preselezione su $elements dichiarato da file precedente diff --git a/bug.php b/bug.php index 4001192f8..b6636eb42 100755 --- a/bug.php +++ b/bug.php @@ -38,13 +38,13 @@ if (filter('op') == 'send') { $mail->Subject = 'Segnalazione bug OSM '.$version; // Aggiunta dei file di log (facoltativo) - if (!empty(post('log')) && file_exists($docroot.'/logs/error.log')) { - $mail->AddAttachment($docroot.'/logs/error.log'); + if (!empty(post('log')) && file_exists(base_dir().'/logs/error.log')) { + $mail->AddAttachment(base_dir().'/logs/error.log'); } // Aggiunta della copia del database (facoltativo) if (!empty(post('sql'))) { - $backup_file = $docroot.'/Backup OSM '.date('Y-m-d').' '.date('H_i_s').'.sql'; + $backup_file = base_dir().'/Backup OSM '.date('Y-m-d').' '.date('H_i_s').'.sql'; Backup::database($backup_file); $mail->AddAttachment($backup_file); @@ -87,7 +87,7 @@ if (filter('op') == 'send') { delete($backup_file); } - redirect($rootdir.'/bug.php'); + redirect(base_path().'/bug.php'); exit(); } diff --git a/composer.json b/composer.json index ff1cfc7f7..8aab949e8 100755 --- a/composer.json +++ b/composer.json @@ -64,7 +64,46 @@ "autoload": { "psr-4": { "": "src/", - "Update\\": "update/" + "Update\\": "update/", + "Modules\\Aggiornamenti\\": ["modules/aggiornamenti/custom/src/", "modules/aggiornamenti/src/"], + "Modules\\Anagrafiche\\": ["modules/anagrafiche/custom/src/", "modules/anagrafiche/src/"], + "Modules\\Backups\\": ["modules/backups/custom/src/", "modules/backups/src/"], + "Modules\\Emails\\": ["modules/emails/custom/src/", "modules/emails/src/"], + "Modules\\Articoli\\": ["modules/articoli/custom/src/", "modules/articoli/src/"], + "Modules\\Checklists\\": ["modules/checklists/custom/src/", "modules/checklists/src/"], + "Modules\\Ritenute\\": ["modules/ritenute/custom/src/", "modules/ritenute/src/"], + "Modules\\RitenuteContributi\\": ["modules/ritenute_contributi/custom/src/", "modules/ritenute_contributi/src/"], + "Modules\\Rivalse\\": ["modules/rivalse/custom/src/", "modules/rivalse/src/"], + "Modules\\Newsletter\\": ["modules/newsletter/custom/src/", "modules/newsletter/src/"], + "Modules\\Iva\\": ["modules/iva/custom/src/", "modules/iva/src/"], + "Modules\\DDT\\": ["modules/ddt/custom/src/", "modules/ddt/src/"], + "Modules\\Fatture\\": ["modules/fatture/custom/src/", "modules/fatture/src/"], + "Modules\\Ordini\\": ["modules/ordini/custom/src/", "modules/ordini/src/"], + "Modules\\Preventivi\\": ["modules/preventivi/custom/src/", "modules/preventivi/src/"], + "Modules\\Contratti\\": ["modules/contratti/custom/src/", "modules/contratti/src/"], + "Modules\\Interventi\\": ["modules/interventi/custom/src/", "modules/interventi/src/"], + "Modules\\Pagamenti\\": ["modules/pagamenti/custom/src/", "modules/pagamenti/src/"], + "Modules\\Statistiche\\": ["modules/statistiche/custom/src/", "modules/statistiche/src/"], + "Modules\\Scadenzario\\": ["modules/scadenzario/custom/src/", "modules/scadenzario/src/"], + "Modules\\PrimaNota\\": ["modules/primanota/custom/src/", "modules/primanota/src/"], + "Modules\\Utenti\\": ["modules/utenti/custom/src/", "modules/utenti/src/"], + "Modules\\StatoServizi\\": ["modules/stato_servizi/custom/src/", "modules/stato_servizi/src/"], + "Modules\\StatiIntervento\\": ["modules/stati_intervento/custom/src/", "modules/stati_intervento/src/"], + "Modules\\StatiPreventivo\\": ["modules/stati_preventivo/custom/src/", "modules/stati_preventivo/src/"], + "Modules\\StatiContratto\\": ["modules/stati_contratto/custom/src/", "modules/stati_contratto/src/"], + "Modules\\TipiIntervento\\": ["modules/tipi_intervento/custom/src/", "modules/tipi_intervento/src/"], + "Modules\\CategorieDocumentali\\": ["modules/categorie_documenti/custom/src/", "modules/categorie_documenti/src/"], + "Modules\\Listini\\": ["modules/listini/custom/src/", "modules/listini/src/"], + "Modules\\Impianti\\": ["modules/impianti/custom/src/", "modules/impianti/src/"], + "Modules\\Impostazioni\\": ["modules/impostazioni/custom/src/", "modules/impostazioni/src/"], + "Plugins\\ExportFE\\": ["plugins/exportFE/custom/src/", "plugins/exportFE/src/"], + "Plugins\\ImportFE\\": ["plugins/importFE/custom/src/", "plugins/importFE/src/"], + "Plugins\\ReceiptFE\\": ["plugins/receiptFE/custom/src/", "plugins/receiptFE/src/"], + "Plugins\\DichiarazioniIntento\\": ["plugins/dichiarazioni_intento/custom/src/", "plugins/dichiarazioni_intento/src/"], + "Plugins\\PianificazioneInterventi\\": ["plugins/pianificazione_interventi/custom/src/", "plugins/pianificazione_interventi/src/"], + "Plugins\\PianificazioneFatturazione\\": ["plugins/pianificazione_fatturazione/custom/src/", "plugins/pianificazione_fatturazione/src/"], + "Plugins\\StatisticheArticoli\\": ["plugins/statistiche_articoli/custom/src/", "plugins/statistiche_articoli/src/"], + "Plugins\\DettagliArticolo\\": ["plugins/dettagli_articolo/custom/src/", "plugins/dettagli_articolo/src/"] }, "files": [ "lib/functions.php", diff --git a/config/csrf_config.php b/config/csrf_config.php index 06ae5d5f7..24ba86f57 100755 --- a/config/csrf_config.php +++ b/config/csrf_config.php @@ -21,15 +21,15 @@ * Configuration file for CSRF Protector. */ return [ - 'logDirectory' => DOCROOT.'/logs', + 'logDirectory' => base_dir().'/logs', 'failedAuthAction' => [ 'GET' => 0, 'POST' => 0, ], - 'jsUrl' => ROOTDIR.'/assets/dist/js/csrf/csrfprotector.js', + 'jsUrl' => base_path().'/assets/dist/js/csrf/csrfprotector.js', 'tokenLength' => 10, 'cookieConfig' => [ - 'path' => ROOTDIR, + 'path' => base_path(), 'secure' => isHTTPS(true), ], 'verifyGetFor' => [], diff --git a/config/namespaces.php b/config/namespaces.php index 3b7b3306e..ed9fd2003 100755 --- a/config/namespaces.php +++ b/config/namespaces.php @@ -18,6 +18,7 @@ */ return [ + /* 'modules/aggiornamenti' => 'Modules\Aggiornamenti', 'modules/anagrafiche' => 'Modules\Anagrafiche', 'modules/backups' => 'Modules\Backups', @@ -57,4 +58,5 @@ return [ 'plugins/pianificazione_fatturazione' => 'Plugins\PianificazioneFatturazione', 'plugins/statistiche_articoli' => 'Plugins\StatisticheArticoli', 'plugins/dettagli_articolo' => 'Plugins\DettagliArticolo', + */ ]; diff --git a/controller.php b/controller.php index b01b0f843..821068453 100755 --- a/controller.php +++ b/controller.php @@ -20,15 +20,15 @@ include_once __DIR__.'/core.php'; if (!empty($id_record) && !empty($id_module)) { - redirect(ROOTDIR.'/editor.php?id_module='.$id_module.'&id_record='.$id_record); + redirect(base_path().'/editor.php?id_module='.$id_module.'&id_record='.$id_record); } elseif (empty($id_module)) { - redirect(ROOTDIR.'/index.php'); + redirect(base_path().'/index.php'); } include_once App::filepath('include|custom|', 'top.php'); // Inclusione gli elementi fondamentali -include_once $docroot.'/actions.php'; +include_once base_dir().'/actions.php'; // Widget in alto echo '{( "name": "widgets", "id_module": "'.$id_module.'", "position": "top", "place": "controller" )}'; @@ -66,7 +66,7 @@ echo '
'; -include $docroot.'/include/manager.php'; +include base_dir().'/include/manager.php'; echo '
'; @@ -81,7 +81,7 @@ foreach ($plugins as $plugin) { $id_plugin = $plugin['id']; - include $docroot.'/include/manager.php'; + include base_dir().'/include/manager.php'; echo '
'; diff --git a/core.php b/core.php index 50685b13e..030fe12a8 100755 --- a/core.php +++ b/core.php @@ -20,8 +20,6 @@ // Rimozione header X-Powered-By header_remove('X-Powered-By'); -ini_set('session.cookie_samesite', 'strict'); - // Impostazioni di configurazione PHP date_default_timezone_set('Europe/Rome'); @@ -81,16 +79,16 @@ use Monolog\Handler\StreamHandler; $handlers = []; if (!API\Response::isAPIRequest()) { // File di log di base (logs/error.log, logs/setup.log) - $handlers[] = new StreamHandler($docroot.'/logs/error.log', Monolog\Logger::ERROR); - $handlers[] = new StreamHandler($docroot.'/logs/setup.log', Monolog\Logger::EMERGENCY); + $handlers[] = new StreamHandler(base_dir().'/logs/error.log', Monolog\Logger::ERROR); + $handlers[] = new StreamHandler(base_dir().'/logs/setup.log', Monolog\Logger::EMERGENCY); // Messaggi grafici per l'utente $handlers[] = new Extensions\MessageHandler(Monolog\Logger::ERROR); // File di log ordinati in base alla data if (App::debug()) { - $handlers[] = new RotatingFileHandler($docroot.'/logs/error.log', 0, Monolog\Logger::ERROR); - $handlers[] = new RotatingFileHandler($docroot.'/logs/setup.log', 0, Monolog\Logger::EMERGENCY); + $handlers[] = new RotatingFileHandler(base_dir().'/logs/error.log', 0, Monolog\Logger::ERROR); + $handlers[] = new RotatingFileHandler(base_dir().'/logs/setup.log', 0, Monolog\Logger::EMERGENCY); } // Inizializzazione Whoops @@ -118,9 +116,17 @@ if (!API\Response::isAPIRequest()) { ]); }); } else { - $handlers[] = new StreamHandler($docroot.'/logs/api.log', Monolog\Logger::ERROR); + $handlers[] = new StreamHandler(base_dir().'/logs/api.log', Monolog\Logger::ERROR); } +// 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(); + // Disabilita i messaggi nativi di PHP ini_set('display_errors', 0); // Ignora gli avvertimenti e le informazioni relative alla deprecazione di componenti @@ -144,13 +150,6 @@ $dbo = $database = database(); /* SESSIONE */ if (!API\Response::isAPIRequest()) { - // Sicurezza della sessioni - ini_set('session.use_trans_sid', '0'); - ini_set('session.use_only_cookies', '1'); - - session_set_cookie_params(0, $rootdir, null, isHTTPS(true)); - session_start(); - // Barra di debug (necessario per loggare tutte le query) if (App::debug()) { $debugbar = new DebugBar\DebugBar(); @@ -168,11 +167,11 @@ if (!API\Response::isAPIRequest()) { /* INTERNAZIONALIZZAZIONE */ // Istanziamento del gestore delle traduzioni del progetto -$lang = !empty($config['lang']) ? $config['lang'] : $_GET['lang']; +$lang = !empty($config['lang']) ? $config['lang'] : (isset($_GET['lang']) ? $_GET['lang'] : null); $formatter = !empty($config['formatter']) ? $config['formatter'] : []; $translator = trans(); -$translator->addLocalePath($docroot.'/locale'); -$translator->addLocalePath($docroot.'/modules/*/locale'); +$translator->addLocalePath(base_dir().'/locale'); +$translator->addLocalePath(base_dir().'/modules/*/locale'); $translator->setLocale($lang, $formatter); // Individuazione di versione e revisione del progetto @@ -187,12 +186,12 @@ if (!empty($skip_permissions)) { Permissions::skip(); } -if (!$continue && getURLPath() != slashes(ROOTDIR.'/index.php') && !Permissions::getSkip()) { +if (!$continue && getURLPath() != slashes(base_path().'/index.php') && !Permissions::getSkip()) { if (Auth::check()) { Auth::logout(); } - redirect(ROOTDIR.'/index.php'); + redirect(base_path().'/index.php'); exit(); } @@ -258,8 +257,8 @@ if (!API\Response::isAPIRequest()) { $plugin = Plugins::getCurrent(); $structure = isset($plugin) ? $plugin : $module; - $id_module = $module['id']; - $id_plugin = $plugin['id']; + $id_module = $module ? $module['id'] : null; + $id_plugin = $plugin ? $plugin['id'] : null; $user = Auth::user(); diff --git a/cron.php b/cron.php index 89885e693..7c3cae6f0 100644 --- a/cron.php +++ b/cron.php @@ -56,18 +56,18 @@ $pattern = '[%datetime%] %level_name%: %message% %context%'.PHP_EOL; $formatter = new Monolog\Formatter\LineFormatter($pattern); $logger = new Logger('Tasks'); -$handler = new RotatingFileHandler(DOCROOT.'/logs/cron.log', 7); +$handler = new RotatingFileHandler(base_dir().'/logs/cron.log', 7); $handler->setFormatter($formatter); $logger->pushHandler($handler); // Lettura della cache -$ultima_esecuzione = Cache::get('Ultima esecuzione del cron'); +$ultima_esecuzione = Cache::pool('Ultima esecuzione del cron'); $data = $ultima_esecuzione->content; -$in_esecuzione = Cache::get('Cron in esecuzione'); -$cron_id = Cache::get('ID del cron'); +$in_esecuzione = Cache::pool('Cron in esecuzione'); +$cron_id = Cache::pool('ID del cron'); -$disattiva = Cache::get('Disabilita cron'); +$disattiva = Cache::pool('Disabilita cron'); if (!empty($disattiva->content)) { return; } diff --git a/editor.php b/editor.php index df4523096..543cf5327 100755 --- a/editor.php +++ b/editor.php @@ -25,9 +25,9 @@ use Carbon\Carbon; $read_only = $structure->permission == 'r'; if (empty($id_record) && !empty($id_module) && empty($id_plugin)) { - redirect(ROOTDIR.'/controller.php?id_module='.$id_module); + redirect(base_path().'/controller.php?id_module='.$id_module); } elseif (empty($id_record) && empty($id_module) && empty($id_plugin)) { - redirect(ROOTDIR.'/index.php'); + redirect(base_path().'/index.php'); } include_once App::filepath('include|custom|', 'top.php'); @@ -45,7 +45,7 @@ $has_access = !empty($query) ? $dbo->fetchNum($query) !== 0 : true; if ($has_access) { // Inclusione gli elementi fondamentali - include_once DOCROOT.'/actions.php'; + include_once base_dir().'/actions.php'; } if (empty($record) || !$has_access) { @@ -58,7 +58,7 @@ if (empty($record) || !$has_access) {
- + '.tr('Indietro').' '; @@ -142,7 +142,7 @@ if (empty($record) || !$has_access) { // Pulsanti di default echo '
- + '.tr("Torna all'elenco").' @@ -266,7 +266,7 @@ if (empty($record) || !$has_access) { echo '
'; - include DOCROOT.'/plugins/notes.php'; + include base_dir().'/plugins/notes.php'; echo '
'; @@ -276,7 +276,7 @@ if (empty($record) || !$has_access) { echo '
'; - include DOCROOT.'/plugins/checks.php'; + include base_dir().'/plugins/checks.php'; echo '
'; @@ -378,7 +378,7 @@ if (empty($record) || !$has_access) { $id_plugin = $plugin['id']; - include DOCROOT.'/include/manager.php'; + include base_dir().'/include/manager.php'; echo '
'; @@ -399,7 +399,7 @@ echo '{( "name": "widgets", "id_module": "'.$id_module.'", "id_record": "'.$id_r if (!empty($record)) { echo '
- + '.tr('Indietro').' '; } @@ -477,7 +477,7 @@ if (!empty($advanced_sessions)) { ?> function getActiveUsers(){ - $.getJSON('/ajax.php?op=active_users', { + $.getJSON('/ajax.php?op=active_users', { id_module: , id_record: }, diff --git a/include/common/articolo.php b/include/common/articolo.php index 6e2c07b79..ae641803a 100755 --- a/include/common/articolo.php +++ b/include/common/articolo.php @@ -78,21 +78,21 @@ if ($module['name'] != 'Contratti' && $module['name'] != 'Preventivi') { echo '
-
-
-
diff --git a/include/common/form.php b/include/common/form.php index bdf5d2a84..1afb20a1d 100755 --- a/include/common/form.php +++ b/include/common/form.php @@ -21,7 +21,7 @@ $result['id'] = isset($result['id']) ? $result['id'] : null; // Form di inserimento riga documento echo ' -
+ diff --git a/include/common/importa.php b/include/common/importa.php index c7d1a1652..2816900d4 100755 --- a/include/common/importa.php +++ b/include/common/importa.php @@ -42,7 +42,7 @@ if (empty($righe)) { return; } -$link = !empty($documento_finale) ? ROOTDIR.'/editor.php?id_module='.$final_module['id'].'&id_record='.$documento_finale->id : ROOTDIR.'/controller.php?id_module='.$final_module['id']; +$link = !empty($documento_finale) ? base_path().'/editor.php?id_module='.$final_module['id'].'&id_record='.$documento_finale->id : base_path().'/controller.php?id_module='.$final_module['id']; echo ' diff --git a/include/init/configuration.php b/include/init/configuration.php index 094384845..2abbd4d6c 100755 --- a/include/init/configuration.php +++ b/include/init/configuration.php @@ -115,7 +115,7 @@ if (post('db_host') !== null) { // Creazione della configurazione if ($dbo->isConnected()) { - $new_config = file_get_contents(DOCROOT.'/config.example.php'); + $new_config = file_get_contents(base_dir().'/config.example.php'); $decimals = post('decimal_separator'); $thousands = post('thousand_separator'); @@ -149,14 +149,14 @@ if (post('db_host') !== null) {

'.tr('Sembra che non ci siano i permessi di scrittura sul file _FILE_', [ '_FILE_' => 'config.inc.php', ]).'

- +
;
- '.tr('Torna indietro').' + '.tr('Torna indietro').'

@@ -184,9 +184,9 @@ if (post('db_host') !== null) { "dir" : "ltr", "lang" : "it-IT", "name" : "OpenSTAManager", - "scope" : "'.ROOTDIR.'", + "scope" : "'.base_path().'", "display" : "fullscreen", - "start_url" : "'.ROOTDIR.'", + "start_url" : "'.base_path().'", "short_name" : "OSM", "theme_color" : "transparent", "description" : "OpenSTAManager", @@ -203,7 +203,7 @@ if (post('db_host') !== null) { }'; file_put_contents('manifest.json', $manifest); - redirect(ROOTDIR.'/index.php'); + redirect(base_path().'/index.php'); exit(); } } @@ -219,7 +219,7 @@ if ((file_exists('config.inc.php') || $valid_config) && !$dbo->isConnected()) {

'.tr("Si è verificato un'errore durante la connessione al database").'.

'.tr('Controllare di aver inserito correttamente i dati di accesso, e che il database atto ad ospitare i dati del gestionale sia esistente').'.

- '.tr('Riprova').' + '.tr('Riprova').'
'; } @@ -240,7 +240,7 @@ if (empty($creation) && (!file_exists('config.inc.php') || !$valid_config)) { '_FILE_' => 'config.inc.php', ]).'.

'.tr("Nel caso il problema persista, rivolgersi all'assistenza ufficiale").'.

- '.tr('Riprova').' + '.tr('Riprova').'
'; } @@ -295,7 +295,7 @@ if (empty($creation) && (!file_exists('config.inc.php') || !$valid_config)) { $("#test").prop("disabled", true); $("#install").prop("disabled", true); $(this).closest("form").ajaxSubmit({ - url: "'.$rootdir.'/index.php", + url: "'.base_path().'/index.php", data: { test: 1, }, diff --git a/include/init/init.php b/include/init/init.php index 6eb2937a8..e1226ca73 100755 --- a/include/init/init.php +++ b/include/init/init.php @@ -66,7 +66,7 @@ if (post('action') == 'init') { if (!$has_azienda) { Filter::set('post', 'op', 'add'); $id_module = Modules::get('Anagrafiche')['id']; - include DOCROOT.'/modules/anagrafiche/actions.php'; + include base_dir().'/modules/anagrafiche/actions.php'; // Logo stampe if (!empty($_FILES) && !empty($_FILES['blob']['name'])) { @@ -114,7 +114,7 @@ if (post('action') == 'init') { } } - redirect(ROOTDIR, 'js'); + redirect(base_path(), 'js'); exit(); } @@ -143,15 +143,15 @@ if (!$has_user) {
- {[ "type": "text", "label": "'.tr('Username').'", "name": "admin_username", "value": "'.$osm_password.'", "placeholder": "'.tr("Digita l'username dell'amministratore").'", "required": 1 ]} + {[ "type": "text", "label": "'.tr('Username').'", "name": "admin_username", "value": "", "placeholder": "'.tr("Digita l'username dell'amministratore").'", "required": 1 ]}
- {[ "type": "password", "label": "'.tr('Password').'", "id": "password", "name": "admin_password", "value": "'.$osm_password.'", "placeholder": "'.tr("Digita la password dell'amministratore").'", "required": 1, "strength": "#config" ]} + {[ "type": "password", "label": "'.tr('Password').'", "id": "password", "name": "admin_password", "value": "", "placeholder": "'.tr("Digita la password dell'amministratore").'", "required": 1, "strength": "#config" ]}
- {[ "type": "email", "label": "'.tr('Email').'", "name": "admin_email", "value": "'.$osm_email.'", "placeholder": "'.tr("Digita l'indirizzo email dell'amministratore").'", "required": 1 ]} + {[ "type": "email", "label": "'.tr('Email').'", "name": "admin_email", "value": "", "placeholder": "'.tr("Digita l'indirizzo email dell'amministratore").'", "required": 1 ]}
@@ -172,7 +172,7 @@ if (!$has_azienda) { $readonly_tipo = true; ob_start(); - include DOCROOT.'/modules/anagrafiche/add.php'; + include base_dir().'/modules/anagrafiche/add.php'; $anagrafica = ob_get_clean(); echo str_replace('', '', $anagrafica); @@ -258,7 +258,7 @@ echo ' $("button[type=submit]").not("#config").remove(); }); - + '; include_once App::filepath('include|custom|', 'bottom.php'); diff --git a/include/init/requirements.php b/include/init/requirements.php index 8498da7ec..b1ed7dff2 100755 --- a/include/init/requirements.php +++ b/include/init/requirements.php @@ -145,7 +145,7 @@ $dirs = [ $directories = []; foreach ($dirs as $name => $description) { - $status = is_writable($docroot.DIRECTORY_SEPARATOR.$name); + $status = is_writable(base_dir().DIRECTORY_SEPARATOR.$name); $directories[] = [ 'name' => $name, diff --git a/include/init/update.php b/include/init/update.php index 37e9ebd5e..8462feda0 100755 --- a/include/init/update.php +++ b/include/init/update.php @@ -104,7 +104,7 @@ if (filter('action') == 'do_update') { } echo ' - + '.tr('Continua').' '; } @@ -125,7 +125,7 @@ if (filter('action') == 'do_update') {

'.tr("E' attualmente in corso la procedura di aggiornamento del software, e pertanto siete pregati di attendere fino alla sua conclusione").'.

'.tr("Nel caso il problema persista, rivolgersi all'amministratore o all'assistenza ufficiale").'.

- '.tr('Riprova').' + '.tr('Riprova').'
'; @@ -202,7 +202,7 @@ if (filter('action') == 'do_update') { foreach ($updates as $update) { if ($update['sql'] && (!empty($update['done']) || is_null($update['done']))) { - $queries = readSQLFile(DOCROOT.$update['directory'].$update['filename'].'.sql', ';'); + $queries = readSQLFile(base_dir().$update['directory'].$update['filename'].'.sql', ';'); $total += count($queries); if (intval($update['done']) > 1) { diff --git a/include/manager.php b/include/manager.php index d5075fdce..038bd776b 100755 --- a/include/manager.php +++ b/include/manager.php @@ -176,7 +176,7 @@ if (!empty($type) && $type != 'menu' && $type != 'custom') { foreach ($bulk as $key => $value) { $text = is_array($value) ? $value['text'] : $value; - $data = is_array($value) ? $value['data'] : []; + $data = is_array($value['data']) ? $value['data'] : []; $extra = []; foreach ($data as $k => $v) { $extra[] = 'data-'.$k.'="'.prepareToField(\HTMLBuilder\HTMLBuilder::replace($v)).'"'; diff --git a/include/riferimenti/riferimenti.php b/include/riferimenti/riferimenti.php index 24077c153..d0150ce5d 100644 --- a/include/riferimenti/riferimenti.php +++ b/include/riferimenti/riferimenti.php @@ -48,7 +48,7 @@ echo ' '; $documenti_disponibili = collect(); -$direzione_richiesta = $source->parent->direzione == 'entrata' ? 'uscita' : 'entrata'; +$direzione_richiesta = $source->getDocument()->direzione == 'entrata' ? 'uscita' : 'entrata'; // Individuazione DDT disponibili $ddt = DDT::whereHas('stato', function ($query) { diff --git a/include/riferimenti/righe_riferimenti.php b/include/riferimenti/righe_riferimenti.php index 35cd9bd63..6ba5ea477 100644 --- a/include/riferimenti/righe_riferimenti.php +++ b/include/riferimenti/righe_riferimenti.php @@ -55,7 +55,7 @@ if (!$riferimenti->isEmpty()) { '.$riferimento->target->descrizione.'
- '.reference($riferimento->target->parent).' + '.reference($riferimento->target->getDocument()).' '; diff --git a/include/top.php b/include/top.php index 013c0ed03..6a15baa6e 100755 --- a/include/top.php +++ b/include/top.php @@ -38,9 +38,9 @@ echo ' '; -if (file_exists(DOCROOT.'/manifest.json')) { +if (file_exists(base_dir().'/manifest.json')) { echo ' - '; + '; } // CSS @@ -166,7 +166,7 @@ if (Auth::check()) { }, }; globals = { - rootdir: "'.$rootdir.'", + rootdir: "'.base_path().'", js: "'.$paths['js'].'", css: "'.$paths['css'].'", img: "'.$paths['img'].'", @@ -209,7 +209,7 @@ if (Auth::check()) { echo ' - '.tr('Scarica').' + '.tr('Scarica').'
diff --git a/modules/categorie_articoli/add.php b/modules/categorie_articoli/add.php index baa56e1ea..621ce50e7 100755 --- a/modules/categorie_articoli/add.php +++ b/modules/categorie_articoli/add.php @@ -27,7 +27,7 @@ if (isset($id_record)) { ?>

@@ -72,7 +72,7 @@ include_once __DIR__.'/../../core.php'; - +
diff --git a/modules/categorie_articoli/row-list.php b/modules/categorie_articoli/row-list.php index 3d67c8ca8..473c79e20 100755 --- a/modules/categorie_articoli/row-list.php +++ b/modules/categorie_articoli/row-list.php @@ -29,7 +29,7 @@ foreach ($subcategorie as $sub) { '.$sub['colore'].' '.$sub['nota'].' - + diff --git a/modules/categorie_documenti/src/Categoria.php b/modules/categorie_documenti/src/Categoria.php index f3e8182ee..db9c55f27 100755 --- a/modules/categorie_documenti/src/Categoria.php +++ b/modules/categorie_documenti/src/Categoria.php @@ -19,18 +19,20 @@ namespace Modules\CategorieDocumentali; -use Common\Model; +use Common\SimpleModelTrait; +use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\SoftDeletes; class Categoria extends Model { + use SimpleModelTrait; use SoftDeletes; protected $table = 'do_categorie'; public static function build($descrizione) { - $model = parent::build(); + $model = new static(); $model->descrizione = $descrizione; $model->save(); diff --git a/modules/checklists/src/Check.php b/modules/checklists/src/Check.php index 48d28b878..53468d796 100755 --- a/modules/checklists/src/Check.php +++ b/modules/checklists/src/Check.php @@ -19,7 +19,8 @@ namespace Modules\Checklists; -use Common\Model; +use Common\SimpleModelTrait; +use Illuminate\Database\Eloquent\Model; use Models\Group; use Models\Module; use Models\Plugin; @@ -29,6 +30,7 @@ use Traits\HierarchyTrait; class Check extends Model { + use SimpleModelTrait; use HierarchyTrait; protected static $parent_identifier = 'id_parent'; @@ -46,7 +48,7 @@ class Check extends Model */ public static function build(User $user, $structure, $id_record, $content, $parent_id = null) { - $model = parent::build(); + $model = new static(); $model->user()->associate($user); $model->id_parent = $parent_id; diff --git a/modules/checklists/src/Checklist.php b/modules/checklists/src/Checklist.php index 6195322d7..98522aa3d 100755 --- a/modules/checklists/src/Checklist.php +++ b/modules/checklists/src/Checklist.php @@ -19,13 +19,16 @@ namespace Modules\Checklists; -use Common\Model; +use Common\SimpleModelTrait; +use Illuminate\Database\Eloquent\Model; use Models\Module; use Models\Plugin; use Models\User; class Checklist extends Model { + use SimpleModelTrait; + protected $table = 'zz_checklists'; /** @@ -37,7 +40,7 @@ class Checklist extends Model */ public static function build($nome) { - $model = parent::build(); + $model = new static(); $model->name = $nome; $model->save(); diff --git a/modules/checklists/src/ChecklistItem.php b/modules/checklists/src/ChecklistItem.php index f7bbc910d..9089c11e4 100755 --- a/modules/checklists/src/ChecklistItem.php +++ b/modules/checklists/src/ChecklistItem.php @@ -19,11 +19,13 @@ namespace Modules\Checklists; -use Common\Model; +use Common\SimpleModelTrait; +use Illuminate\Database\Eloquent\Model; use Traits\HierarchyTrait; class ChecklistItem extends Model { + use SimpleModelTrait; use HierarchyTrait; protected static $parent_identifier = 'id_parent'; @@ -39,7 +41,7 @@ class ChecklistItem extends Model */ public static function build(Checklist $checklist, $contenuto, $id_parent = null) { - $model = parent::build(); + $model = new static(); $model->checklist()->associate($checklist); $model->id_parent = $id_parent; diff --git a/modules/contratti/actions.php b/modules/contratti/actions.php index 10a87b48a..63b4059b0 100644 --- a/modules/contratti/actions.php +++ b/modules/contratti/actions.php @@ -121,7 +121,7 @@ switch (post('op')) { $righe = $contratto->getRighe(); foreach ($righe as $riga) { $new_riga = $riga->replicate(); - $new_riga->setParent($new); + $new_riga->setDocument($new); $new_riga->qta_evasa = 0; $new_riga->save(); diff --git a/modules/contratti/edit.php b/modules/contratti/edit.php index ad4af3fdc..b54e61c18 100755 --- a/modules/contratti/edit.php +++ b/modules/contratti/edit.php @@ -237,7 +237,7 @@ if (!empty($rs)) { - @@ -289,7 +289,7 @@ if (!empty($rs)) { - diff --git a/modules/contratti/row-list.php b/modules/contratti/row-list.php index c333f3bbd..6319d51d2 100755 --- a/modules/contratti/row-list.php +++ b/modules/contratti/row-list.php @@ -51,9 +51,9 @@ foreach ($righe as $riga) { '; // Aggiunta dei riferimenti ai documenti - if ($riga->hasOriginal()) { + if ($riga->hasOriginalComponent()) { echo ' - '.reference($riga->getOriginal()->parent, tr('Origine')).''; + '.reference($riga->getOriginalComponent()->getDocument(), tr('Origine')).''; } // Descrizione diff --git a/modules/contratti/src/Components/Articolo.php b/modules/contratti/src/Components/Articolo.php index d37f1db50..35a7b28cd 100755 --- a/modules/contratti/src/Components/Articolo.php +++ b/modules/contratti/src/Components/Articolo.php @@ -20,24 +20,10 @@ namespace Modules\Contratti\Components; use Common\Components\Article; -use Modules\Articoli\Articolo as Original; -use Modules\Contratti\Contratto; class Articolo extends Article { use RelationTrait; protected $table = 'co_righe_contratti'; - - /** - * Crea un nuovo articolo collegato ad un contratto. - * - * @return self - */ - public static function build(Contratto $contratto, Original $articolo) - { - $model = parent::build($contratto, $articolo); - - return $model; - } } diff --git a/modules/contratti/src/Components/Descrizione.php b/modules/contratti/src/Components/Descrizione.php index 70da05f11..4e4614f75 100755 --- a/modules/contratti/src/Components/Descrizione.php +++ b/modules/contratti/src/Components/Descrizione.php @@ -20,23 +20,10 @@ namespace Modules\Contratti\Components; use Common\Components\Description; -use Modules\Contratti\Contratto; class Descrizione extends Description { use RelationTrait; protected $table = 'co_righe_contratti'; - - /** - * Crea una nuova riga collegata ad un contratto. - * - * @return self - */ - public static function build(Contratto $contratto) - { - $model = parent::build($contratto); - - return $model; - } } diff --git a/modules/contratti/src/Components/RelationTrait.php b/modules/contratti/src/Components/RelationTrait.php index d9f44166d..a14497eae 100755 --- a/modules/contratti/src/Components/RelationTrait.php +++ b/modules/contratti/src/Components/RelationTrait.php @@ -23,18 +23,18 @@ use Modules\Contratti\Contratto; trait RelationTrait { - public function getParentID() + public function getDocumentID() { return 'idcontratto'; } - public function parent() + public function document() { - return $this->belongsTo(Contratto::class, $this->getParentID()); + return $this->belongsTo(Contratto::class, $this->getDocumentID()); } public function contratto() { - return $this->parent(); + return $this->document(); } } diff --git a/modules/contratti/src/Components/Riga.php b/modules/contratti/src/Components/Riga.php index 9734b254d..3553883ad 100755 --- a/modules/contratti/src/Components/Riga.php +++ b/modules/contratti/src/Components/Riga.php @@ -20,23 +20,10 @@ namespace Modules\Contratti\Components; use Common\Components\Row; -use Modules\Contratti\Contratto; class Riga extends Row { use RelationTrait; protected $table = 'co_righe_contratti'; - - /** - * Crea una nuova riga collegata ad un contratto. - * - * @return self - */ - public static function build(Contratto $contratto) - { - $model = parent::build($contratto); - - return $model; - } } diff --git a/modules/contratti/src/Components/Sconto.php b/modules/contratti/src/Components/Sconto.php index a40efa1c0..3b112031e 100755 --- a/modules/contratti/src/Components/Sconto.php +++ b/modules/contratti/src/Components/Sconto.php @@ -20,23 +20,10 @@ namespace Modules\Contratti\Components; use Common\Components\Discount; -use Modules\Contratti\Contratto; class Sconto extends Discount { use RelationTrait; protected $table = 'co_righe_contratti'; - - /** - * Crea un nuovo sconto collegato ad un contratto. - * - * @return self - */ - public static function build(Contratto $contratto) - { - $model = parent::build($contratto); - - return $model; - } } diff --git a/modules/contratti/src/Contratto.php b/modules/contratti/src/Contratto.php index a6e02112c..a97d36a53 100755 --- a/modules/contratti/src/Contratto.php +++ b/modules/contratti/src/Contratto.php @@ -21,7 +21,7 @@ namespace Modules\Contratti; use Carbon\Carbon; use Carbon\CarbonInterval; -use Common\Components\Description; +use Common\Components\Component; use Common\Document; use Modules\Anagrafiche\Anagrafica; use Modules\Interventi\Intervento; @@ -63,7 +63,7 @@ class Contratto extends Document */ public static function build(Anagrafica $anagrafica, $nome) { - $model = parent::build(); + $model = new static(); $stato_documento = Stato::where('descrizione', 'Bozza')->first(); @@ -225,7 +225,7 @@ class Contratto extends Document * Effettua un controllo sui campi del documento. * Viene richiamato dalle modifiche alle righe del documento. */ - public function triggerEvasione(Description $trigger) + public function triggerEvasione(Component $trigger) { parent::triggerEvasione($trigger); diff --git a/modules/contratti/src/Stato.php b/modules/contratti/src/Stato.php index dcea1da30..8256cd693 100755 --- a/modules/contratti/src/Stato.php +++ b/modules/contratti/src/Stato.php @@ -19,10 +19,13 @@ namespace Modules\Contratti; -use Common\Model; +use Common\SimpleModelTrait; +use Illuminate\Database\Eloquent\Model; class Stato extends Model { + use SimpleModelTrait; + protected $table = 'co_staticontratti'; public function preventivi() diff --git a/modules/dashboard/actions.php b/modules/dashboard/actions.php index 99049b018..abbf88edb 100755 --- a/modules/dashboard/actions.php +++ b/modules/dashboard/actions.php @@ -74,7 +74,7 @@ switch (filter('op')) { 'title' => 'Int. '.$sessione['codice'].' '.$sessione['cliente'].'
'.tr('Tecnici').': '.$sessione['nome_tecnico'].' '.(($sessione['have_attachments']) ? '' : ''), 'start' => $sessione['orario_inizio'], 'end' => $sessione['orario_fine'], - 'url' => ROOTDIR.'/editor.php?id_module='.$modulo_interventi->id.'&id_record='.$sessione['idintervento'], + 'url' => base_path().'/editor.php?id_module='.$modulo_interventi->id.'&id_record='.$sessione['idintervento'], 'backgroundColor' => $sessione['colore'], 'textColor' => color_inverse($sessione['colore']), 'borderColor' => ($sessione['colore_tecnico'] == '#FFFFFF') ? color_darken($sessione['colore_tecnico'], 100) : $sessione['colore_tecnico'], diff --git a/modules/dashboard/edit.php b/modules/dashboard/edit.php index 9b2d54a2a..5b8f8a547 100755 --- a/modules/dashboard/edit.php +++ b/modules/dashboard/edit.php @@ -31,10 +31,11 @@ echo '