diff --git a/workflow/engine/bin/cron.php b/workflow/engine/bin/cron.php index 2b16baba5..b4556c3e6 100755 --- a/workflow/engine/bin/cron.php +++ b/workflow/engine/bin/cron.php @@ -1,177 +1,229 @@ ['title' => 'CRON'], + 'ldapcron' => ['title' => 'LDAP Advanced CRON'], + 'messageeventcron' => ['title' => 'Message-Event CRON'], + 'timereventcron' => ['title' => 'Timer-Event CRON'] + ]; -$docuroot = explode(PATH_SEP, str_replace('engine' . PATH_SEP . 'methods' . PATH_SEP . 'services', '', dirname(__FILE__))); -array_pop($docuroot); -array_pop($docuroot); -$pathhome = implode(PATH_SEP, $docuroot) . PATH_SEP; -//try to find automatically the trunk directory where are placed the RBAC and Gulliver directories -//in a normal installation you don't need to change it. -array_pop($docuroot); -$pathTrunk = implode(PATH_SEP, $docuroot) . PATH_SEP ; -array_pop($docuroot); -$pathOutTrunk = implode( PATH_SEP, $docuroot) . PATH_SEP ; -// to do: check previous algorith for Windows $pathTrunk = "c:/home/"; -define('PATH_HOME', $pathhome); -define('PATH_TRUNK', $pathTrunk); -define('PATH_OUTTRUNK', $pathOutTrunk); + //Define constants + define('PATH_SEP', ($osIsLinux)? '/' : '\\'); -require_once PATH_TRUNK . "framework/src/Maveriks/Util/ClassLoader.php"; -require_once (PATH_HOME . 'engine' . PATH_SEP . 'config' . PATH_SEP . 'paths.php'); -require_once PATH_CORE . 'classes' . PATH_SEP . 'class.system.php'; + $arrayPathToCron = []; + $flagPathToCron = false; -$config = System::getSystemConfiguration(); + //Path to CRON by $_SERVER['SCRIPT_FILENAME'] + $arrayAux = explode(PATH_SEP, str_replace('engine' . PATH_SEP . 'bin', '', realpath($_SERVER['SCRIPT_FILENAME']))); -$e_all = defined('E_DEPRECATED') ? E_ALL & ~E_DEPRECATED : E_ALL; -$e_all = defined('E_STRICT') ? $e_all & ~E_STRICT : $e_all; -$e_all = $config['debug'] ? $e_all : $e_all & ~E_NOTICE; + array_pop($arrayAux); + array_pop($arrayAux); -G::LoadSystem('inputfilter'); -$filter = new InputFilter(); -$config['debug'] = $filter->validateInput($config['debug']); -$config['memory_limit'] = $filter->validateInput($config['memory_limit']); -$config['wsdl_cache'] = $filter->validateInput($config['wsdl_cache'],'int'); -$config['time_zone'] = $filter->validateInput($config['time_zone']); -// Do not change any of these settings directly, use env.ini instead -ini_set('display_errors', $config['debug']); -ini_set('error_reporting', $e_all); -ini_set('short_open_tag', 'On'); -ini_set('default_charset', "UTF-8"); -ini_set('memory_limit', $config['memory_limit']); -ini_set('soap.wsdl_cache_enabled', $config['wsdl_cache']); -ini_set('date.timezone', $config['time_zone']); - -define ('DEBUG_SQL_LOG', $config['debug_sql']); -define ('DEBUG_TIME_LOG', $config['debug_time']); -define ('DEBUG_CALENDAR_LOG', $config['debug_calendar']); -define ('MEMCACHED_ENABLED', $config['memcached']); -define ('MEMCACHED_SERVER', $config['memcached_server']); -define ('TIME_ZONE', $config['time_zone']); - -//Cron status -$bCronIsRunning = false; -$sLastExecution = null; -$processcTimeProcess = 0; -$processcTimeStart = 0; - -$force = false; -$osIsLinux = strtoupper(substr(PHP_OS, 0, 3)) != "WIN"; - -for ($i = 1; $i <= count($argv) - 1; $i++) { - if (strpos($argv[$i], "+force") !== false) { - $force = true; - unset($argv[$i]); - break; + if (!empty($arrayAux) && $arrayAux[count($arrayAux) - 1] == 'workflow') { + $arrayPathToCron = $arrayAux; + $flagPathToCron = true; } -} -if (!$force && file_exists(PATH_DATA . "cron")) { - //Windows flag - //Get data of cron file - $arrayCron = unserialize(trim(file_get_contents(PATH_DATA . "cron"))); - - $bCronIsRunning = (boolean)($arrayCron["bCronIsRunning"]); - $sLastExecution = $arrayCron["sLastExecution"]; - $processcTimeProcess = (isset($arrayCron["processcTimeProcess"]))? (int)($arrayCron["processcTimeProcess"]) : 10; //Minutes - $processcTimeStart = (isset($arrayCron["processcTimeStart"]))? $arrayCron["processcTimeStart"] : 0; -} - -if (!$force && $osIsLinux) { - //Linux flag - //Check if cron it's running - exec("ps -fea | grep cron.php | grep -v grep", $arrayOutput); - - if (count($arrayOutput) > 1) { - $bCronIsRunning = true; + if (!$flagPathToCron) { + throw new Exception('Error: Unable to execute the ' . $arrayCronConfig[$cronName]['title'] . ', the path is incorrect'); } -} -//if (!$force && $bCronIsRunning && $processcTimeStart != 0) { -// if ((time() - $processcTimeStart) > ($processcTimeProcess * 60)) { -// //Cron finished his execution for some reason -// $bCronIsRunning = false; -// } -//} + $pathHome = implode(PATH_SEP, $arrayPathToCron) . PATH_SEP; -if ($force || !$bCronIsRunning) { - //Start cron - $arrayCron = array("bCronIsRunning" => "1", "sLastExecution" => date("Y-m-d H:i:s")); - @file_put_contents(PATH_DATA . "cron", serialize($arrayCron)); + array_pop($arrayPathToCron); - try { - //Data - $ws = null; - $argsx = null; - $sDate = null; - $dateSystem = date("Y-m-d H:i:s"); + $pathTrunk = implode(PATH_SEP, $arrayPathToCron) . PATH_SEP; - for ($i = 1; $i <= count($argv) - 1; $i++) { - if (!isset($argv[$i])) { - continue; - } + array_pop($arrayPathToCron); - if (strpos($argv[$i], "+d") !== false) { - $sDate = substr($argv[$i],2); - } else { - if (strpos($argv[$i], "+w") !== false) { - $ws = substr($argv[$i], 2); - } else { - $argsx = $argsx . " " . $argv[$i]; + $pathOutTrunk = implode(PATH_SEP, $arrayPathToCron) . PATH_SEP; + + define('PATH_HOME', $pathHome); + define('PATH_TRUNK', $pathTrunk); + define('PATH_OUTTRUNK', $pathOutTrunk); + + //Check deprecated files + switch ($cronName) { + case 'ldapcron': + $fileBinDeprecated = PATH_HOME . 'engine' . PATH_SEP . 'bin' . PATH_SEP . 'plugins' . PATH_SEP . 'ldapadvanced.php'; + + if (file_exists($fileBinDeprecated)) { + @unlink($fileBinDeprecated); + + if (file_exists($fileBinDeprecated)) { + throw new Exception('Error: ' . $arrayCronConfig[$cronName]['title'] . ' requires that the "' . $fileBinDeprecated . '" file has been deleted.'); } } + break; + } + + //Include files + require_once(PATH_HOME . 'engine' . PATH_SEP . 'config' . PATH_SEP . 'paths.php'); + require_once(PATH_TRUNK . 'framework' . PATH_SEP . 'src' . PATH_SEP . 'Maveriks' . PATH_SEP . 'Util' . PATH_SEP . 'ClassLoader.php'); + + //Class Loader - /ProcessMaker/BusinessModel + $classLoader = \Maveriks\Util\ClassLoader::getInstance(); + $classLoader->add(PATH_TRUNK . 'framework' . PATH_SEP . 'src' . PATH_SEP, 'Maveriks'); + $classLoader->add(PATH_TRUNK . 'workflow' . PATH_SEP . 'engine' . PATH_SEP . 'src' . PATH_SEP, 'ProcessMaker'); + $classLoader->add(PATH_TRUNK . 'workflow' . PATH_SEP . 'engine' . PATH_SEP . 'src' . PATH_SEP); + + //Load classes + G::LoadClass('system'); + + $arraySystemConfiguration = System::getSystemConfiguration(); + + $e_all = (defined('E_DEPRECATED'))? E_ALL & ~E_DEPRECATED : E_ALL; + $e_all = (defined('E_STRICT'))? $e_all & ~E_STRICT : $e_all; + $e_all = ($arraySystemConfiguration['debug'])? $e_all : $e_all & ~E_NOTICE; + + //Do not change any of these settings directly, use env.ini instead + ini_set('display_errors', $arraySystemConfiguration['debug']); + ini_set('error_reporting', $e_all); + ini_set('short_open_tag', 'On'); + ini_set('default_charset', 'UTF-8'); + ini_set('memory_limit', $arraySystemConfiguration['memory_limit']); + ini_set('soap.wsdl_cache_enabled', $arraySystemConfiguration['wsdl_cache']); + ini_set('date.timezone', $arraySystemConfiguration['time_zone']); + + define('DEBUG_SQL_LOG', $arraySystemConfiguration['debug_sql']); + define('DEBUG_TIME_LOG', $arraySystemConfiguration['debug_time']); + define('DEBUG_CALENDAR_LOG', $arraySystemConfiguration['debug_calendar']); + define('MEMCACHED_ENABLED', $arraySystemConfiguration['memcached']); + define('MEMCACHED_SERVER', $arraySystemConfiguration['memcached_server']); + define('TIME_ZONE', ini_get('date.timezone')); + + //CRON command options + $arrayCommandOption = [ + 'force' => '+force' + ]; + + //CRON status + $flagIsRunning = false; + $lastExecution = ''; + + $force = false; + + if (in_array($arrayCommandOption['force'], $argv)) { + unset($argv[array_search($arrayCommandOption['force'], $argv)]); + + $force = true; + } + + if (!$force && file_exists(PATH_DATA . $cronName)) { + //Windows flag + //Get data of CRON file + $arrayCron = unserialize(trim(file_get_contents(PATH_DATA . $cronName))); + + $flagIsRunning = (bool)((isset($arrayCron['flagIsRunning']))? $arrayCron['flagIsRunning'] : $arrayCron['bCronIsRunning']); + $lastExecution = (isset($arrayCron['lastExecution']))? $arrayCron['lastExecution'] : $arrayCron['sLastExecution']; + } + + if (!$force && $osIsLinux) { + //Linux flag + //Check if CRON it's running + exec('ps -fea | grep ' . $cronName . '.php | grep -v grep', $arrayOutput); + + $counter = 0; + + foreach ($arrayOutput as $value) { + if (preg_match('/^.*\s' . $cronName . '\.php.*$/', $value) || + preg_match('/^.*\s.+(?:\x2F|\x5C)' . $cronName . '\.php.*$/', $value) + ) { + $counter++; + } } - //If $sDate is not set, so take the system time - if (!empty($sDate) && preg_match("/^[1-9]\d{3}\-(?:0[1-9]|1[0-2])\-(?:0[1-9]|[12][0-9]|3[01])(?:\s(?:[0-1]\d|2[0-3])\:[0-5]\d\:[0-5]\d)?$/", $sDate)) { - eprintln("[Applying date filter: $sDate]"); - } else { - $sDate = $dateSystem; + if ($counter > 1) { + $flagIsRunning = true; } + } - if ($ws == null) { - $oDirectory = dir(PATH_DB); - $cws = 0; + if ($force || !$flagIsRunning) { + //Start CRON + $arrayCron = ['flagIsRunning' => '1', 'lastExecution' => date('Y-m-d H:i:s')]; + file_put_contents(PATH_DATA . $cronName, serialize($arrayCron)); - while (($sObject = $oDirectory->read()) !== false) { - if (($sObject != ".") && ($sObject != "..")) { - if (is_dir(PATH_DB . $sObject)) { - if (file_exists(PATH_DB . $sObject . PATH_SEP . "db.php")) { - $cws = $cws + 1; + try { + $cronSinglePath = PATH_CORE . 'bin' . PATH_SEP . 'cron_single.php'; - system("php -f \"" . dirname(__FILE__) . PATH_SEP . "cron_single.php\" $sObject \"$sDate\" \"$dateSystem\" $argsx", $retval); - } + $workspace = ''; + $dateSystem = date('Y-m-d H:i:s'); + $date = ''; + $argvx = ''; + + for ($i = 1; $i <= count($argv) - 1; $i++) { + if (!isset($argv[$i])) { + continue; + } + + if (preg_match('/^\+w(.+)$/', $argv[$i], $arrayMatch)) { + $workspace = trim($arrayMatch[1], '"'); + } else { + $flagDate = false; + + if (preg_match('/^\+d(.+)$/', $argv[$i], $arrayMatch) && in_array($cronName, ['cron'])) { + $date = trim($arrayMatch[1], '"'); + + $flagDate = true; + } + + if (!$flagDate) { + $argvx = $argvx . (($argvx != '')? ' ' : '') . $argv[$i]; } } } - } else { - if (!is_dir(PATH_DB . $ws) || !file_exists(PATH_DB . $ws . PATH_SEP . "db.php")) { - throw new Exception("Error: The workspace \"$ws\" does not exist"); + + if (!empty($date) && preg_match('/^' . '[1-9]\d{3}\-(?:0[1-9]|1[0-2])\-(?:0[1-9]|[12][0-9]|3[01])' . '(?:\s' . '(?:[0-1]\d|2[0-3])\:[0-5]\d\:[0-5]\d' . ')?$/', $date)) { + eprintln('[Applying date filter: ' . $date . ']'); + } else { + $date = $dateSystem; } - $cws = 1; + $counterw = 0; - system("php -f \"" . dirname(__FILE__) . PATH_SEP . "cron_single.php\" $ws \"$sDate\" \"$dateSystem\" $argsx", $retval); + if ($workspace == '') { + $d = dir(PATH_DB); + + while (($entry = $d->read()) !== false) { + if ($entry != '' && $entry != '.' && $entry != '..') { + if (is_dir(PATH_DB . $entry)) { + if (file_exists(PATH_DB . $entry . PATH_SEP . 'db.php')) { + $counterw++; + + passthru('php -f "' . $cronSinglePath . '" "' . base64_encode(PATH_HOME) . '" "' . base64_encode(PATH_TRUNK) . '" "' . base64_encode(PATH_OUTTRUNK) . '" ' . $cronName . ' ' . $entry . ' "' . $dateSystem . '" "' . $date . '" ' . $argvx); + } + } + } + } + } else { + if (!is_dir(PATH_DB . $workspace) || !file_exists(PATH_DB . $workspace . PATH_SEP . 'db.php')) { + throw new Exception('Error: The workspace "' . $workspace . '" does not exist'); + } + + $counterw++; + + passthru('php -f "' . $cronSinglePath . '" "' . base64_encode(PATH_HOME) . '" "' . base64_encode(PATH_TRUNK) . '" "' . base64_encode(PATH_OUTTRUNK) . '" ' . $cronName . ' ' . $workspace . ' "' . $dateSystem . '" "' . $date . '" ' . $argvx); + } + + eprintln('Finished ' . $counterw . ' workspaces processed'); + } catch (Exception $e) { + throw $e; } - eprintln("Finished $cws workspaces processed."); - } catch (Exception $e) { - eprintln("Has produced the following error:", "red"); - eprintln("* " . $e->getMessage()); - eprintln("[DONE]", "green"); + //End CRON + $arrayCron = ['flagIsRunning' => '0', 'lastExecution' => date('Y-m-d H:i:s')]; + file_put_contents(PATH_DATA . $cronName, serialize($arrayCron)); + } else { + eprintln('The ' . $arrayCronConfig[$cronName]['title'] . ' is running, please wait for it to finish' . "\n" . 'Started in ' . $lastExecution); + eprintln('If do you want force the execution use the option "' . $arrayCommandOption['force'] . '", example: php -f ' . $cronName . '.php +wworkflow ' . $arrayCommandOption['force'] ,'green'); } - //End cron - $arrayCron = array("bCronIsRunning" => "0", "sLastExecution" => date("Y-m-d H:i:s")); - @file_put_contents(PATH_DATA . "cron", serialize($arrayCron)); -} else { - eprintln("The cron is running, please wait for it to finish.\nStarted in $sLastExecution"); - eprintln("If do you want force the execution use the option '+force', example: php -f +wworkflow +force" ,"green"); + echo 'Done!' . "\n"; +} catch (Exception $e) { + echo $e->getMessage() . "\n"; } diff --git a/workflow/engine/bin/cron_single.php b/workflow/engine/bin/cron_single.php index 7557a6a93..de6d57f64 100755 --- a/workflow/engine/bin/cron_single.php +++ b/workflow/engine/bin/cron_single.php @@ -1,68 +1,72 @@ add(PATH_TRUNK . "framework" . PATH_SEP . "src" . PATH_SEP, "Maveriks"); - $classLoader->add(PATH_TRUNK . "workflow" . PATH_SEP . "engine" . PATH_SEP . "src" . PATH_SEP, "ProcessMaker"); - $classLoader->add(PATH_TRUNK . "workflow" . PATH_SEP . "engine" . PATH_SEP . "src" . PATH_SEP); + $classLoader->add(PATH_TRUNK . 'framework' . PATH_SEP . 'src' . PATH_SEP, 'Maveriks'); + $classLoader->add(PATH_TRUNK . 'workflow' . PATH_SEP . 'engine' . PATH_SEP . 'src' . PATH_SEP, 'ProcessMaker'); + $classLoader->add(PATH_TRUNK . 'workflow' . PATH_SEP . 'engine' . PATH_SEP . 'src' . PATH_SEP); //Add vendors to autoloader - //$classLoader->add(PATH_TRUNK . "vendor" . PATH_SEP . "luracast" . PATH_SEP . "restler" . PATH_SEP . "vendor", "Luracast"); - //$classLoader->add(PATH_TRUNK . "vendor" . PATH_SEP . "bshaffer" . PATH_SEP . "oauth2-server-php" . PATH_SEP . "src" . PATH_SEP, "OAuth2"); - $classLoader->addClass("Bootstrap", PATH_TRUNK . "gulliver" . PATH_SEP . "system" . PATH_SEP . "class.bootstrap.php"); + //$classLoader->add(PATH_TRUNK . 'vendor' . PATH_SEP . 'luracast' . PATH_SEP . 'restler' . PATH_SEP . 'vendor', 'Luracast'); + //$classLoader->add(PATH_TRUNK . 'vendor' . PATH_SEP . 'bshaffer' . PATH_SEP . 'oauth2-server-php' . PATH_SEP . 'src' . PATH_SEP, 'OAuth2'); + $classLoader->addClass('Bootstrap', PATH_TRUNK . 'gulliver' . PATH_SEP . 'system' . PATH_SEP . 'class.bootstrap.php'); - //$classLoader->addModelClassPath(PATH_TRUNK . "workflow" . PATH_SEP . "engine" . PATH_SEP . "classes" . PATH_SEP . "model" . PATH_SEP); + $classLoader->addModelClassPath(PATH_TRUNK . 'workflow' . PATH_SEP . 'engine' . PATH_SEP . 'classes' . PATH_SEP . 'model' . PATH_SEP); //Load classes - G::LoadThirdParty('pear/json','class.json'); - G::LoadThirdParty('smarty/libs','Smarty.class'); + G::LoadThirdParty('pear/json', 'class.json'); + G::LoadThirdParty('smarty/libs', 'Smarty.class'); G::LoadSystem('error'); G::LoadSystem('dbconnection'); G::LoadSystem('dbsession'); @@ -76,459 +80,236 @@ if (!defined('PATH_HOME')) { G::LoadSystem('xmlformExtension'); G::LoadSystem('form'); G::LoadSystem('menu'); - G::LoadSystem("xmlMenu"); + G::LoadSystem('xmlMenu'); G::LoadSystem('dvEditor'); G::LoadSystem('table'); G::LoadSystem('pagedTable'); - G::LoadClass ( 'system' ); - require_once ( "propel/Propel.php" ); - require_once ( "creole/Creole.php" ); + G::LoadClass('system'); - $config = System::getSystemConfiguration(); + require_once('propel/Propel.php'); + require_once('creole/Creole.php'); - $e_all = defined('E_DEPRECATED') ? E_ALL & ~E_DEPRECATED : E_ALL; - $e_all = defined('E_STRICT') ? $e_all & ~E_STRICT : $e_all; - $e_all = $config['debug'] ? $e_all : $e_all & ~E_NOTICE; + $arraySystemConfiguration = System::getSystemConfiguration('', '', $workspace); - G::LoadSystem('inputfilter'); - $filter = new InputFilter(); - $config['debug'] = $filter->validateInput($config['debug']); - $config['memory_limit'] = $filter->validateInput($config['memory_limit']); - $config['wsdl_cache'] = $filter->validateInput($config['wsdl_cache'],'int'); - $config['time_zone'] = $filter->validateInput($config['time_zone']); - // Do not change any of these settings directly, use env.ini instead - ini_set('display_errors', $config['debug']); + $e_all = (defined('E_DEPRECATED'))? E_ALL & ~E_DEPRECATED : E_ALL; + $e_all = (defined('E_STRICT'))? $e_all & ~E_STRICT : $e_all; + $e_all = ($arraySystemConfiguration['debug'])? $e_all : $e_all & ~E_NOTICE; + + //Do not change any of these settings directly, use env.ini instead + ini_set('display_errors', $arraySystemConfiguration['debug']); ini_set('error_reporting', $e_all); - ini_set('short_open_tag', 'On'); - ini_set('default_charset', "UTF-8"); - ini_set('memory_limit', $config['memory_limit']); - ini_set('soap.wsdl_cache_enabled', $config['wsdl_cache']); - ini_set('date.timezone', $config['time_zone']); - - define ('DEBUG_SQL_LOG', $config['debug_sql']); - define ('DEBUG_TIME_LOG', $config['debug_time']); - define ('DEBUG_CALENDAR_LOG', $config['debug_calendar']); - define ('MEMCACHED_ENABLED', $config['memcached']); - define ('MEMCACHED_SERVER', $config['memcached_server']); - define ('TIME_ZONE', $config['time_zone']); -} - -//require_once (PATH_GULLIVER . PATH_SEP . 'class.bootstrap.php'); -//define( 'PATH_GULLIVER_HOME', PATH_TRUNK . 'gulliver' . PATH_SEP ); - -spl_autoload_register(array('Bootstrap', 'autoloadClass')); - -//DATABASE propel classes used in 'Cases' Options -Bootstrap::registerClass('Entity_Base', PATH_HOME . "engine/classes/entities/Base.php"); - -Bootstrap::registerClass('BaseContent', PATH_HOME . "engine/classes/model/om/BaseContent.php"); -Bootstrap::registerClass('Content', PATH_HOME . "engine/classes/model/Content.php"); -Bootstrap::registerClass('BaseContentPeer', PATH_HOME . "engine/classes/model/om/BaseContentPeer.php"); -Bootstrap::registerClass('ContentPeer', PATH_HOME . "engine/classes/model/ContentPeer.php"); -Bootstrap::registerClass('BaseApplication', PATH_HOME . "engine/classes/model/om/BaseApplication.php"); -Bootstrap::registerClass('ApplicationPeer', PATH_HOME . "engine/classes/model/ApplicationPeer.php"); -Bootstrap::registerClass('Application', PATH_HOME . "engine/classes/model/Application.php"); - -Bootstrap::registerClass('BaseAppDelegation', PATH_HOME . "engine/classes/model/om/BaseAppDelegation.php"); -Bootstrap::registerClass('BaseHoliday', PATH_HOME . "engine/classes/model/om/BaseHoliday.php"); -Bootstrap::registerClass('BaseHolidayPeer', PATH_HOME . "engine/classes/model/om/BaseHolidayPeer.php"); -Bootstrap::registerClass('BaseTask', PATH_HOME . "engine/classes/model/om/BaseTask.php"); -Bootstrap::registerClass('BaseTaskPeer', PATH_HOME . "engine/classes/model/om/BaseTaskPeer.php"); -Bootstrap::registerClass('HolidayPeer', PATH_HOME . "engine/classes/model/HolidayPeer.php"); -Bootstrap::registerClass('Holiday', PATH_HOME . "engine/classes/model/Holiday.php"); -Bootstrap::registerClass('Task', PATH_HOME . "engine/classes/model/Task.php"); -Bootstrap::registerClass('TaskPeer', PATH_HOME . "engine/classes/model/TaskPeer.php"); -Bootstrap::registerClass('dates', PATH_HOME . "engine/classes/class.dates.php"); -Bootstrap::registerClass('calendar', PATH_HOME . "engine/classes/class.calendar.php"); -Bootstrap::registerClass('AppDelegation', PATH_HOME . "engine/classes/model/AppDelegation.php"); -Bootstrap::registerClass('BaseAppDelegationPeer',PATH_HOME . "engine/classes/model/om/BaseAppDelegationPeer.php"); -Bootstrap::registerClass('AppDelegationPeer', PATH_HOME . "engine/classes/model/AppDelegationPeer.php"); -Bootstrap::registerClass('BaseAppDelay', PATH_HOME . "engine/classes/model/om/BaseAppDelay.php"); -Bootstrap::registerClass('AppDelayPeer', PATH_HOME . "engine/classes/model/AppDelayPeer.php"); -Bootstrap::registerClass('AppDelay', PATH_HOME . "engine/classes/model/AppDelay.php"); -Bootstrap::registerClass('BaseAdditionalTables',PATH_HOME . "engine/classes/model/om/BaseAdditionalTables.php"); -Bootstrap::registerClass('AdditionalTables', PATH_HOME . "engine/classes/model/AdditionalTables.php"); -Bootstrap::registerClass('BaseAppCacheView', PATH_HOME . "engine/classes/model/om/BaseAppCacheView.php"); -Bootstrap::registerClass('AppCacheView', PATH_HOME . "engine/classes/model/AppCacheView.php"); -Bootstrap::registerClass('BaseAppCacheViewPeer',PATH_HOME . "engine/classes/model/om/BaseAppCacheViewPeer.php"); -Bootstrap::registerClass('AppCacheViewPeer', PATH_HOME . "engine/classes/model/AppCacheViewPeer.php"); - -/*----------------------------------********---------------------------------*/ -Bootstrap::registerClass('BaseAppTimeoutActionExecuted', PATH_HOME . "engine/classes/model/om/BaseAppTimeoutActionExecuted.php"); -Bootstrap::registerClass('AppTimeoutActionExecuted', PATH_HOME . "engine/classes/model/AppTimeoutActionExecuted.php"); -Bootstrap::registerClass('BaseAppTimeoutActionExecutedPeer',PATH_HOME . "engine/classes/model/om/BaseAppTimeoutActionExecutedPeer.php"); -Bootstrap::registerClass('AppTimeoutActionExecutedPeer', PATH_HOME . "engine/classes/model/AppTimeoutActionExecutedPeer.php"); -/*----------------------------------********---------------------------------*/ - -Bootstrap::registerClass('BaseInputDocument', PATH_HOME . "engine/classes/model/om/BaseInputDocument.php"); -Bootstrap::registerClass('InputDocument', PATH_HOME . "engine/classes/model/InputDocument.php"); -Bootstrap::registerClass('BaseAppDocument', PATH_HOME . "engine/classes/model/om/BaseAppDocument.php"); -Bootstrap::registerClass('AppDocument', PATH_HOME . "engine/classes/model/AppDocument.php"); -Bootstrap::registerClass('AppDocumentPeer', PATH_HOME . "engine/classes/model/AppDocumentPeer.php"); - -Bootstrap::registerClass('BaseAppEvent', PATH_HOME . "engine/classes/model/om/BaseAppEvent.php"); -Bootstrap::registerClass('AppEvent', PATH_HOME . "engine/classes/model/AppEvent.php"); -Bootstrap::registerClass('AppEventPeer', PATH_HOME . "engine/classes/model/AppEventPeer.php"); - -Bootstrap::registerClass('BaseAppHistory', PATH_HOME . "engine/classes/model/om/BaseAppHistory.php"); -Bootstrap::registerClass('AppHistory', PATH_HOME . "engine/classes/model/AppHistory.php"); -Bootstrap::registerClass('AppHistoryPeer', PATH_HOME . "engine/classes/model/AppHistoryPeer.php"); - -Bootstrap::registerClass('BaseAppFolder', PATH_HOME . "engine/classes/model/om/BaseAppFolder.php"); -Bootstrap::registerClass('AppFolder', PATH_HOME . "engine/classes/model/AppFolder.php"); -Bootstrap::registerClass('AppFolderPeer', PATH_HOME . "engine/classes/model/AppFolderPeer.php"); - -Bootstrap::registerClass('BaseAppMessage', PATH_HOME . "engine/classes/model/om/BaseAppMessage.php"); -Bootstrap::registerClass('AppMessage', PATH_HOME . "engine/classes/model/AppMessage.php"); - -Bootstrap::registerClass('BaseAppMessagePeer', PATH_HOME . "engine/classes/model/om/BaseAppMessagePeer.php"); -Bootstrap::registerClass('AppMessagePeer', PATH_HOME . "engine/classes/model/AppMessagePeer.php"); - -Bootstrap::registerClass('BaseAppNotesPeer', PATH_HOME . "engine/classes/model/om/BaseAppNotesPeer.php"); -Bootstrap::registerClass('AppNotesPeer', PATH_HOME . "engine/classes/model/AppNotesPeer.php"); - -Bootstrap::registerClass('BaseAppNotes', PATH_HOME . "engine/classes/model/om/BaseAppNotes.php"); -Bootstrap::registerClass('AppNotes', PATH_HOME . "engine/classes/model/AppNotes.php"); - -Bootstrap::registerClass('BaseAppOwner', PATH_HOME . "engine/classes/model/om/BaseAppOwner.php"); -Bootstrap::registerClass('AppOwner', PATH_HOME . "engine/classes/model/AppOwner.php"); -Bootstrap::registerClass('AppOwnerPeer', PATH_HOME . "engine/classes/model/AppOwnerPeer.php"); - -Bootstrap::registerClass('BaseAppSolrQueue', PATH_HOME . "engine/classes/model/om/BaseAppSolrQueue.php"); -Bootstrap::registerClass('Entity_AppSolrQueue', PATH_HOME . "engine/classes/entities/AppSolrQueue.php"); -Bootstrap::registerClass('AppSolrQueue', PATH_HOME . "engine/classes/model/AppSolrQueue.php"); -Bootstrap::registerClass('AppSolrQueuePeer', PATH_HOME . "engine/classes/model/AppSolrQueuePeer.php"); - -Bootstrap::registerClass('BaseAppThread', PATH_HOME . "engine/classes/model/om/BaseAppThread.php"); -Bootstrap::registerClass('AppThread', PATH_HOME . "engine/classes/model/AppThread.php"); -Bootstrap::registerClass('AppThreadPeer', PATH_HOME . "engine/classes/model/AppThreadPeer.php"); - -Bootstrap::registerClass('BaseCaseScheduler', PATH_HOME . "engine/classes/model/om/BaseCaseScheduler.php"); -Bootstrap::registerClass('CaseScheduler', PATH_HOME . "engine/classes/model/CaseScheduler.php"); - -Bootstrap::registerClass('BaseCaseSchedulerPeer',PATH_HOME . "engine/classes/model/om/BaseCaseSchedulerPeer.php"); -Bootstrap::registerClass('CaseSchedulerPeer', PATH_HOME . "engine/classes/model/CaseSchedulerPeer.php"); - -Bootstrap::registerClass('BaseCaseTracker', PATH_HOME . "engine/classes/model/om/BaseCaseTracker.php"); -Bootstrap::registerClass('CaseTracker', PATH_HOME . "engine/classes/model/CaseTracker.php"); - -Bootstrap::registerClass('BaseCaseTrackerPeer', PATH_HOME . "engine/classes/model/om/BaseCaseTrackerPeer.php"); -Bootstrap::registerClass('CaseTrackerPeer', PATH_HOME . "engine/classes/model/CaseTrackerPeer.php"); - -Bootstrap::registerClass('BaseCaseTrackerObject',PATH_HOME . "engine/classes/model/om/BaseCaseTrackerObject.php"); -Bootstrap::registerClass('CaseTrackerObject', PATH_HOME . "engine/classes/model/CaseTrackerObject.php"); - -Bootstrap::registerClass('BaseCaseTrackerObjectPeer',PATH_HOME . "engine/classes/model/om/BaseCaseTrackerObjectPeer.php"); -Bootstrap::registerClass('CaseTrackerObjectPeer', PATH_HOME . "engine/classes/model/CaseTrackerObjectPeer.php"); - -Bootstrap::registerClass('BaseDbSource', PATH_HOME . "engine/classes/model/om/BaseDbSource.php"); -Bootstrap::registerClass('DbSource', PATH_HOME . "engine/classes/model/DbSource.php"); - -Bootstrap::registerClass('XMLDB', PATH_HOME . "engine/classes/class.xmlDb.php"); -Bootstrap::registerClass('dynaFormHandler', PATH_GULLIVER . "class.dynaformhandler.php"); -Bootstrap::registerClass('DynaFormField', PATH_HOME . "engine/classes/class.dynaFormField.php"); -Bootstrap::registerClass('BaseDynaform', PATH_HOME . "engine/classes/model/om/BaseDynaform.php"); -Bootstrap::registerClass('Dynaform', PATH_HOME . "engine/classes/model/Dynaform.php"); -Bootstrap::registerClass('DynaformPeer', PATH_HOME . "engine/classes/model/DynaformPeer.php"); - -Bootstrap::registerClass('BaseEvent', PATH_HOME . "engine/classes/model/om/BaseEvent.php"); -Bootstrap::registerClass('Event', PATH_HOME . "engine/classes/model/Event.php"); - -Bootstrap::registerClass('BaseEventPeer', PATH_HOME . "engine/classes/model/om/BaseEventPeer.php"); -Bootstrap::registerClass('EventPeer', PATH_HOME . "engine/classes/model/EventPeer.php"); - -Bootstrap::registerClass('BaseFields', PATH_HOME . "engine/classes/model/om/BaseFields.php"); -Bootstrap::registerClass('Fields', PATH_HOME . "engine/classes/model/Fields.php"); - -Bootstrap::registerClass('BaseGateway', PATH_HOME . "engine/classes/model/om/BaseGateway.php"); -Bootstrap::registerClass('Gateway', PATH_HOME . "engine/classes/model/Gateway.php"); - -Bootstrap::registerClass('BaseGroupUser', PATH_HOME . "engine/classes/model/om/BaseGroupUser.php"); -Bootstrap::registerClass('Groupwf', PATH_HOME . "engine/classes/model/Groupwf.php"); -Bootstrap::registerClass('GroupUser', PATH_HOME . "engine/classes/model/GroupUser.php"); - -Bootstrap::registerClass('BaseGroupUserPeer', PATH_HOME . "engine/classes/model/om/BaseGroupUserPeer.php"); -Bootstrap::registerClass('GroupUserPeer', PATH_HOME . "engine/classes/model/GroupUserPeer.php"); - -Bootstrap::registerClass('BaseGroupwfPeer', PATH_HOME . "engine/classes/model/om/BaseGroupwfPeer.php"); -Bootstrap::registerClass('GroupwfPeer', PATH_HOME . "engine/classes/model/GroupwfPeer.php"); - -Bootstrap::registerClass('BaseInputDocumentPeer',PATH_HOME . 'engine/classes/model/om/BaseInputDocumentPeer.php'); -Bootstrap::registerClass('InputDocumentPeer', PATH_HOME . 'engine/classes/model/InputDocumentPeer.php'); - -Bootstrap::registerClass('BaseIsoCountry', PATH_HOME . "engine/classes/model/om/BaseIsoCountry.php"); -Bootstrap::registerClass('IsoCountry', PATH_HOME . "engine/classes/model/IsoCountry.php"); -Bootstrap::registerClass('BaseTranslation', PATH_HOME . "engine/classes/model/om/BaseTranslation.php"); -Bootstrap::registerClass('Translation', PATH_HOME . "engine/classes/model/Translation.php"); - -Bootstrap::registerClass('BaseLogCasesScheduler',PATH_HOME . "engine/classes/model/om/BaseLogCasesScheduler.php"); -Bootstrap::registerClass('LogCasesScheduler', PATH_HOME . "engine/classes/model/LogCasesScheduler.php"); - -Bootstrap::registerClass('BaseObjectPermission',PATH_HOME . "engine/classes/model/om/BaseObjectPermission.php"); -Bootstrap::registerClass('ObjectPermission', PATH_HOME . "engine/classes/model/ObjectPermission.php"); -Bootstrap::registerClass('ObjectPermissionPeer',PATH_HOME . "engine/classes/model/ObjectPermissionPeer.php"); - -Bootstrap::registerClass('BaseOutputDocument', PATH_HOME . "engine/classes/model/om/BaseOutputDocument.php"); -Bootstrap::registerClass('OutputDocument', PATH_HOME . "engine/classes/model/OutputDocument.php"); -Bootstrap::registerClass('OutputDocumentPeer', PATH_HOME . "engine/classes/model/OutputDocumentPeer.php"); - -Bootstrap::registerClass('BaseProcess', PATH_HOME . "engine/classes/model/om/BaseProcess.php"); -Bootstrap::registerClass('BaseProcessCategory', PATH_HOME . "engine/classes/model/om/BaseProcessCategory.php"); -Bootstrap::registerClass('ProcessCategory', PATH_HOME . "engine/classes/model/ProcessCategory.php"); -Bootstrap::registerClass('ProcessCategoryPeer', PATH_HOME . "engine/classes/model/ProcessCategoryPeer.php"); -Bootstrap::registerClass('ProcessPeer', PATH_HOME . "engine/classes/model/ProcessPeer.php"); -Bootstrap::registerClass('Process', PATH_HOME . "engine/classes/model/Process.php"); - -Bootstrap::registerClass('BaseProcessUser', PATH_HOME . "engine/classes/model/om/BaseProcessUser.php"); -Bootstrap::registerClass('ProcessUser', PATH_HOME . "engine/classes/model/ProcessUser.php"); - -Bootstrap::registerClass('BaseProcessUserPeer', PATH_HOME . "engine/classes/model/om/BaseProcessUserPeer.php"); -Bootstrap::registerClass('ProcessUserPeer', PATH_HOME . "engine/classes/model/ProcessUserPeer.php"); - -Bootstrap::registerClass('BaseReportTable', PATH_HOME . "engine/classes/model/om/BaseReportTable.php"); -Bootstrap::registerClass('ReportTable', PATH_HOME . "engine/classes/model/ReportTable.php"); -Bootstrap::registerClass('ReportTablePeer', PATH_HOME . "engine/classes/model/ReportTablePeer.php"); - -Bootstrap::registerClass('BaseReportVar', PATH_HOME . "engine/classes/model/om/BaseReportVar.php"); -Bootstrap::registerClass('ReportVar', PATH_HOME . "engine/classes/model/ReportVar.php"); - -Bootstrap::registerClass('BaseReportVarPeer', PATH_HOME . "engine/classes/model/om/BaseReportVarPeer.php"); -Bootstrap::registerClass('ReportVarPeer', PATH_HOME . "engine/classes/model/ReportVarPeer.php"); - -Bootstrap::registerClass('BaseRoute', PATH_HOME . "engine/classes/model/om/BaseRoute.php"); -Bootstrap::registerClass('Route', PATH_HOME . "engine/classes/model/Route.php"); -Bootstrap::registerClass('RoutePeer', PATH_HOME . "engine/classes/model/RoutePeer.php"); - -Bootstrap::registerClass('BaseStep', PATH_HOME . "engine/classes/model/om/BaseStep.php"); -Bootstrap::registerClass('Step', PATH_HOME . "engine/classes/model/Step.php"); -Bootstrap::registerClass('StepPeer', PATH_HOME . "engine/classes/model/StepPeer.php"); - -Bootstrap::registerClass('BaseStepSupervisor', PATH_HOME . "engine/classes/model/om/BaseStepSupervisor.php"); -Bootstrap::registerClass('StepSupervisor', PATH_HOME . "engine/classes/model/StepSupervisor.php"); - -Bootstrap::registerClass('BaseStepSupervisorPeer',PATH_HOME . "engine/classes/model/om/BaseStepSupervisorPeer.php"); -Bootstrap::registerClass('StepSupervisorPeer', PATH_HOME . "engine/classes/model/StepSupervisorPeer.php"); - -Bootstrap::registerClass('BaseStepTrigger', PATH_HOME . "engine/classes/model/om/BaseStepTrigger.php"); -Bootstrap::registerClass('StepTrigger', PATH_HOME . "engine/classes/model/StepTrigger.php"); -Bootstrap::registerClass('StepTriggerPeer', PATH_HOME . "engine/classes/model/StepTriggerPeer.php"); - -Bootstrap::registerClass('SolrRequestData', PATH_HOME . "engine/classes/entities/SolrRequestData.php"); - -Bootstrap::registerClass('SolrUpdateDocument', PATH_HOME . "engine/classes/entities/SolrUpdateDocument.php"); - -Bootstrap::registerClass('BaseSwimlanesElements',PATH_HOME . "engine/classes/model/om/BaseSwimlanesElements.php"); -Bootstrap::registerClass('SwimlanesElements', PATH_HOME . "engine/classes/model/SwimlanesElements.php"); -Bootstrap::registerClass('BaseSwimlanesElementsPeer',PATH_HOME ."engine/classes/model/om/BaseSwimlanesElementsPeer.php"); -Bootstrap::registerClass('SwimlanesElementsPeer',PATH_HOME . "engine/classes/model/SwimlanesElementsPeer.php"); - -Bootstrap::registerClass('BaseSubApplication', PATH_HOME . "engine/classes/model/om/BaseSubApplication.php"); -Bootstrap::registerClass('SubApplication', PATH_HOME . "engine/classes/model/SubApplication.php"); -Bootstrap::registerClass('SubApplicationPeer', PATH_HOME . "engine/classes/model/SubApplicationPeer.php"); - -Bootstrap::registerClass('BaseSubProcess', PATH_HOME . "engine/classes/model/om/BaseSubProcess.php"); -Bootstrap::registerClass('SubProcess', PATH_HOME . "engine/classes/model/SubProcess.php"); - -Bootstrap::registerClass('BaseSubProcessPeer', PATH_HOME . "engine/classes/model/om/BaseSubProcessPeer.php"); -Bootstrap::registerClass('SubProcessPeer', PATH_HOME . "engine/classes/model/SubProcessPeer.php"); - -Bootstrap::registerClass('BaseTask', PATH_HOME . "engine/classes/model/om/BaseTask.php"); -Bootstrap::registerClass('Task', PATH_HOME . "engine/classes/model/Task.php"); - -Bootstrap::registerClass('BaseTaskUser', PATH_HOME . "engine/classes/model/om/BaseTaskUser.php"); -Bootstrap::registerClass('TaskUserPeer', PATH_HOME . "engine/classes/model/TaskUserPeer.php"); -Bootstrap::registerClass('TaskUser', PATH_HOME . "engine/classes/model/TaskUser.php"); - -Bootstrap::registerClass('BaseTriggers', PATH_HOME . "engine/classes/model/om/BaseTriggers.php"); -Bootstrap::registerClass('Triggers', PATH_HOME . "engine/classes/model/Triggers.php"); -Bootstrap::registerClass('BaseTriggersPeer', PATH_HOME . "engine/classes/model/om/BaseTriggersPeer.php"); -Bootstrap::registerClass('TriggersPeer', PATH_HOME . "engine/classes/model/TriggersPeer.php"); - -Bootstrap::registerClass('BaseUsers', PATH_HOME . "engine/classes/model/om/BaseUsers.php"); -Bootstrap::registerClass('IsoCountry', PATH_HOME . "engine/classes/model/IsoCountry.php"); -Bootstrap::registerClass('BaseIsoSubdivision', PATH_HOME . "engine/classes/model/om/BaseIsoSubdivision.php"); -Bootstrap::registerClass('IsoSubdivision', PATH_HOME . "engine/classes/model/IsoSubdivision.php"); -Bootstrap::registerClass('BaseIsoLocation', PATH_HOME . "engine/classes/model/om/BaseIsoLocation.php"); -Bootstrap::registerClass('IsoLocation', PATH_HOME . "engine/classes/model/IsoLocation.php"); -Bootstrap::registerClass('Users', PATH_HOME . "engine/classes/model/Users.php"); -Bootstrap::registerClass('UsersPeer', PATH_HOME . "engine/classes/model/UsersPeer.php"); - -Bootstrap::registerClass('Xml_Node', PATH_GULLIVER . "class.xmlDocument.php"); - -Bootstrap::registerClass('wsResponse', PATH_HOME . "engine/classes/class.wsResponse.php"); - -Bootstrap::registerClass("PMLicensedFeatures", PATH_HOME . "engine" . PATH_SEP . "classes" . PATH_SEP . "class.licensedFeatures.php"); -Bootstrap::registerClass("AddonsManagerPeer", PATH_HOME . "engine" . PATH_SEP . "classes" . PATH_SEP . "model" . PATH_SEP . "AddonsManagerPeer.php"); -/*----------------------------------********---------------------------------*/ -Bootstrap::registerClass('dashboards', PATH_HOME . "engine/classes/class.dashboards.php"); -/*----------------------------------********---------------------------------*/ - -$arrayClass = array( - "BpmnProject", - - "Configuration", - "EmailServer", - "Language", - "ListInbox", - "ListMyInbox", - "ListPaused", - "ListParticipatedLast", - "ListParticipatedHistory", - "AbeConfiguration" -); - -foreach ($arrayClass as $value) { - Bootstrap::registerClass("Base" . $value, PATH_HOME . "engine" . PATH_SEP . "classes" . PATH_SEP . "model" . PATH_SEP . "om" . PATH_SEP . "Base" . $value . ".php"); - Bootstrap::registerClass($value, PATH_HOME . "engine" . PATH_SEP . "classes" . PATH_SEP . "model" . PATH_SEP . $value . ".php"); - Bootstrap::registerClass("Base" . $value . "Peer", PATH_HOME . "engine" . PATH_SEP . "classes" . PATH_SEP . "model" . PATH_SEP . "om" . PATH_SEP . "Base" . $value . "Peer.php"); - Bootstrap::registerClass($value . "Peer", PATH_HOME . "engine" . PATH_SEP . "classes" . PATH_SEP . "model" . PATH_SEP . $value . "Peer.php"); -} - -G::LoadClass("serverConfiguration"); -G::LoadClass("dates"); //Load Criteria - -/*----------------------------------********---------------------------------*/ -global $dateInit; -global $dateFinish; -/*----------------------------------********---------------------------------*/ - -if (!defined('SYS_SYS')) { - $sObject = $argv[1]; - $sNow = $argv[2]; - $dateSystem = $argv[3]; + ini_set('short_open_tag', 'On'); + ini_set('default_charset', 'UTF-8'); + //ini_set('memory_limit', $arraySystemConfiguration['memory_limit']); + ini_set('soap.wsdl_cache_enabled', $arraySystemConfiguration['wsdl_cache']); + ini_set('date.timezone', $arraySystemConfiguration['time_zone']); + + define('DEBUG_SQL_LOG', $arraySystemConfiguration['debug_sql']); + define('DEBUG_TIME_LOG', $arraySystemConfiguration['debug_time']); + define('DEBUG_CALENDAR_LOG', $arraySystemConfiguration['debug_calendar']); + define('MEMCACHED_ENABLED', $arraySystemConfiguration['memcached']); + define('MEMCACHED_SERVER', $arraySystemConfiguration['memcached_server']); + define('TIME_ZONE', ini_get('date.timezone')); + + //require_once(PATH_GULLIVER . PATH_SEP . 'class.bootstrap.php'); + //define('PATH_GULLIVER_HOME', PATH_TRUNK . 'gulliver' . PATH_SEP); + + spl_autoload_register(['Bootstrap', 'autoloadClass']); + + //DATABASE propel classes used in 'Cases' Options + Bootstrap::registerClass('AuthenticationSourcePeer', PATH_RBAC . 'model' . PATH_SEP . 'AuthenticationSourcePeer.php'); + Bootstrap::registerClass('BaseAuthenticationSource', PATH_RBAC . 'model' . PATH_SEP . 'om' . PATH_SEP . 'BaseAuthenticationSource.php'); + Bootstrap::registerClass('AuthenticationSource', PATH_RBAC . 'model' . PATH_SEP . 'AuthenticationSource.php'); + Bootstrap::registerClass('RolesPeer', PATH_RBAC . 'model' . PATH_SEP . 'RolesPeer.php'); + Bootstrap::registerClass('BaseRoles', PATH_RBAC . 'model' . PATH_SEP . 'om' . PATH_SEP . 'BaseRoles.php'); + Bootstrap::registerClass('Roles', PATH_RBAC . 'model' . PATH_SEP . 'Roles.php'); + + require_once(PATH_RBAC . 'model' . PATH_SEP . 'UsersRolesPeer.php'); + require_once(PATH_RBAC . 'model' . PATH_SEP . 'om' . PATH_SEP . 'BaseUsersRoles.php'); + require_once(PATH_RBAC . 'model' . PATH_SEP . 'UsersRoles.php'); + + Bootstrap::registerClass('PMLicensedFeatures', PATH_CLASSES . 'class.licensedFeatures.php'); + Bootstrap::registerClass('serverConf', PATH_CLASSES . 'class.serverConfiguration.php'); + Bootstrap::registerClass('calendar', PATH_CLASSES . 'class.calendar.php'); + Bootstrap::registerClass('groups', PATH_CLASSES . 'class.groups.php'); + + Bootstrap::registerClass('Entity_Base', PATH_HOME . 'engine/classes/entities/Base.php'); + Bootstrap::registerClass('Entity_AppSolrQueue', PATH_HOME . 'engine/classes/entities/AppSolrQueue.php'); + Bootstrap::registerClass('XMLDB', PATH_HOME . 'engine/classes/class.xmlDb.php'); + Bootstrap::registerClass('dynaFormHandler', PATH_GULLIVER . 'class.dynaformhandler.php'); + Bootstrap::registerClass('DynaFormField', PATH_HOME . 'engine/classes/class.dynaFormField.php'); + Bootstrap::registerClass('SolrRequestData', PATH_HOME . 'engine/classes/entities/SolrRequestData.php'); + Bootstrap::registerClass('SolrUpdateDocument', PATH_HOME . 'engine/classes/entities/SolrUpdateDocument.php'); + Bootstrap::registerClass('Xml_Node', PATH_GULLIVER . 'class.xmlDocument.php'); + Bootstrap::registerClass('wsResponse', PATH_HOME . 'engine' . PATH_SEP . 'classes' . PATH_SEP . 'class.wsResponse.php'); + + /*----------------------------------********---------------------------------*/ + Bootstrap::registerClass('dashboards', PATH_HOME . 'engine/classes/class.dashboards.php'); + /*----------------------------------********---------------------------------*/ + + G::LoadClass('processes'); + G::LoadClass('derivation'); + G::LoadClass('dates'); //Load Criteria + + //Set variables /*----------------------------------********---------------------------------*/ $dateInit = null; $dateFinish = null; /*----------------------------------********---------------------------------*/ - $sFilter = ''; - for ($i = 4; $i <= count($argv) - 1; $i++) { + $argvx = ''; + + for ($i = 8; $i <= count($argv) - 1; $i++) { /*----------------------------------********---------------------------------*/ - if (strpos($argv[$i], "+init-date") !== false) { - $dateInit = substr($argv[$i],10); - } else if (strpos($argv[$i], "+finish-date") !== false) { + if (strpos($argv[$i], '+init-date') !== false) { + $dateInit = substr($argv[$i], 10); + } else if (strpos($argv[$i], '+finish-date') !== false) { $dateFinish = substr($argv[$i], 12); } else { /*----------------------------------********---------------------------------*/ - $sFilter .= ' ' . $argv[$i]; + $argvx = $argvx . (($argvx != '')? ' ' : '') . $argv[$i]; /*----------------------------------********---------------------------------*/ } /*----------------------------------********---------------------------------*/ } - $oDirectory = dir(PATH_DB); + //Workflow + saveLog('main', 'action', 'checking folder ' . PATH_DB . $workspace); - if (is_dir(PATH_DB . $sObject)) { - saveLog('main', 'action', "checking folder " . PATH_DB . $sObject); + if (is_dir(PATH_DB . $workspace) && file_exists(PATH_DB . $workspace . PATH_SEP . 'db.php')) { + define('SYS_SYS', $workspace); - if (file_exists(PATH_DB . $sObject . PATH_SEP . 'db.php')) { - define('SYS_SYS', $sObject); + include_once(PATH_HOME . 'engine' . PATH_SEP . 'config' . PATH_SEP . 'paths_installed.php'); + include_once(PATH_HOME . 'engine' . PATH_SEP . 'config' . PATH_SEP . 'paths.php'); - include_once (PATH_HOME . 'engine' . PATH_SEP . 'config' . PATH_SEP . 'paths_installed.php'); - include_once (PATH_HOME . 'engine' . PATH_SEP . 'config' . PATH_SEP . 'paths.php'); + //PM Paths DATA + define('PATH_DATA_SITE', PATH_DATA . 'sites/' . SYS_SYS . '/'); + define('PATH_DOCUMENT', PATH_DATA_SITE . 'files/'); + define('PATH_DATA_MAILTEMPLATES', PATH_DATA_SITE . 'mailTemplates/'); + define('PATH_DATA_PUBLIC', PATH_DATA_SITE . 'public/'); + define('PATH_DATA_REPORTS', PATH_DATA_SITE . 'reports/'); + define('PATH_DYNAFORM', PATH_DATA_SITE . 'xmlForms/'); + define('PATH_IMAGES_ENVIRONMENT_FILES', PATH_DATA_SITE . 'usersFiles' . PATH_SEP); + define('PATH_IMAGES_ENVIRONMENT_USERS', PATH_DATA_SITE . 'usersPhotographies' . PATH_SEP); - //***************** PM Paths DATA ************************** - define('PATH_DATA_SITE', PATH_DATA . 'sites/' . SYS_SYS . '/'); - define('PATH_DOCUMENT', PATH_DATA_SITE . 'files/'); - define('PATH_DATA_MAILTEMPLATES', PATH_DATA_SITE . 'mailTemplates/'); - define('PATH_DATA_PUBLIC', PATH_DATA_SITE . 'public/'); - define('PATH_DATA_REPORTS', PATH_DATA_SITE . 'reports/'); - define('PATH_DYNAFORM', PATH_DATA_SITE . 'xmlForms/'); - define('PATH_IMAGES_ENVIRONMENT_FILES', PATH_DATA_SITE . 'usersFiles' . PATH_SEP); - define('PATH_IMAGES_ENVIRONMENT_USERS', PATH_DATA_SITE . 'usersPhotographies' . PATH_SEP); + if (is_file(PATH_DATA_SITE . PATH_SEP . '.server_info')) { + $SERVER_INFO = file_get_contents(PATH_DATA_SITE . PATH_SEP . '.server_info'); + $SERVER_INFO = unserialize($SERVER_INFO); - if (is_file(PATH_DATA_SITE.PATH_SEP . '.server_info')) { - $SERVER_INFO = file_get_contents(PATH_DATA_SITE.PATH_SEP.'.server_info'); - $SERVER_INFO = unserialize($SERVER_INFO); - - define('SERVER_NAME', $SERVER_INFO ['SERVER_NAME']); - define('SERVER_PORT', $SERVER_INFO ['SERVER_PORT']); - } else { - eprintln("WARNING! No server info found!", 'red'); - } - - //DB - $phpCode = ""; - - $fileDb = fopen(PATH_DB . $sObject . PATH_SEP . "db.php", "r"); - - if ($fileDb) { - while (!feof($fileDb)) { - $buffer = fgets($fileDb, 4096); //Read a line - - $phpCode .= preg_replace("/define\s*\(\s*[\x22\x27](.*)[\x22\x27]\s*,\s*(\x22.*\x22|\x27.*\x27)\s*\)\s*;/i", "\$$1 = $2;", $buffer); - } - - fclose($fileDb); - } - - $phpCode = str_replace(array(""), array("", "", ""), $phpCode); - - eval($phpCode); - - $dsn = $DB_ADAPTER . "://" . $DB_USER . ":" . $DB_PASS . "@" . $DB_HOST . "/" . $DB_NAME; - $dsnRbac = $DB_ADAPTER . "://" . $DB_RBAC_USER . ":" . $DB_RBAC_PASS . "@" . $DB_RBAC_HOST . "/" . $DB_RBAC_NAME; - $dsnRp = $DB_ADAPTER . "://" . $DB_REPORT_USER . ":" . $DB_REPORT_PASS . "@" . $DB_REPORT_HOST . "/" . $DB_REPORT_NAME; - - switch ($DB_ADAPTER) { - case 'mysql': - $dsn .= '?encoding=utf8'; - $dsnRbac .= '?encoding=utf8'; - break; - case 'mssql': - //$dsn .= '?sendStringAsUnicode=false'; - //$dsnRbac .= '?sendStringAsUnicode=false'; - break; - default: - break; - } - - $pro['datasources']['workflow']['connection'] = $dsn; - $pro['datasources']['workflow']['adapter'] = $DB_ADAPTER; - $pro['datasources']['rbac']['connection'] = $dsnRbac; - $pro['datasources']['rbac']['adapter'] = $DB_ADAPTER; - $pro['datasources']['rp']['connection'] = $dsnRp; - $pro['datasources']['rp']['adapter'] = $DB_ADAPTER; - //$pro['datasources']['dbarray']['connection'] = 'dbarray://user:pass@localhost/pm_os'; - //$pro['datasources']['dbarray']['adapter'] = 'dbarray'; - - $oFile = fopen(PATH_CORE . 'config/_databases_.php', 'w'); - fwrite($oFile, ''); - fclose($oFile); - - Propel::init(PATH_CORE . 'config/_databases_.php'); - //Creole::registerDriver('dbarray', 'creole.contrib.DBArrayConnection'); - - // enable rbac - Bootstrap::LoadSystem( 'rbac' ); - $RBAC = &RBAC::getSingleton( PATH_DATA, session_id() ); - $RBAC->sSystem = 'PROCESSMAKER'; - - eprintln("Processing workspace: " . $sObject, "green"); - - try { - processWorkspace(); - } catch (Exception $e) { - echo $e->getMessage(); - - eprintln("Problem in workspace: " . $sObject . " it was omitted.", "red"); - } - - eprintln(); + define('SERVER_NAME', $SERVER_INFO['SERVER_NAME']); + define('SERVER_PORT', $SERVER_INFO['SERVER_PORT']); + } else { + eprintln('WARNING! No server info found!', 'red'); } + + //DB + $phpCode = ''; + + $fileDb = fopen(PATH_DB . $workspace . PATH_SEP . 'db.php', 'r'); + + if ($fileDb) { + while (!feof($fileDb)) { + $buffer = fgets($fileDb, 4096); //Read a line + + $phpCode .= preg_replace('/define\s*\(\s*[\x22\x27](.*)[\x22\x27]\s*,\s*(\x22.*\x22|\x27.*\x27)\s*\)\s*;/i', '$$1 = $2;', $buffer); + } + + fclose($fileDb); + } + + $phpCode = str_replace([''], ['', '', ''], $phpCode); + + eval($phpCode); + + $dsn = $DB_ADAPTER . '://' . $DB_USER . ':' . $DB_PASS . '@' . $DB_HOST . '/' . $DB_NAME; + $dsnRbac = $DB_ADAPTER . '://' . $DB_RBAC_USER . ':' . $DB_RBAC_PASS . '@' . $DB_RBAC_HOST . '/' . $DB_RBAC_NAME; + $dsnRp = $DB_ADAPTER . '://' . $DB_REPORT_USER . ':' . $DB_REPORT_PASS . '@' . $DB_REPORT_HOST . '/' . $DB_REPORT_NAME; + + switch ($DB_ADAPTER) { + case 'mysql': + $dsn .= '?encoding=utf8'; + $dsnRbac .= '?encoding=utf8'; + break; + case 'mssql': + //$dsn .= '?sendStringAsUnicode=false'; + //$dsnRbac .= '?sendStringAsUnicode=false'; + break; + default: + break; + } + + $pro = []; + $pro['datasources']['workflow']['connection'] = $dsn; + $pro['datasources']['workflow']['adapter'] = $DB_ADAPTER; + $pro['datasources']['rbac']['connection'] = $dsnRbac; + $pro['datasources']['rbac']['adapter'] = $DB_ADAPTER; + $pro['datasources']['rp']['connection'] = $dsnRp; + $pro['datasources']['rp']['adapter'] = $DB_ADAPTER; + //$pro['datasources']['dbarray']['connection'] = 'dbarray://user:pass@localhost/pm_os'; + //$pro['datasources']['dbarray']['adapter'] = 'dbarray'; + + $oFile = fopen(PATH_CORE . 'config' . PATH_SEP . '_databases_.php', 'w'); + fwrite($oFile, ''); + fclose($oFile); + + Propel::init(PATH_CORE . 'config' . PATH_SEP . '_databases_.php'); + //Creole::registerDriver('dbarray', 'creole.contrib.DBArrayConnection'); + + //Enable RBAC + $rbac = &RBAC::getSingleton(PATH_DATA, session_id()); + $rbac->sSystem = 'PROCESSMAKER'; + + if (!defined('DB_ADAPTER')) { + define('DB_ADAPTER', $DB_ADAPTER); + } + + eprintln('Processing workspace: ' . $workspace, 'green'); + + try { + switch ($cronName) { + case 'cron': + processWorkspace(); + break; + case 'ldapcron': + require_once(PATH_HOME . 'engine' . PATH_SEP . 'classes' . PATH_SEP . 'class.ldapAdvanced.php'); + require_once(PATH_HOME . 'engine' . PATH_SEP . 'methods' . PATH_SEP . 'services' . PATH_SEP . 'ldapadvanced.php'); + + $ldapadvancedClassCron = new ldapadvancedClassCron(); + + $ldapadvancedClassCron->executeCron(in_array('+debug', $argv)); + break; + case 'messageeventcron': + $messageApplication = new \ProcessMaker\BusinessModel\MessageApplication(); + + $messageApplication->catchMessageEvent(true); + break; + case 'timereventcron': + $timerEvent = new \ProcessMaker\BusinessModel\TimerEvent(); + + $timerEvent->startContinueCaseByTimerEvent(date('Y-m-d H:i:s'), true); + break; + } + } catch (Exception $e) { + echo $e->getMessage() . "\n"; + + eprintln('Problem in workspace: ' . $workspace . ' it was omitted.', 'red'); + } + + eprintln(); } - if (file_exists(PATH_CORE . "config" . PATH_SEP . "_databases_.php")) { - unlink(PATH_CORE . "config" . PATH_SEP . "_databases_.php"); + if (file_exists(PATH_CORE . 'config' . PATH_SEP . '_databases_.php')) { + unlink(PATH_CORE . 'config' . PATH_SEP . '_databases_.php'); } -} else { - processWorkspace(); +} catch (Exception $e) { + echo $e->getMessage() . "\n"; } +//Functions function processWorkspace() { try { @@ -564,11 +345,11 @@ function processWorkspace() function resendEmails() { - global $sFilter; + global $argvx; global $sNow; global $dateSystem; - if ($sFilter != "" && strpos($sFilter, "emails") === false) { + if ($argvx != "" && strpos($argvx, "emails") === false) { return false; } @@ -631,10 +412,10 @@ function resendEmails() function unpauseApplications() { - global $sFilter; + global $argvx; global $sNow; - if ($sFilter != '' && strpos($sFilter, 'unpause') === false) { + if ($argvx != "" && strpos($argvx, "unpause") === false) { return false; } @@ -657,9 +438,9 @@ function unpauseApplications() function executePlugins() { - global $sFilter; + global $argvx; - if ($sFilter != '' && strpos($sFilter, 'plugins') === false) { + if ($argvx != "" && strpos($argvx, "plugins") === false) { return false; } @@ -725,9 +506,9 @@ function executeCustomCronFunction($pathFile, $className) function calculateDuration() { - global $sFilter; + global $argvx; - if ($sFilter != '' && strpos($sFilter, 'calculate') === false) { + if ($argvx != "" && strpos($argvx, "calculate") === false) { return false; } @@ -749,9 +530,9 @@ function calculateDuration() /*----------------------------------********---------------------------------*/ function calculateAppDuration() { - global $sFilter; + global $argvx; - if ($sFilter != '' && strpos($sFilter, 'calculateapp') === false) { + if ($argvx != "" && strpos($argvx, "calculateapp") === false) { return false; } @@ -773,12 +554,12 @@ function calculateAppDuration() function executeEvents($sLastExecution, $sNow=null) { - global $sFilter; + global $argvx; global $sNow; $log = array(); - if ($sFilter != '' && strpos($sFilter, 'events') === false) { + if ($argvx != "" && strpos($argvx, "events") === false) { return false; } @@ -811,12 +592,12 @@ function executeEvents($sLastExecution, $sNow=null) function executeScheduledCases($sNow=null) { try { - global $sFilter; + global $argvx; global $sNow; $log = array(); - if ($sFilter != '' && strpos($sFilter, 'scheduler') === false) { + if ($argvx != "" && strpos($argvx, "scheduler") === false) { return false; } @@ -846,9 +627,9 @@ function executeScheduledCases($sNow=null) function executeUpdateAppTitle() { try { - global $sFilter; + global $argvx; - if ($sFilter != "" && strpos($sFilter, "update-case-labels") === false) { + if ($argvx != "" && strpos($argvx, "update-case-labels") === false) { return false; } @@ -897,9 +678,9 @@ function executeUpdateAppTitle() function executeCaseSelfService() { try { - global $sFilter; + global $argvx; - if ($sFilter != "" && strpos($sFilter, "unassigned-case") === false) { + if ($argvx != "" && strpos($argvx, "unassigned-case") === false) { return false; } @@ -1117,11 +898,11 @@ function setExecutionResultMessage($m, $t='') function fillReportByUser () { try { - global $sFilter; + global $argvx; global $dateInit; global $dateFinish; - if (strpos($sFilter, 'report_by_user') === false) { + if (strpos($argvx, "report_by_user") === false) { return false; } if ($dateInit == null) { @@ -1147,11 +928,11 @@ function fillReportByUser () function fillReportByProcess () { try { - global $sFilter; + global $argvx; global $dateInit; global $dateFinish; - if (strpos($sFilter, 'report_by_process') === false) { + if (strpos($argvx, "report_by_process") === false) { return false; } diff --git a/workflow/engine/bin/ldapcron.php b/workflow/engine/bin/ldapcron.php index 99a188f0d..3b8e41147 100644 --- a/workflow/engine/bin/ldapcron.php +++ b/workflow/engine/bin/ldapcron.php @@ -1,167 +1,3 @@ 0 && $arrayAux[count($arrayAux) - 1] == "workflow") { - $arrayPathToCron = $arrayAux; - $flagPathToCron = true; - } - } - - if (!$flagPathToCron) { - throw new Exception("Error: Unable to execute the LDAP Advanced CRON, the path is incorrect"); - } - - $pathHome = implode(PATH_SEP, $arrayPathToCron) . PATH_SEP; - - array_pop($arrayPathToCron); - - $pathTrunk = implode(PATH_SEP, $arrayPathToCron) . PATH_SEP; - - array_pop($arrayPathToCron); - - $pathOutTrunk = implode(PATH_SEP, $arrayPathToCron) . PATH_SEP; - - define("PATH_HOME", $pathHome); - define("PATH_TRUNK", $pathTrunk); - define("PATH_OUTTRUNK", $pathOutTrunk); - - //Check deprecated files - $fileBinDeprecated = PATH_HOME . "engine" . PATH_SEP . "bin" . PATH_SEP . "plugins" . PATH_SEP . "ldapadvanced.php"; - - if (file_exists($fileBinDeprecated)) { - @unlink($fileBinDeprecated); - - if (file_exists($fileBinDeprecated)) { - throw new Exception("Error: LDAP Advanced CRON requires that the \"$fileBinDeprecated\" file has been deleted."); - } - } - - //Include files - require_once(PATH_HOME . "engine" . PATH_SEP . "config" . PATH_SEP . "paths.php"); - - G::LoadClass("system"); - - $config = System::getSystemConfiguration(); - - ini_set("date.timezone", $config["time_zone"]); - - //CRON command options - $arrayCommandOption = array( - "force" => "+force", - "debug" => "+debug" - ); - - //CRON status - $flagIsRunning = false; - $lastExecution = ""; - $processcTimeProcess = 0; - $processcTimeStart = 0; - - $force = in_array($arrayCommandOption["force"], $argv); - $debug = in_array($arrayCommandOption["debug"], $argv); - - if (!$force && file_exists(PATH_DATA . "ldapcron")) { - //Windows flag - //Get data of CRON file - $arrayCron = unserialize(trim(file_get_contents(PATH_DATA . "ldapcron"))); - - $flagIsRunning = (boolean)($arrayCron["flagIsRunning"]); - $lastExecution = $arrayCron["lastExecution"]; - $processcTimeProcess = (isset($arrayCron["processcTimeProcess"]))? (int)($arrayCron["processcTimeProcess"]) : 10; //Minutes - $processcTimeStart = (isset($arrayCron["processcTimeStart"]))? $arrayCron["processcTimeStart"] : 0; - } - - if (!$force && $osIsLinux) { - //Linux flag - //Check if CRON it's running - exec("ps -fea | grep ldapcron.php | grep -v grep", $arrayOutput); - - //This validation is when the CRON is called from a symlink - $count = 0; - - foreach ($arrayOutput as $value) { - if (preg_match("/^.*ldapcron\.php.*$/", $value)) { - $count++; - } - } - - if ($count > 1) { - $flagIsRunning = true; - } - } - - if ($force || !$flagIsRunning) { - //Start CRON - $arrayCron = array("flagIsRunning" => "1", "lastExecution" => date("Y-m-d H:i:s")); - file_put_contents(PATH_DATA . "ldapcron", serialize($arrayCron)); - - try { - $ldapCronSinglePath = PATH_HOME . "engine" . PATH_SEP . "bin" . PATH_SEP . "ldapcron_single.php"; - - $workspace = ""; - - for ($i = 1; $i <= count($argv) - 1; $i++) { - if (preg_match("/^\+w(.+)$/", $argv[$i], $arrayMatch)) { - $workspace = $arrayMatch[1]; - break; - } - } - - $countw = 0; - - if ($workspace == "") { - $d = dir(PATH_DB); - - while (($entry = $d->read()) !== false) { - if ($entry != "" && $entry != "." && $entry != "..") { - if (is_dir(PATH_DB . $entry)) { - if (file_exists(PATH_DB . $entry . PATH_SEP . "db.php")) { - $countw++; - - passthru("php -f \"$ldapCronSinglePath\" " . (($debug)? 1 : 0) . " $entry \"" . base64_encode(PATH_HOME) . "\" \"" . base64_encode(PATH_TRUNK) . "\" \"" . base64_encode(PATH_OUTTRUNK) . "\""); - } - } - } - } - } else { - if (!is_dir(PATH_DB . $workspace) || !file_exists(PATH_DB . $workspace . PATH_SEP . "db.php")) { - throw new Exception("Error: The workspace \"$workspace\" does not exist"); - } - - $countw++; - - passthru("php -f \"$ldapCronSinglePath\" " . (($debug)? 1 : 0) . " $workspace \"" . base64_encode(PATH_HOME) . "\" \"" . base64_encode(PATH_TRUNK) . "\" \"" . base64_encode(PATH_OUTTRUNK) . "\""); - } - - eprintln("Finished $countw workspaces processed"); - } catch (Exception $e) { - throw $e; - } - - //End CRON - $arrayCron = array("flagIsRunning" => "0", "lastExecution" => date("Y-m-d H:i:s")); - file_put_contents(PATH_DATA . "ldapcron", serialize($arrayCron)); - } else { - eprintln("The LDAP Advanced CRON is running, please wait for it to finish\nStarted in $lastExecution"); - eprintln("If do you want force the execution use the option \"" . $arrayCommandOption["force"] . "\", example: php -f ldapcron.php +wworkflow " . $arrayCommandOption["force"] ,"green"); - } - - echo "Done!\n"; -} catch (Exception $e) { - echo $e->getMessage() . "\n"; -} +require_once("cron.php"); diff --git a/workflow/engine/bin/ldapcron_single.php b/workflow/engine/bin/ldapcron_single.php deleted file mode 100644 index 652f7b6df..000000000 --- a/workflow/engine/bin/ldapcron_single.php +++ /dev/null @@ -1,489 +0,0 @@ -"), array("", "", ""), $phpCode); - - eval($phpCode); - - $dsn = $DB_ADAPTER . "://" . $DB_USER . ":" . $DB_PASS . "@" . $DB_HOST . "/" . $DB_NAME; - $dsnRbac = $DB_ADAPTER . "://" . $DB_RBAC_USER . ":" . $DB_RBAC_PASS . "@" . $DB_RBAC_HOST . "/" . $DB_RBAC_NAME; - $dsnRp = $DB_ADAPTER . "://" . $DB_REPORT_USER . ":" . $DB_REPORT_PASS . "@" . $DB_REPORT_HOST . "/" . $DB_REPORT_NAME; - - switch ($DB_ADAPTER) { - case "mysql": - $dsn .= "?encoding=utf8"; - $dsnRbac .= "?encoding=utf8"; - break; - case "mssql": - //$dsn .= "?sendStringAsUnicode=false"; - //$dsnRbac .= "?sendStringAsUnicode=false"; - break; - default: - break; - } - - $pro = array(); - $pro["datasources"]["workflow"]["connection"] = $dsn; - $pro["datasources"]["workflow"]["adapter"] = $DB_ADAPTER; - $pro["datasources"]["rbac"]["connection"] = $dsnRbac; - $pro["datasources"]["rbac"]["adapter"] = $DB_ADAPTER; - $pro["datasources"]["rp"]["connection"] = $dsnRp; - $pro["datasources"]["rp"]["adapter"] = $DB_ADAPTER; - //$pro["datasources"]["dbarray"]["connection"] = "dbarray://user:pass@localhost/pm_os"; - //$pro["datasources"]["dbarray"]["adapter"] = "dbarray"; - - $oFile = fopen(PATH_CORE . "config" . PATH_SEP . "_databases_.php", "w"); - fwrite($oFile, ""); - fclose($oFile); - - Propel::init(PATH_CORE . "config" . PATH_SEP . "_databases_.php"); - //Creole::registerDriver("dbarray", "creole.contrib.DBArrayConnection"); - - //Enable RBAC - Bootstrap::LoadSystem("rbac"); - - $rbac = &RBAC::getSingleton(PATH_DATA, session_id()); - $rbac->sSystem = "PROCESSMAKER"; - - eprintln("Processing workspace: " . $workflow, "green"); - - try { - require_once(PATH_HOME . "engine" . PATH_SEP . "classes" . PATH_SEP . "class.ldapAdvanced.php"); - require_once(PATH_HOME . "engine" . PATH_SEP . "methods" . PATH_SEP . "services" . PATH_SEP . "ldapadvanced.php"); - - $obj = new ldapadvancedClassCron(); - - $obj->executeCron((bool)($argv[1])); - } catch (Exception $e) { - echo $e->getMessage() . "\n"; - - eprintln("Problem in workspace: " . $workflow . " it was omitted.", "red"); - } - - eprintln(); - } - - if (file_exists(PATH_CORE . "config" . PATH_SEP . "_databases_.php")) { - unlink(PATH_CORE . "config" . PATH_SEP . "_databases_.php"); - } -} catch (Exception $e) { - echo $e->getMessage() . "\n"; -} - diff --git a/workflow/engine/bin/messageeventcron.php b/workflow/engine/bin/messageeventcron.php index 60d79ee13..3b8e41147 100644 --- a/workflow/engine/bin/messageeventcron.php +++ b/workflow/engine/bin/messageeventcron.php @@ -1,147 +1,3 @@ 0 && $arrayAux[count($arrayAux) - 1] == "workflow") { - $arrayPathToCron = $arrayAux; - $flagPathToCron = true; - } - - if (!$flagPathToCron) { - throw new Exception("Error: Unable to execute the Message-Event CRON, the path is incorrect"); - } - - $pathHome = implode(PATH_SEP, $arrayPathToCron) . PATH_SEP; - - array_pop($arrayPathToCron); - - $pathTrunk = implode(PATH_SEP, $arrayPathToCron) . PATH_SEP; - - array_pop($arrayPathToCron); - - $pathOutTrunk = implode(PATH_SEP, $arrayPathToCron) . PATH_SEP; - - define("PATH_HOME", $pathHome); - define("PATH_TRUNK", $pathTrunk); - define("PATH_OUTTRUNK", $pathOutTrunk); - - //Include files - require_once(PATH_HOME . "engine" . PATH_SEP . "config" . PATH_SEP . "paths.php"); - - G::LoadClass("system"); - - $config = System::getSystemConfiguration(); - - G::LoadSystem('inputfilter'); - $filter = new InputFilter(); - $config['time_zone'] = $filter->validateInput($config['time_zone']); - - ini_set("date.timezone", $config["time_zone"]); - - //CRON command options - $arrayCommandOption = array( - "force" => "+force" - ); - - //CRON status - $flagIsRunning = false; - $lastExecution = ""; - $processcTimeProcess = 0; - $processcTimeStart = 0; - - $force = in_array($arrayCommandOption["force"], $argv); - - if (!$force && file_exists(PATH_DATA . "messageeventcron")) { - //Windows flag - //Get data of CRON file - $arrayCron = unserialize(trim(file_get_contents(PATH_DATA . "messageeventcron"))); - - $flagIsRunning = (boolean)($arrayCron["flagIsRunning"]); - $lastExecution = $arrayCron["lastExecution"]; - $processcTimeProcess = (isset($arrayCron["processcTimeProcess"]))? (int)($arrayCron["processcTimeProcess"]) : 10; //Minutes - $processcTimeStart = (isset($arrayCron["processcTimeStart"]))? $arrayCron["processcTimeStart"] : 0; - } - - if (!$force && $osIsLinux) { - //Linux flag - //Check if CRON it's running - exec("ps -fea | grep messageeventcron.php | grep -v grep", $arrayOutput); - - if (count($arrayOutput) > 1) { - $flagIsRunning = true; - } - } - - if ($force || !$flagIsRunning) { - //Start CRON - $arrayCron = array("flagIsRunning" => "1", "lastExecution" => date("Y-m-d H:i:s")); - file_put_contents(PATH_DATA . "messageeventcron", serialize($arrayCron)); - - try { - $messageEventCronSinglePath = PATH_CORE . "bin" . PATH_SEP . "messageeventcron_single.php"; - - $workspace = ""; - - for ($i = 1; $i <= count($argv) - 1; $i++) { - if (preg_match("/^\+w(.+)$/", $argv[$i], $arrayMatch)) { - $workspace = $arrayMatch[1]; - break; - } - } - - $countw = 0; - - if ($workspace == "") { - $d = dir(PATH_DB); - - while (($entry = $d->read()) !== false) { - if ($entry != "" && $entry != "." && $entry != "..") { - if (is_dir(PATH_DB . $entry)) { - if (file_exists(PATH_DB . $entry . PATH_SEP . "db.php")) { - $countw++; - - passthru("php -f \"$messageEventCronSinglePath\" $entry \"" . base64_encode(PATH_HOME) . "\" \"" . base64_encode(PATH_TRUNK) . "\" \"" . base64_encode(PATH_OUTTRUNK) . "\""); - } - } - } - } - } else { - if (!is_dir(PATH_DB . $workspace) || !file_exists(PATH_DB . $workspace . PATH_SEP . "db.php")) { - throw new Exception("Error: The workspace \"$workspace\" does not exist"); - } - - $countw++; - - passthru("php -f \"$messageEventCronSinglePath\" $workspace \"" . base64_encode(PATH_HOME) . "\" \"" . base64_encode(PATH_TRUNK) . "\" \"" . base64_encode(PATH_OUTTRUNK) . "\""); - } - - eprintln("Finished $countw workspaces processed"); - } catch (Exception $e) { - throw $e; - } - - //End CRON - $arrayCron = array("flagIsRunning" => "0", "lastExecution" => date("Y-m-d H:i:s")); - file_put_contents(PATH_DATA . "messageeventcron", serialize($arrayCron)); - } else { - eprintln("The Message-Event CRON is running, please wait for it to finish\nStarted in $lastExecution"); - eprintln("If do you want force the execution use the option \"" . $arrayCommandOption["force"] . "\", example: php -f messageeventcron.php +wworkflow " . $arrayCommandOption["force"] ,"green"); - } - - echo "Done!\n"; -} catch (Exception $e) { - echo $e->getMessage() . "\n"; -} +require_once("cron.php"); diff --git a/workflow/engine/bin/messageeventcron_single.php b/workflow/engine/bin/messageeventcron_single.php deleted file mode 100644 index c87fcce59..000000000 --- a/workflow/engine/bin/messageeventcron_single.php +++ /dev/null @@ -1,243 +0,0 @@ -add(PATH_TRUNK . "framework" . PATH_SEP . "src" . PATH_SEP, "Maveriks"); - $classLoader->add(PATH_TRUNK . "workflow" . PATH_SEP . "engine" . PATH_SEP . "src" . PATH_SEP, "ProcessMaker"); - $classLoader->add(PATH_TRUNK . "workflow" . PATH_SEP . "engine" . PATH_SEP . "src" . PATH_SEP); - - //Add vendors to autoloader - //$classLoader->add(PATH_TRUNK . "vendor" . PATH_SEP . "luracast" . PATH_SEP . "restler" . PATH_SEP . "vendor", "Luracast"); - //$classLoader->add(PATH_TRUNK . "vendor" . PATH_SEP . "bshaffer" . PATH_SEP . "oauth2-server-php" . PATH_SEP . "src" . PATH_SEP, "OAuth2"); - $classLoader->addClass("Bootstrap", PATH_TRUNK . "gulliver" . PATH_SEP . "system" . PATH_SEP . "class.bootstrap.php"); - - $classLoader->addModelClassPath(PATH_TRUNK . "workflow" . PATH_SEP . "engine" . PATH_SEP . "classes" . PATH_SEP . "model" . PATH_SEP); - - //Load classes - G::LoadThirdParty("pear/json", "class.json"); - G::LoadThirdParty("smarty/libs", "Smarty.class"); - G::LoadSystem("error"); - G::LoadSystem("dbconnection"); - G::LoadSystem("dbsession"); - G::LoadSystem("dbrecordset"); - G::LoadSystem("dbtable"); - G::LoadSystem("rbac" ); - G::LoadSystem("publisher"); - G::LoadSystem("templatePower"); - G::LoadSystem("xmlDocument"); - G::LoadSystem("xmlform"); - G::LoadSystem("xmlformExtension"); - G::LoadSystem("form"); - G::LoadSystem("menu"); - G::LoadSystem("xmlMenu"); - G::LoadSystem("dvEditor"); - G::LoadSystem("table"); - G::LoadSystem("pagedTable"); - G::LoadClass("system"); - - require_once("propel/Propel.php"); - require_once("creole/Creole.php"); - - $config = System::getSystemConfiguration(); - - $e_all = (defined("E_DEPRECATED"))? E_ALL & ~E_DEPRECATED : E_ALL; - $e_all = (defined("E_STRICT"))? $e_all & ~E_STRICT : $e_all; - $e_all = ($config["debug"])? $e_all : $e_all & ~E_NOTICE; - - G::LoadSystem('inputfilter'); - $filter = new InputFilter(); - $config['debug'] = $filter->validateInput($config['debug']); - $config['wsdl_cache'] = $filter->validateInput($config['wsdl_cache'],'int'); - $config['time_zone'] = $filter->validateInput($config['time_zone']); - //Do not change any of these settings directly, use env.ini instead - ini_set("display_errors", $config["debug"]); - ini_set("error_reporting", $e_all); - ini_set("short_open_tag", "On"); - ini_set("default_charset", "UTF-8"); - //ini_set("memory_limit", $config["memory_limit"]); - ini_set("soap.wsdl_cache_enabled", $config["wsdl_cache"]); - ini_set("date.timezone", $config["time_zone"]); - - define("DEBUG_SQL_LOG", $config["debug_sql"]); - define("DEBUG_TIME_LOG", $config["debug_time"]); - define("DEBUG_CALENDAR_LOG", $config["debug_calendar"]); - define("MEMCACHED_ENABLED", $config["memcached"]); - define("MEMCACHED_SERVER", $config["memcached_server"]); - define("TIME_ZONE", $config["time_zone"]); - - //require_once(PATH_GULLIVER . PATH_SEP . "class.bootstrap.php"); - //define("PATH_GULLIVER_HOME", PATH_TRUNK . "gulliver" . PATH_SEP); - - spl_autoload_register(array("Bootstrap", "autoloadClass")); - - //DATABASE propel classes used in "Cases" Options - Bootstrap::registerClass("PMLicensedFeatures", PATH_CLASSES . "class.licensedFeatures.php"); - Bootstrap::registerClass("calendar", PATH_CLASSES . "class.calendar.php"); - - Bootstrap::registerClass("wsResponse", PATH_HOME . "engine" . PATH_SEP . "classes" . PATH_SEP . "class.wsResponse.php"); - - G::LoadClass("processes"); - G::LoadClass("derivation"); - G::LoadClass("dates"); //Load Criteria - - //Workflow - $workflow = $argv[1]; - - if (is_dir(PATH_DB . $workflow) && file_exists(PATH_DB . $workflow . PATH_SEP . "db.php")) { - define("SYS_SYS", $workflow); - - include_once(PATH_HOME . "engine" . PATH_SEP . "config" . PATH_SEP . "paths_installed.php"); - include_once(PATH_HOME . "engine" . PATH_SEP . "config" . PATH_SEP . "paths.php"); - - //PM Paths DATA - define("PATH_DATA_SITE", PATH_DATA . "sites/" . SYS_SYS . "/"); - define("PATH_DOCUMENT", PATH_DATA_SITE . "files/"); - define("PATH_DATA_MAILTEMPLATES", PATH_DATA_SITE . "mailTemplates/"); - define("PATH_DATA_PUBLIC", PATH_DATA_SITE . "public/"); - define("PATH_DATA_REPORTS", PATH_DATA_SITE . "reports/"); - define("PATH_DYNAFORM", PATH_DATA_SITE . "xmlForms/"); - define("PATH_IMAGES_ENVIRONMENT_FILES", PATH_DATA_SITE . "usersFiles" . PATH_SEP); - define("PATH_IMAGES_ENVIRONMENT_USERS", PATH_DATA_SITE . "usersPhotographies" . PATH_SEP); - - if (is_file(PATH_DATA_SITE.PATH_SEP . ".server_info")) { - $SERVER_INFO = file_get_contents(PATH_DATA_SITE.PATH_SEP.".server_info"); - $SERVER_INFO = unserialize($SERVER_INFO); - - define("SERVER_NAME", $SERVER_INFO ["SERVER_NAME"]); - define("SERVER_PORT", $SERVER_INFO ["SERVER_PORT"]); - } else { - eprintln("WARNING! No server info found!", "red"); - } - - //DB - $phpCode = ""; - - $fileDb = fopen(PATH_DB . $workflow . PATH_SEP . "db.php", "r"); - - if ($fileDb) { - while (!feof($fileDb)) { - $buffer = fgets($fileDb, 4096); //Read a line - - $phpCode .= preg_replace("/define\s*\(\s*[\x22\x27](.*)[\x22\x27]\s*,\s*(\x22.*\x22|\x27.*\x27)\s*\)\s*;/i", "\$$1 = $2;", $buffer); - } - - fclose($fileDb); - } - - $phpCode = str_replace(array(""), array("", "", ""), $phpCode); - - eval($phpCode); - - $dsn = $DB_ADAPTER . "://" . $DB_USER . ":" . $DB_PASS . "@" . $DB_HOST . "/" . $DB_NAME; - $dsnRbac = $DB_ADAPTER . "://" . $DB_RBAC_USER . ":" . $DB_RBAC_PASS . "@" . $DB_RBAC_HOST . "/" . $DB_RBAC_NAME; - $dsnRp = $DB_ADAPTER . "://" . $DB_REPORT_USER . ":" . $DB_REPORT_PASS . "@" . $DB_REPORT_HOST . "/" . $DB_REPORT_NAME; - - switch ($DB_ADAPTER) { - case "mysql": - $dsn .= "?encoding=utf8"; - $dsnRbac .= "?encoding=utf8"; - break; - case "mssql": - //$dsn .= "?sendStringAsUnicode=false"; - //$dsnRbac .= "?sendStringAsUnicode=false"; - break; - default: - break; - } - - $pro = array(); - $pro["datasources"]["workflow"]["connection"] = $dsn; - $pro["datasources"]["workflow"]["adapter"] = $DB_ADAPTER; - $pro["datasources"]["rbac"]["connection"] = $dsnRbac; - $pro["datasources"]["rbac"]["adapter"] = $DB_ADAPTER; - $pro["datasources"]["rp"]["connection"] = $dsnRp; - $pro["datasources"]["rp"]["adapter"] = $DB_ADAPTER; - //$pro["datasources"]["dbarray"]["connection"] = "dbarray://user:pass@localhost/pm_os"; - //$pro["datasources"]["dbarray"]["adapter"] = "dbarray"; - - $oFile = fopen(PATH_CORE . "config" . PATH_SEP . "_databases_.php", "w"); - fwrite($oFile, ""); - fclose($oFile); - - Propel::init(PATH_CORE . "config" . PATH_SEP . "_databases_.php"); - //Creole::registerDriver("dbarray", "creole.contrib.DBArrayConnection"); - - //Enable RBAC - Bootstrap::LoadSystem("rbac"); - - $rbac = &RBAC::getSingleton(PATH_DATA, session_id()); - $rbac->sSystem = "PROCESSMAKER"; - - if (!defined("DB_ADAPTER")) { - define("DB_ADAPTER", $DB_ADAPTER); - } - - eprintln("Processing workspace: " . $workflow, "green"); - - try { - $messageApplication = new \ProcessMaker\BusinessModel\MessageApplication(); - - $messageApplication->catchMessageEvent(true); - } catch (Exception $e) { - echo $e->getMessage() . "\n"; - - eprintln("Problem in workspace: " . $workflow . " it was omitted.", "red"); - } - - eprintln(); - } - - if (file_exists(PATH_CORE . "config" . PATH_SEP . "_databases_.php")) { - unlink(PATH_CORE . "config" . PATH_SEP . "_databases_.php"); - } -} catch (Exception $e) { - echo $e->getMessage() . "\n"; -} - diff --git a/workflow/engine/bin/timereventcron.php b/workflow/engine/bin/timereventcron.php index b67623d97..3b8e41147 100644 --- a/workflow/engine/bin/timereventcron.php +++ b/workflow/engine/bin/timereventcron.php @@ -1,147 +1,3 @@ 0 && $arrayAux[count($arrayAux) - 1] == "workflow") { - $arrayPathToCron = $arrayAux; - $flagPathToCron = true; - } - - if (!$flagPathToCron) { - throw new Exception("Error: Unable to execute the Timer-Event CRON, the path is incorrect"); - } - - $pathHome = implode(PATH_SEP, $arrayPathToCron) . PATH_SEP; - - array_pop($arrayPathToCron); - - $pathTrunk = implode(PATH_SEP, $arrayPathToCron) . PATH_SEP; - - array_pop($arrayPathToCron); - - $pathOutTrunk = implode(PATH_SEP, $arrayPathToCron) . PATH_SEP; - - define("PATH_HOME", $pathHome); - define("PATH_TRUNK", $pathTrunk); - define("PATH_OUTTRUNK", $pathOutTrunk); - - //Include files - require_once(PATH_HOME . "engine" . PATH_SEP . "config" . PATH_SEP . "paths.php"); - - G::LoadClass("system"); - - $config = System::getSystemConfiguration(); - - G::LoadSystem('inputfilter'); - $filter = new InputFilter(); - $config['time_zone'] = $filter->validateInput($config['time_zone']); - - ini_set("date.timezone", $config["time_zone"]); - - //CRON command options - $arrayCommandOption = array( - "force" => "+force" - ); - - //CRON status - $flagIsRunning = false; - $lastExecution = ""; - $processcTimeProcess = 0; - $processcTimeStart = 0; - - $force = in_array($arrayCommandOption["force"], $argv); - - if (!$force && file_exists(PATH_DATA . "timereventcron")) { - //Windows flag - //Get data of CRON file - $arrayCron = unserialize(trim(file_get_contents(PATH_DATA . "timereventcron"))); - - $flagIsRunning = (boolean)($arrayCron["flagIsRunning"]); - $lastExecution = $arrayCron["lastExecution"]; - $processcTimeProcess = (isset($arrayCron["processcTimeProcess"]))? (int)($arrayCron["processcTimeProcess"]) : 10; //Minutes - $processcTimeStart = (isset($arrayCron["processcTimeStart"]))? $arrayCron["processcTimeStart"] : 0; - } - - if (!$force && $osIsLinux) { - //Linux flag - //Check if CRON it's running - exec("ps -fea | grep timereventcron.php | grep -v grep", $arrayOutput); - - if (count($arrayOutput) > 1) { - $flagIsRunning = true; - } - } - - if ($force || !$flagIsRunning) { - //Start CRON - $arrayCron = array("flagIsRunning" => "1", "lastExecution" => date("Y-m-d H:i:s")); - file_put_contents(PATH_DATA . "timereventcron", serialize($arrayCron)); - - try { - $messageEventCronSinglePath = PATH_CORE . "bin" . PATH_SEP . "timereventcron_single.php"; - - $workspace = ""; - - for ($i = 1; $i <= count($argv) - 1; $i++) { - if (preg_match("/^\+w(.+)$/", $argv[$i], $arrayMatch)) { - $workspace = $arrayMatch[1]; - break; - } - } - - $countw = 0; - - if ($workspace == "") { - $d = dir(PATH_DB); - - while (($entry = $d->read()) !== false) { - if ($entry != "" && $entry != "." && $entry != "..") { - if (is_dir(PATH_DB . $entry)) { - if (file_exists(PATH_DB . $entry . PATH_SEP . "db.php")) { - $countw++; - - passthru("php -f \"$messageEventCronSinglePath\" $entry \"" . base64_encode(PATH_HOME) . "\" \"" . base64_encode(PATH_TRUNK) . "\" \"" . base64_encode(PATH_OUTTRUNK) . "\""); - } - } - } - } - } else { - if (!is_dir(PATH_DB . $workspace) || !file_exists(PATH_DB . $workspace . PATH_SEP . "db.php")) { - throw new Exception("Error: The workspace \"$workspace\" does not exist"); - } - - $countw++; - - passthru("php -f \"$messageEventCronSinglePath\" $workspace \"" . base64_encode(PATH_HOME) . "\" \"" . base64_encode(PATH_TRUNK) . "\" \"" . base64_encode(PATH_OUTTRUNK) . "\""); - } - - eprintln("Finished $countw workspaces processed"); - } catch (Exception $e) { - throw $e; - } - - //End CRON - $arrayCron = array("flagIsRunning" => "0", "lastExecution" => date("Y-m-d H:i:s")); - file_put_contents(PATH_DATA . "timereventcron", serialize($arrayCron)); - } else { - eprintln("The Timer-Event CRON is running, please wait for it to finish\nStarted in $lastExecution"); - eprintln("If do you want force the execution use the option \"" . $arrayCommandOption["force"] . "\", example: php -f timereventcron.php +wworkflow " . $arrayCommandOption["force"] ,"green"); - } - - echo "Done!\n"; -} catch (Exception $e) { - echo $e->getMessage() . "\n"; -} +require_once("cron.php"); diff --git a/workflow/engine/bin/timereventcron_single.php b/workflow/engine/bin/timereventcron_single.php deleted file mode 100644 index 304626a26..000000000 --- a/workflow/engine/bin/timereventcron_single.php +++ /dev/null @@ -1,244 +0,0 @@ -add(PATH_TRUNK . "framework" . PATH_SEP . "src" . PATH_SEP, "Maveriks"); - $classLoader->add(PATH_TRUNK . "workflow" . PATH_SEP . "engine" . PATH_SEP . "src" . PATH_SEP, "ProcessMaker"); - $classLoader->add(PATH_TRUNK . "workflow" . PATH_SEP . "engine" . PATH_SEP . "src" . PATH_SEP); - - //Add vendors to autoloader - //$classLoader->add(PATH_TRUNK . "vendor" . PATH_SEP . "luracast" . PATH_SEP . "restler" . PATH_SEP . "vendor", "Luracast"); - //$classLoader->add(PATH_TRUNK . "vendor" . PATH_SEP . "bshaffer" . PATH_SEP . "oauth2-server-php" . PATH_SEP . "src" . PATH_SEP, "OAuth2"); - $classLoader->addClass("Bootstrap", PATH_TRUNK . "gulliver" . PATH_SEP . "system" . PATH_SEP . "class.bootstrap.php"); - - $classLoader->addModelClassPath(PATH_TRUNK . "workflow" . PATH_SEP . "engine" . PATH_SEP . "classes" . PATH_SEP . "model" . PATH_SEP); - - //Load classes - G::LoadThirdParty("pear/json", "class.json"); - G::LoadThirdParty("smarty/libs", "Smarty.class"); - G::LoadSystem("error"); - G::LoadSystem("dbconnection"); - G::LoadSystem("dbsession"); - G::LoadSystem("dbrecordset"); - G::LoadSystem("dbtable"); - G::LoadSystem("rbac" ); - G::LoadSystem("publisher"); - G::LoadSystem("templatePower"); - G::LoadSystem("xmlDocument"); - G::LoadSystem("xmlform"); - G::LoadSystem("xmlformExtension"); - G::LoadSystem("form"); - G::LoadSystem("menu"); - G::LoadSystem("xmlMenu"); - G::LoadSystem("dvEditor"); - G::LoadSystem("table"); - G::LoadSystem("pagedTable"); - G::LoadClass("system"); - - require_once("propel/Propel.php"); - require_once("creole/Creole.php"); - - $config = System::getSystemConfiguration(); - - $e_all = (defined("E_DEPRECATED"))? E_ALL & ~E_DEPRECATED : E_ALL; - $e_all = (defined("E_STRICT"))? $e_all & ~E_STRICT : $e_all; - $e_all = ($config["debug"])? $e_all : $e_all & ~E_NOTICE; - - G::LoadSystem('inputfilter'); - $filter = new InputFilter(); - $config['debug'] = $filter->validateInput($config['debug']); - $config['wsdl_cache'] = $filter->validateInput($config['wsdl_cache'],'int'); - $config['time_zone'] = $filter->validateInput($config['time_zone']); - //Do not change any of these settings directly, use env.ini instead - ini_set("display_errors", $config["debug"]); - ini_set("error_reporting", $e_all); - ini_set("short_open_tag", "On"); - ini_set("default_charset", "UTF-8"); - //ini_set("memory_limit", $config["memory_limit"]); - ini_set("soap.wsdl_cache_enabled", $config["wsdl_cache"]); - ini_set("date.timezone", $config["time_zone"]); - - define("DEBUG_SQL_LOG", $config["debug_sql"]); - define("DEBUG_TIME_LOG", $config["debug_time"]); - define("DEBUG_CALENDAR_LOG", $config["debug_calendar"]); - define("MEMCACHED_ENABLED", $config["memcached"]); - define("MEMCACHED_SERVER", $config["memcached_server"]); - define("TIME_ZONE", $config["time_zone"]); - - //require_once(PATH_GULLIVER . PATH_SEP . "class.bootstrap.php"); - //define("PATH_GULLIVER_HOME", PATH_TRUNK . "gulliver" . PATH_SEP); - - spl_autoload_register(array("Bootstrap", "autoloadClass")); - - //DATABASE propel classes used in "Cases" Options - Bootstrap::registerClass("PMLicensedFeatures", PATH_CLASSES . "class.licensedFeatures.php"); - Bootstrap::registerClass("calendar", PATH_CLASSES . "class.calendar.php"); - - Bootstrap::registerClass("wsResponse", PATH_HOME . "engine" . PATH_SEP . "classes" . PATH_SEP . "class.wsResponse.php"); - - G::LoadClass("processes"); - G::LoadClass("derivation"); - G::LoadClass("spool"); - G::LoadClass("dates"); //Load Criteria - - //Workflow - $workflow = $argv[1]; - - if (is_dir(PATH_DB . $workflow) && file_exists(PATH_DB . $workflow . PATH_SEP . "db.php")) { - define("SYS_SYS", $workflow); - - include_once(PATH_HOME . "engine" . PATH_SEP . "config" . PATH_SEP . "paths_installed.php"); - include_once(PATH_HOME . "engine" . PATH_SEP . "config" . PATH_SEP . "paths.php"); - - //PM Paths DATA - define("PATH_DATA_SITE", PATH_DATA . "sites/" . SYS_SYS . "/"); - define("PATH_DOCUMENT", PATH_DATA_SITE . "files/"); - define("PATH_DATA_MAILTEMPLATES", PATH_DATA_SITE . "mailTemplates/"); - define("PATH_DATA_PUBLIC", PATH_DATA_SITE . "public/"); - define("PATH_DATA_REPORTS", PATH_DATA_SITE . "reports/"); - define("PATH_DYNAFORM", PATH_DATA_SITE . "xmlForms/"); - define("PATH_IMAGES_ENVIRONMENT_FILES", PATH_DATA_SITE . "usersFiles" . PATH_SEP); - define("PATH_IMAGES_ENVIRONMENT_USERS", PATH_DATA_SITE . "usersPhotographies" . PATH_SEP); - - if (is_file(PATH_DATA_SITE.PATH_SEP . ".server_info")) { - $SERVER_INFO = file_get_contents(PATH_DATA_SITE.PATH_SEP.".server_info"); - $SERVER_INFO = unserialize($SERVER_INFO); - - define("SERVER_NAME", $SERVER_INFO ["SERVER_NAME"]); - define("SERVER_PORT", $SERVER_INFO ["SERVER_PORT"]); - } else { - eprintln("WARNING! No server info found!", "red"); - } - - //DB - $phpCode = ""; - - $fileDb = fopen(PATH_DB . $workflow . PATH_SEP . "db.php", "r"); - - if ($fileDb) { - while (!feof($fileDb)) { - $buffer = fgets($fileDb, 4096); //Read a line - - $phpCode .= preg_replace("/define\s*\(\s*[\x22\x27](.*)[\x22\x27]\s*,\s*(\x22.*\x22|\x27.*\x27)\s*\)\s*;/i", "\$$1 = $2;", $buffer); - } - - fclose($fileDb); - } - - $phpCode = str_replace(array(""), array("", "", ""), $phpCode); - - eval($phpCode); - - $dsn = $DB_ADAPTER . "://" . $DB_USER . ":" . $DB_PASS . "@" . $DB_HOST . "/" . $DB_NAME; - $dsnRbac = $DB_ADAPTER . "://" . $DB_RBAC_USER . ":" . $DB_RBAC_PASS . "@" . $DB_RBAC_HOST . "/" . $DB_RBAC_NAME; - $dsnRp = $DB_ADAPTER . "://" . $DB_REPORT_USER . ":" . $DB_REPORT_PASS . "@" . $DB_REPORT_HOST . "/" . $DB_REPORT_NAME; - - switch ($DB_ADAPTER) { - case "mysql": - $dsn .= "?encoding=utf8"; - $dsnRbac .= "?encoding=utf8"; - break; - case "mssql": - //$dsn .= "?sendStringAsUnicode=false"; - //$dsnRbac .= "?sendStringAsUnicode=false"; - break; - default: - break; - } - - $pro = array(); - $pro["datasources"]["workflow"]["connection"] = $dsn; - $pro["datasources"]["workflow"]["adapter"] = $DB_ADAPTER; - $pro["datasources"]["rbac"]["connection"] = $dsnRbac; - $pro["datasources"]["rbac"]["adapter"] = $DB_ADAPTER; - $pro["datasources"]["rp"]["connection"] = $dsnRp; - $pro["datasources"]["rp"]["adapter"] = $DB_ADAPTER; - //$pro["datasources"]["dbarray"]["connection"] = "dbarray://user:pass@localhost/pm_os"; - //$pro["datasources"]["dbarray"]["adapter"] = "dbarray"; - - $oFile = fopen(PATH_CORE . "config" . PATH_SEP . "_databases_.php", "w"); - fwrite($oFile, ""); - fclose($oFile); - - Propel::init(PATH_CORE . "config" . PATH_SEP . "_databases_.php"); - //Creole::registerDriver("dbarray", "creole.contrib.DBArrayConnection"); - - //Enable RBAC - Bootstrap::LoadSystem("rbac"); - - $rbac = &RBAC::getSingleton(PATH_DATA, session_id()); - $rbac->sSystem = "PROCESSMAKER"; - - if (!defined("DB_ADAPTER")) { - define("DB_ADAPTER", $DB_ADAPTER); - } - - eprintln("Processing workspace: " . $workflow, "green"); - - try { - $timerEvent = new \ProcessMaker\BusinessModel\TimerEvent(); - - $timerEvent->startContinueCaseByTimerEvent(date("Y-m-d H:i:s"), true); - } catch (Exception $e) { - echo $e->getMessage() . "\n"; - - eprintln("Problem in workspace: " . $workflow . " it was omitted.", "red"); - } - - eprintln(); - } - - if (file_exists(PATH_CORE . "config" . PATH_SEP . "_databases_.php")) { - unlink(PATH_CORE . "config" . PATH_SEP . "_databases_.php"); - } -} catch (Exception $e) { - echo $e->getMessage() . "\n"; -} -