mirror of
https://github.com/OpenXE-org/OpenXE.git
synced 2024-11-14 12:07:15 +01:00
257 lines
8.3 KiB
PHP
257 lines
8.3 KiB
PHP
<?php
|
|
/*
|
|
**** COPYRIGHT & LICENSE NOTICE *** DO NOT REMOVE ****
|
|
*
|
|
* Xentral (c) Xentral ERP Sorftware GmbH, Fuggerstrasse 11, D-86150 Augsburg, * Germany 2019
|
|
*
|
|
* This file is licensed under the Embedded Projects General Public License *Version 3.1.
|
|
*
|
|
* You should have received a copy of this license from your vendor and/or *along with this file; If not, please visit www.wawision.de/Lizenzhinweis
|
|
* to obtain the text of the corresponding license version.
|
|
*
|
|
**** END OF COPYRIGHT & LICENSE NOTICE *** DO NOT REMOVE ****
|
|
*/
|
|
?>
|
|
<?php
|
|
|
|
use Xentral\Components\Http\JsonResponse;
|
|
use Xentral\Components\Http\RedirectResponse;
|
|
|
|
function WithGUI($first = false)
|
|
{
|
|
if (defined('API_REQUEST') && (bool)API_REQUEST === true) {
|
|
return false;
|
|
}
|
|
if(isset($_GET['withgui']) && $_GET['withgui']){
|
|
return true;
|
|
}
|
|
$module = isset($_GET['module'])?$_GET['module']:'';
|
|
$action = isset($_GET['action'])?$_GET['action']:'';
|
|
if($action === 'editable') {
|
|
return false;
|
|
}
|
|
if(!$first && isset($_SERVER['HTTP_X_REQUESTED_WITH']) && ($_SERVER['HTTP_X_REQUESTED_WITH'] === 'XMLHttpRequest'))
|
|
{
|
|
if($action === 'positionen' || strpos($action,'minidetail') === 0){
|
|
return true;
|
|
}
|
|
if($module === 'adresse'){
|
|
return true;
|
|
}
|
|
if($action === 'verkauf'){
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
return !($module==='ajax' || $module==='api'
|
|
|| ($module==='welcome' && $action==='css')
|
|
|| ($module==='report' && $action==='export')
|
|
|| ($module==='welcome' && $action==='cronjob')
|
|
|| ($module==='welcome' && $action==='adapterbox')
|
|
|| ($module==='welcome' && $action==='logo')
|
|
|| ($module==='artikel' && $action==='ajaxwerte')
|
|
|| ($module==='artikel' && $action==='thumbnail')
|
|
|| ($module==='wiki' && $action==='getfile')
|
|
|| ($module==='benutzer' && $action==='chrights')
|
|
|| ($module==='callcenter' && $action==='call')
|
|
|| ($module==='waage' && $action==='gewicht')
|
|
|| ($module==='welcome' && $action==='poll')
|
|
|| ($module==='artikel' && $action==='thumbnail')
|
|
);
|
|
}
|
|
|
|
//include ('phpwf/engine/class.engine.php';
|
|
if(WithGUI())
|
|
{
|
|
include dirname(__DIR__).'/phpwf/plugins/class.formhandler.php';
|
|
include dirname(__DIR__).'/phpwf/plugins/class.pagebuilder.php';
|
|
include dirname(__DIR__).'/phpwf/plugins/class.widgetapi.php';
|
|
include dirname(__DIR__).'/phpwf/widgets/easytable.php';
|
|
include dirname(__DIR__).'/phpwf/widgets/grouptable.php';
|
|
include dirname(__DIR__).'/phpwf/widgets/childtable.php';
|
|
include dirname(__DIR__).'/phpwf/widgets/table.php';
|
|
include dirname(__DIR__).'/phpwf/plugins/class.picosafelogin.php';
|
|
include dirname(__DIR__).'/phpwf/plugins/class.wawision_otp.php';
|
|
include dirname(__DIR__).'/phpwf/htmltags/all.php';
|
|
include dirname(__DIR__).'/phpwf/types/class.simplelist.php';
|
|
include dirname(__DIR__).'/phpwf/plugins/class.modulescriptcache.php';
|
|
}
|
|
|
|
include dirname(__DIR__).'/phpwf/plugins/class.templateparser.php';
|
|
//include dirname(__DIR__).'/phpwf/plugins/class.yui.php';
|
|
|
|
include dirname(__DIR__).'/phpwf/plugins/class.acl.php';
|
|
include dirname(__DIR__).'/phpwf/plugins/class.user.php';
|
|
include dirname(__DIR__).'/phpwf/plugins/class.page.php';
|
|
include dirname(__DIR__).'/phpwf/plugins/class.phpwfapi.php';
|
|
include dirname(__DIR__).'/phpwf/plugins/class.secure.php';
|
|
//if(is_file(__DIR__.'/www/lib/class.location.php'))@include (dirname(__DIR__).'/www/lib/class.location.php';
|
|
include dirname(__DIR__).'/phpwf/plugins/class.wfmonitor.php';
|
|
include dirname(__DIR__).'/phpwf/plugins/class.string.php';
|
|
include dirname(__DIR__).'/phpwf/plugins/class.objectapi.php';
|
|
|
|
/**
|
|
* @property Config $Conf
|
|
* @property Secure $Secure
|
|
* @property TemplateParser $Tpl
|
|
* @property FormHandler $FormHandler
|
|
* @property Table $Table
|
|
* @property WidgetAPI $Widget
|
|
* @property PageBuilder $PageBuilder
|
|
* @property Page $Page
|
|
* @property ObjectAPI $ObjAPI
|
|
* @property WFMonitor $WFM
|
|
* @property ModuleScriptCache $ModuleScriptCache
|
|
* @property YUI $YUI
|
|
* @property User $User
|
|
* @property Acl $acl
|
|
* @property phpWFAPI $WF
|
|
* @property WawiString $String
|
|
* @property DB $DB
|
|
*/
|
|
class Application extends ApplicationCore
|
|
{
|
|
|
|
public $ActionHandlerList;
|
|
public $ActionHandlerDefault;
|
|
public $http;
|
|
public $caller;
|
|
public $BuildNavigation;
|
|
public $PopupJS;
|
|
public $NoHooks;
|
|
|
|
public function __construct($config,$group='')
|
|
{
|
|
parent::__construct($config,$group);
|
|
|
|
/*if(!isset($_GET['module']) || $_GET['module'] != 'api') {
|
|
if(!(isset($_GET['module']) && isset($_GET['action']) && isset($_GET['cmd']) && $_GET['module'] == 'welcome' && (($_GET['action'] == 'login' && $_GET['cmd'] == 'checkrfid') || $_GET['action'] == 'cronjob' || $_GET['action'] == 'adapterbox'))) {
|
|
// @session_cache_limiter('private');
|
|
//@session_start();
|
|
}
|
|
}*/
|
|
|
|
$this->Conf= $config;
|
|
|
|
//include dirname(__DIR__).'/phpwf/plugins/class.mysql.php';
|
|
|
|
if(!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS']==='on'){
|
|
$this->http = 'https';
|
|
}
|
|
else{
|
|
$this->http = 'http';
|
|
}
|
|
|
|
//$this->Secure = new Secure($this); // empty $_GET, and $_POST so you
|
|
// have to need the secure layer always
|
|
|
|
|
|
if(WithGUI()){
|
|
$this->Tpl = new TemplateParser($this);
|
|
$this->FormHandler = new FormHandler($this);
|
|
$this->Table = new Table($this);
|
|
$this->Widget = new WidgetAPI($this);
|
|
$this->PageBuilder = new PageBuilder($this);
|
|
$this->Page = new Page($this);
|
|
$this->ObjAPI = new ObjectAPI($this);
|
|
$this->WFM = new WFMonitor($this);
|
|
$this->ModuleScriptCache = new ModuleScriptCache();
|
|
}
|
|
|
|
//$this->YUI = new YUI($this);
|
|
//$this->User = new User($this);
|
|
//$this->acl = new Acl($this);
|
|
//$this->WF = new phpWFAPI($this);
|
|
//$this->String = new WawiString();
|
|
|
|
$this->BuildNavigation = true;
|
|
$this->PopupJS = false;
|
|
|
|
//$this->DB = new DB($this->Conf->WFdbhost,$this->Conf->WFdbname,$this->Conf->WFdbuser,$this->Conf->WFdbpass,$this);
|
|
|
|
if(WithGUI()){
|
|
$this->Tpl->ReadTemplatesFromPath(__DIR__ . '/widgets/templates/');
|
|
$this->Tpl->Set('LAYOUTFIXMARKERCLASS', 'layoutfix');
|
|
}
|
|
}
|
|
|
|
public function __destruct()
|
|
{
|
|
//$this->DB->Close();
|
|
}
|
|
|
|
public function ActionHandlerInit($caller)
|
|
{
|
|
$this->caller = $caller;
|
|
}
|
|
|
|
public function ActionHandler($command,$function)
|
|
{
|
|
$this->ActionHandlerList[$command]=$function;
|
|
}
|
|
|
|
public function DefaultActionHandler($command)
|
|
{
|
|
$this->ActionHandlerDefault=$command;
|
|
}
|
|
|
|
public function ActionHandlerListen($app)
|
|
{
|
|
$fkt = '';
|
|
$action = $app->Secure->GetGET('action');
|
|
$module = $app->Secure->GetGET('module');
|
|
if(!empty($this->ActionHandlerList)) {
|
|
$app->erp->addActionHandler($module, $this->ActionHandlerList);
|
|
}
|
|
if(!empty($action))
|
|
{
|
|
if(!empty($this->ActionHandlerList[$action]))
|
|
{
|
|
$fkt = $this->ActionHandlerList[$action];
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if(empty($this->ActionHandlerDefault) && isset($this->ActionHandlerList['list']))
|
|
{
|
|
if(empty($action))
|
|
{
|
|
$app->Secure->GET['action'] = 'list';
|
|
}
|
|
$this->ActionHandlerDefault = 'list';
|
|
}
|
|
if(!empty($this->ActionHandlerDefault))
|
|
{
|
|
$fkt = $this->ActionHandlerList[$this->ActionHandlerDefault];
|
|
}
|
|
}
|
|
|
|
if(!empty($fkt)){
|
|
$callhooks = empty($this->NoHooks) || !in_array($action,$this->NoHooks);
|
|
if($callhooks){
|
|
$app->erp->RunHook($module . '_' . $action . '_before');
|
|
}
|
|
$response = @$this->caller->$fkt();
|
|
if($callhooks){
|
|
$app->erp->RunHook($module . '_' . $action . '_after');
|
|
}
|
|
|
|
if($response instanceof JsonResponse) {
|
|
$response->send();
|
|
$this->ExitXentral();
|
|
}
|
|
if($response instanceof RedirectResponse) {
|
|
$response->send();
|
|
$this->ExitXentral();
|
|
}
|
|
}
|
|
}
|
|
|
|
public function DisableLayoutFix()
|
|
{
|
|
if(WithGUI()){
|
|
$this->Tpl->Set('LAYOUTFIXMARKERCLASS', '');
|
|
}
|
|
}
|
|
}
|