If not created Logger class will be auto created in \DB\IO Recommended to run a CoreLibs\Debug\Logging([...]); and use this class for all ACL\Login, Admin\Backend, DB\IO, Output\Form\Generate calls. Last parameter after DB CONFIG is the log parameter Session create has been moved to a new Create\Session class from the \Basic class and MUST be started before using ACL\Login. Currently ACL\Login will fallback and start it if no session is yet started. See the Readme.md file for which classes use _SESSION data In future the _SESSION settings should be moved to some wrapper class for this so we can unit test sessions Only Output\Form\Generate class call has the new changed with the second parameter no longer beeing the table width setting but the class setting. But as this is a semi retired class and only used for edit_base this is not 100% breaking. All other classes can be used as is and have internal fallback to run as before. Deprecation messages will be added later.
106 lines
3.1 KiB
PHP
106 lines
3.1 KiB
PHP
<?php
|
|
|
|
/********************************************************************
|
|
* AUTHOR: Clemens Schwaighofer
|
|
* CREATED: 2008/08/01
|
|
* SHORT DESCRIPTION:
|
|
* URL redirect header
|
|
* HISTORY:
|
|
*********************************************************************/
|
|
|
|
declare(strict_types=1);
|
|
|
|
//------------------------------ variable init start
|
|
// for dev test we set full error reporting; writes everything, except E_ERROR into logs/php_error-<day>.log
|
|
if (!empty($DEBUG_ALL) && !empty($ENABLE_ERROR_HANDLING)) {
|
|
include BASE . LIBS . "Error.Handling.php";
|
|
}
|
|
//------------------------------ variable init end
|
|
|
|
//------------------------------ library include start
|
|
// set output to quiet for load of classes & session settings
|
|
ob_start();
|
|
// set the session name
|
|
$SET_SESSION_NAME = EDIT_SESSION_NAME;
|
|
$LOG_FILE_ID = BASE_NAME . 'Admin';
|
|
//------------------------------ library include end
|
|
|
|
//------------------------------ basic variable settings start
|
|
if (!isset($AJAX_PAGE)) {
|
|
$AJAX_PAGE = false;
|
|
}
|
|
if (!isset($ZIP_STREAM)) {
|
|
$ZIP_STREAM = false;
|
|
}
|
|
// set encoding
|
|
if (!isset($ENCODING) || !$ENCODING) {
|
|
$ENCODING = DEFAULT_ENCODING;
|
|
}
|
|
// end the stop of the output flow, but only if we didn't request a csv file download
|
|
if (isset($_POST['action']) && $_POST['action'] != 'download_csv' && !$AJAX_PAGE) {
|
|
header("Content-type: text/html; charset=" . $ENCODING);
|
|
}
|
|
if ($AJAX_PAGE && !$ZIP_STREAM) {
|
|
header("Content-Type: application/json; charset=UTF-8");
|
|
}
|
|
//------------------------------ basic variable settings start
|
|
|
|
//------------------------------ class init start
|
|
// create logger
|
|
$log = new CoreLibs\Debug\Logging([
|
|
'log_folder' => BASE . LOG,
|
|
'file_id' => LOG_FILE_ID,
|
|
'print_file_date' => true,
|
|
'per_class' => true,
|
|
'debug_all' => $DEBUG_ALL,
|
|
'echo_all' => $ECHO_ALL,
|
|
'print_all' => $PRINT_ALL,
|
|
]);
|
|
// automatic hide for DEBUG messages on live server
|
|
// can be overridden when setting DEBUG_ALL_OVERRIDE on top of the script
|
|
// (for emergency debugging of one page only)
|
|
if ((TARGET == 'live' || TARGET == 'remote') && !empty($DEBUG_ALL_OVERRIDE)) {
|
|
foreach (['debug', 'echo', 'print'] as $target) {
|
|
$log->setLogLevelAll($target, false);
|
|
}
|
|
}
|
|
// start session
|
|
CoreLibs\Create\Session::startSession();
|
|
// login & page access check
|
|
$login = new CoreLibs\ACL\Login(DB_CONFIG, $log);
|
|
// create smarty object
|
|
$smarty = new CoreLibs\Template\SmartyExtend();
|
|
// create new DB class
|
|
$log->setLogPer('class', false);
|
|
$cms = new CoreLibs\Admin\Backend(DB_CONFIG, $log);
|
|
// the menu show flag (what menu to show)
|
|
$cms->menu_show_flag = 'main';
|
|
// db nfo
|
|
$cms->dbInfo();
|
|
// set acl
|
|
$cms->setACL($login->acl);
|
|
// flush
|
|
ob_end_flush();
|
|
//------------------------------ class init end
|
|
|
|
//------------------------------ logging start
|
|
// log backend data
|
|
// data part creation
|
|
$data = [
|
|
'_SESSION' => $_SESSION,
|
|
'_GET' => $_GET,
|
|
'_POST' => $_POST,
|
|
'_FILES' => $_FILES
|
|
];
|
|
// log action
|
|
// no log if login
|
|
if (!$login->login) {
|
|
$cms->adbEditLog('Submit', $data, 'BINARY');
|
|
}
|
|
//------------------------------ logging end
|
|
|
|
// pass on DEBUG flag to JS via smarty variable
|
|
$smarty->DATA['JS_DEBUG'] = DEBUG;
|
|
|
|
// __END__
|