1
0
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:
Thomas Zilio
2018-02-14 11:10:03 +01:00
parent a6844f502b
commit fdad40cb2b
14 changed files with 375 additions and 384 deletions

115
core.php
View File

@ -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();