mirror of
https://github.com/devcode-it/openstamanager.git
synced 2025-06-05 22:09:38 +02:00
Generalizzazione di varie sezioni
Generalizzazione della gestione delle query di Moduli e Plugin. Miglioramento della gestione degli assets (ora gestiti dalla classe App e personalizzabili nella configurazione). Miglioramento del nome della gestione di alcune variabili, con relativa individuazione (classe App). Rimozione codice deprecato nel core.
This commit is contained in:
115
core.php
115
core.php
@ -12,24 +12,16 @@ if (file_exists(__DIR__.'/config.inc.php')) {
|
||||
include_once __DIR__.'/config.inc.php';
|
||||
}
|
||||
|
||||
// Individuazione dei percorsi di base
|
||||
$docroot = __DIR__;
|
||||
$rootdir = substr($_SERVER['SCRIPT_NAME'], 0, strrpos($_SERVER['SCRIPT_NAME'], '/')).'/';
|
||||
if (strrpos($rootdir, '/'.basename($docroot).'/') !== false) {
|
||||
$rootdir = substr($rootdir, 0, strrpos($rootdir, '/'.basename($docroot).'/')).'/'.basename($docroot);
|
||||
} else {
|
||||
$rootdir = '/';
|
||||
}
|
||||
$rootdir = rtrim($rootdir, '/');
|
||||
$rootdir = str_replace('%2F', '/', rawurlencode($rootdir));
|
||||
|
||||
// Aggiunta delle variabili globali
|
||||
define('DOCROOT', $docroot);
|
||||
define('ROOTDIR', $rootdir);
|
||||
|
||||
// Caricamento delle dipendenze e delle librerie del progetto
|
||||
require_once __DIR__.'/vendor/autoload.php';
|
||||
|
||||
// Individuazione dei percorsi di base
|
||||
App::definePaths(__DIR__);
|
||||
|
||||
$docroot = DOCROOT;
|
||||
$rootdir = ROOTDIR;
|
||||
$baseurl = BASEURL;
|
||||
|
||||
// Redirect al percorso HTTPS se impostato nella configurazione
|
||||
if (!empty($redirectHTTPS) && !isHTTPS(true)) {
|
||||
header('HTTP/1.1 301 Moved Permanently');
|
||||
@ -37,10 +29,6 @@ if (!empty($redirectHTTPS) && !isHTTPS(true)) {
|
||||
exit();
|
||||
}
|
||||
|
||||
// Individuazione del percorso BASEURL
|
||||
$baseurl = (isHTTPS(true) ? 'https' : 'http').'://'.$_SERVER['SERVER_NAME'].$rootdir;
|
||||
define('BASEURL', $baseurl);
|
||||
|
||||
// Forzamento del debug
|
||||
// $debug = true;
|
||||
|
||||
@ -59,11 +47,11 @@ use Monolog\Handler\RotatingFileHandler;
|
||||
$handlers = [];
|
||||
if (!API::isAPIRequest()) {
|
||||
// File di log di base (logs/error.log)
|
||||
$handlers[] = new StreamHandler(__DIR__.'/logs/error.log', Monolog\Logger::ERROR);
|
||||
$handlers[] = new StreamHandler(__DIR__.'/logs/setup.log', Monolog\Logger::EMERGENCY);
|
||||
$handlers[] = new StreamHandler($docroot.'/logs/error.log', Monolog\Logger::ERROR);
|
||||
$handlers[] = new StreamHandler($docroot.'/logs/setup.log', Monolog\Logger::EMERGENCY);
|
||||
|
||||
// Impostazione dei log estesi (per monitorare in modo completo le azioni degli utenti)
|
||||
$handlers[] = new StreamHandler(__DIR__.'/logs/info.log', Monolog\Logger::INFO);
|
||||
$handlers[] = new StreamHandler($docroot.'/logs/info.log', Monolog\Logger::INFO);
|
||||
|
||||
// Impostazioni di debug
|
||||
if (!empty($debug)) {
|
||||
@ -71,26 +59,24 @@ if (!API::isAPIRequest()) {
|
||||
error_reporting(E_ALL & ~E_WARNING & ~E_NOTICE & ~E_USER_DEPRECATED);
|
||||
|
||||
// File di log ordinato in base alla data
|
||||
$handlers[] = new RotatingFileHandler(__DIR__.'/logs/error.log', 0, Monolog\Logger::ERROR);
|
||||
$handlers[] = new RotatingFileHandler(__DIR__.'/logs/setup.log', 0, Monolog\Logger::EMERGENCY);
|
||||
$handlers[] = new RotatingFileHandler($docroot.'/logs/error.log', 0, Monolog\Logger::ERROR);
|
||||
$handlers[] = new RotatingFileHandler($docroot.'/logs/setup.log', 0, Monolog\Logger::EMERGENCY);
|
||||
|
||||
if (version_compare(PHP_VERSION, '5.5.9') >= 0) {
|
||||
$prettyPageHandler = new Whoops\Handler\PrettyPageHandler();
|
||||
$prettyPageHandler = new Whoops\Handler\PrettyPageHandler();
|
||||
|
||||
// Imposta Whoops come gestore delle eccezioni di default
|
||||
$whoops = new Whoops\Run();
|
||||
$whoops->pushHandler($prettyPageHandler);
|
||||
// Imposta Whoops come gestore delle eccezioni di default
|
||||
$whoops = new Whoops\Run();
|
||||
$whoops->pushHandler($prettyPageHandler);
|
||||
|
||||
// Abilita la gestione degli errori nel caso la richiesta sia di tipo AJAX
|
||||
if (Whoops\Util\Misc::isAjaxRequest()) {
|
||||
$whoops->pushHandler(new Whoops\Handler\JsonResponseHandler());
|
||||
}
|
||||
|
||||
$whoops->register();
|
||||
// Abilita la gestione degli errori nel caso la richiesta sia di tipo AJAX
|
||||
if (Whoops\Util\Misc::isAjaxRequest()) {
|
||||
$whoops->pushHandler(new Whoops\Handler\JsonResponseHandler());
|
||||
}
|
||||
|
||||
$whoops->register();
|
||||
}
|
||||
} else {
|
||||
$handlers[] = new StreamHandler(__DIR__.'/logs/api.log', Monolog\Logger::ERROR);
|
||||
$handlers[] = new StreamHandler($docroot.'/logs/api.log', Monolog\Logger::ERROR);
|
||||
}
|
||||
|
||||
// Disabilita la segnalazione degli errori (se il debug è disabilitato)
|
||||
@ -183,36 +169,13 @@ if (!API::isAPIRequest()) {
|
||||
// Impostazione del tema grafico di default
|
||||
$theme = !empty($theme) ? $theme : 'default';
|
||||
|
||||
$assets = $rootdir.'/assets/dist';
|
||||
$css = $assets.'/css';
|
||||
$js = $assets.'/js';
|
||||
$img = $assets.'/img';
|
||||
$assets = App::getAssets();
|
||||
|
||||
// CSS di base del progetto
|
||||
$css_modules = [];
|
||||
|
||||
$css_modules[] = $css.'/app.min.css';
|
||||
$css_modules[] = $css.'/style.min.css';
|
||||
$css_modules[] = $css.'/themes.min.css';
|
||||
$css_modules[] = [
|
||||
'href' => $css.'/print.min.css',
|
||||
'media' => 'print',
|
||||
];
|
||||
$css_modules = $assets['css'];
|
||||
|
||||
// JS di base del progetto
|
||||
$jscript_modules = [];
|
||||
|
||||
$jscript_modules[] = $js.'/app.min.js';
|
||||
$jscript_modules[] = $js.'/custom.min.js';
|
||||
$jscript_modules[] = $js.'/i18n/parsleyjs/'.$lang.'.min.js';
|
||||
$jscript_modules[] = $js.'/i18n/select2/'.$lang.'.min.js';
|
||||
$jscript_modules[] = $js.'/i18n/moment/'.$lang.'.min.js';
|
||||
$jscript_modules[] = $js.'/i18n/fullcalendar/'.$lang.'.min.js';
|
||||
|
||||
if (Auth::check()) {
|
||||
$jscript_modules[] = $rootdir.'/lib/functions.js';
|
||||
$jscript_modules[] = $rootdir.'/lib/init.js';
|
||||
}
|
||||
$jscript_modules = $assets['js'];
|
||||
|
||||
if ($continue) {
|
||||
// Istanziamento della barra di debug
|
||||
@ -249,36 +212,8 @@ if (!API::isAPIRequest()) {
|
||||
}
|
||||
|
||||
Permissions::check();
|
||||
|
||||
// Retrocompatibilità
|
||||
$user_idanagrafica = $user['idanagrafica'];
|
||||
|
||||
$rs = $dbo->fetchArray('SELECT * FROM `zz_modules` LEFT JOIN (SELECT `idmodule`, `permessi` FROM `zz_permissions` WHERE `idgruppo`=(SELECT `idgruppo` FROM `zz_users` WHERE `id`='.prepare($_SESSION['id_utente']).')) AS `zz_permissions` ON `zz_modules`.`id`=`zz_permissions`.`idmodule` LEFT JOIN (SELECT `idmodule`, `clause` FROM `zz_group_module` WHERE `idgruppo`=(SELECT `idgruppo` FROM `zz_users` WHERE `id`='.prepare($_SESSION['id_utente']).')) AS `zz_group_module` ON `zz_modules`.`id`=`zz_group_module`.`idmodule`');
|
||||
|
||||
$modules_info = [];
|
||||
for ($i = 0; $i < count($rs); ++$i) {
|
||||
foreach ($rs[$i] as $name => $value) {
|
||||
if ($name == 'permessi' && (Auth::admin() || $value == null)) {
|
||||
if (Auth::admin()) {
|
||||
$value = 'rw';
|
||||
} else {
|
||||
$value = '-';
|
||||
}
|
||||
}
|
||||
if ($name != 'idmodule' && $name != 'updated_at' && $name != 'created_at' && $name != 'clause') {
|
||||
$modules_info[$rs[$i]['name']][$name] = $value;
|
||||
} elseif ($name == 'clause') {
|
||||
$additional_where[$rs[$i]['name']] = !empty($value) ? ' AND '.$value : $value;
|
||||
}
|
||||
}
|
||||
|
||||
$modules_info[$rs[$i]['id']]['name'] = $rs[$i]['name'];
|
||||
}
|
||||
}
|
||||
|
||||
// Istanziamento di HTMLHelper (retrocompatibilità)
|
||||
$html = new HTMLHelper();
|
||||
|
||||
// Variabili GET e POST
|
||||
$post = Filter::getPOST();
|
||||
$get = Filter::getGET();
|
||||
|
Reference in New Issue
Block a user