Merge remote branch 'upstream/master'

This commit is contained in:
Fernando Ontiveros
2012-07-04 17:15:19 -04:00
10 changed files with 4662 additions and 3990 deletions

View File

@@ -8,379 +8,496 @@ error_reporting(E_ALL);
ini_set('memory_limit', '128M');
if (!defined('SYS_LANG')) {
define('SYS_LANG', 'en');
define('SYS_LANG', 'en');
}
if (!defined('PATH_HOME')) {
if ( !defined('PATH_SEP') ) {
define('PATH_SEP', ( substr(PHP_OS, 0, 3) == 'WIN' ) ? '\\' : '/');
}
$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/";
if (!defined('PATH_SEP')) {
define('PATH_SEP', (substr(PHP_OS, 0, 3) == 'WIN') ? '\\' : '/');
}
define('PATH_HOME', $pathhome);
define('PATH_TRUNK', $pathTrunk);
define('PATH_OUTTRUNK', $pathOutTrunk);
$pathServices = 'engine' . PATH_SEP . 'methods' . PATH_SEP . 'services';
$docuroot = explode(PATH_SEP, str_replace($pathServices, '', dirname(__FILE__)));
require_once (PATH_HOME . 'engine' . PATH_SEP . 'config' . PATH_SEP . 'paths.php');
array_pop($docuroot);
array_pop($docuroot);
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" );
$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);
require_once (PATH_HOME . 'engine' . PATH_SEP . 'config' . PATH_SEP . 'paths.php');
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" );
}
require_once 'classes/model/AppDelegation.php';
require_once 'classes/model/Event.php';
require_once 'classes/model/AppEvent.php';
require_once 'classes/model/CaseScheduler.php';
//G::loadClass('pmScript');
require_once ("classes/model/Configuration.php");
require_once ("classes/model/AppCacheView.php");
require_once ("classes/model/AppDelegation.php");
require_once ("classes/model/Event.php");
require_once ("classes/model/AppEvent.php");
require_once ("classes/model/CaseScheduler.php");
//G::loadClass("pmScript");
//default values
//default values
$bCronIsRunning = false;
$sLastExecution = '';
if ( file_exists(PATH_DATA . 'cron') ) {
$aAux = unserialize( trim( @file_get_contents(PATH_DATA . 'cron')) );
$bCronIsRunning = (boolean)$aAux['bCronIsRunning'];
$sLastExecution = $aAux['sLastExecution'];
}
else {
//if not exists the file, just create a new one with current date
@file_put_contents(PATH_DATA . 'cron', serialize(array('bCronIsRunning' => '1', 'sLastExecution' => date('Y-m-d H:i:s'))));
if (file_exists(PATH_DATA . 'cron')) {
$arrayAux = unserialize(trim(@file_get_contents(PATH_DATA . 'cron')));
$bCronIsRunning = (boolean)($arrayAux['bCronIsRunning']);
$sLastExecution = $arrayAux['sLastExecution'];
} else {
//if not exists the file, just create a new one with current date
$arrayAux = array('bCronIsRunning' => '1', 'sLastExecution' => date('Y-m-d H:i:s'));
@file_put_contents(PATH_DATA . 'cron', serialize($arrayAux));
}
if (!defined('SYS_SYS')) {
$sObject = $argv[1];
$sNow = $argv[2];
$sFilter = '';
for($i=3; $i<count($argv); $i++){
$sFilter .= ' '.$argv[$i];
}
$sObject = $argv[1];
$sNow = $argv[2];
$sFilter = '';
$oDirectory = dir(PATH_DB);
if (is_dir(PATH_DB . $sObject)) {
saveLog ( 'main', 'action', "checking folder " . PATH_DB . $sObject );
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');
//***************** 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);
//print_r($SERVER_INFO);
define( 'SERVER_NAME', $SERVER_INFO ['SERVER_NAME']);
define( 'SERVER_PORT', $SERVER_INFO ['SERVER_PORT']);
} else {
eprintln("WARNING! No server info found!", 'red');
}
$sContent = file_get_contents(PATH_DB . $sObject . PATH_SEP . 'db.php');
$sContent = str_replace('<?php', '', $sContent);
$sContent = str_replace('<?', '', $sContent);
$sContent = str_replace('?>', '', $sContent);
$sContent = str_replace('define', '', $sContent);
$sContent = str_replace("('", "$", $sContent);
$sContent = str_replace("',", '=', $sContent);
$sContent = str_replace(");", ';', $sContent);
eval($sContent);
$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, '<?php global $pro;return $pro; ?>');
fclose($oFile);
Propel::init(PATH_CORE . 'config/_databases_.php');
//Creole::registerDriver('dbarray', 'creole.contrib.DBArrayConnection');
eprintln("Processing workspace: " . $sObject, 'green');
try{
processWorkspace();
}catch(Exception $e){
echo $e->getMessage();
eprintln("Probelm in workspace: " . $sObject.' it was omitted.', 'red');
}
eprintln();
for ($i = 3; $i < count($argv); $i++) {
$sFilter .= ' ' . $argv[$i];
}
}
unlink(PATH_CORE . 'config/_databases_.php');
}
else {
processWorkspace();
$oDirectory = dir(PATH_DB);
if (is_dir(PATH_DB . $sObject)) {
saveLog('main', 'action', "checking folder " . PATH_DB . $sObject);
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');
//***************** 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');
}
$sContent = file_get_contents(PATH_DB . $sObject . PATH_SEP . 'db.php');
$sContent = str_replace('<?php', '', $sContent);
$sContent = str_replace('<?', '', $sContent);
$sContent = str_replace('?>', '', $sContent);
$sContent = str_replace('define', '', $sContent);
$sContent = str_replace("('", "$", $sContent);
$sContent = str_replace("',", '=', $sContent);
$sContent = str_replace(");", ';', $sContent);
eval($sContent);
$dsn = $DB_ADAPTER . '://' . $DB_USER . ':' . $DB_PASS . '@' . $DB_HOST . '/' . $DB_NAME;
$dsnRbac = $DB_ADAPTER . '://' . $DB_RBAC_USER . ':' . $DB_RBAC_PASS . '@' . $DB_RBAC_HOST . '/';
$dsnRbac = $dsnRbac . $DB_RBAC_NAME;
$dsnRp = $DB_ADAPTER . '://' . $DB_REPORT_USER . ':' . $DB_REPORT_PASS . '@' . $DB_REPORT_HOST . '/';
$dsnRp = $dsnRp . $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, '<?php global $pro;return $pro; ?>');
fclose($oFile);
Propel::init(PATH_CORE . 'config/_databases_.php');
//Creole::registerDriver('dbarray', 'creole.contrib.DBArrayConnection');
eprintln("Processing workspace: " . $sObject, "green");
try {
processWorkspace();
} catch (Exception $e) {
echo $e->getMessage();
eprintln("Probelm in workspace: " . $sObject . " it was omitted.", "red");
}
eprintln();
}
}
unlink(PATH_CORE . 'config/_databases_.php');
} else {
processWorkspace();
}
//finally update the file
@file_put_contents(PATH_DATA . 'cron', serialize(array('bCronIsRunning' => '0', 'sLastExecution' => date('Y-m-d H:i:s'))));
$arrayAux = array('bCronIsRunning' => '0', 'sLastExecution' => date('Y-m-d H:i:s'));
@file_put_contents(PATH_DATA . 'cron', serialize($arrayAux));
function processWorkspace()
{
global $sLastExecution;
function processWorkspace() {
global $sLastExecution;
try {
resendEmails();
unpauseApplications();
calculateDuration();
executePlugins();
executeEvents($sLastExecution);
executeScheduledCases();
}
catch (Exception $oError) {
saveLog ("main", "error", "Error processing workspace : " . $oError->getMessage() . "\n" );
}
}
function resendEmails() {
global $sFilter;
if($sFilter!='' && strpos($sFilter, 'emails') === false) return false;
setExecutionMessage("Resending emails");
try {
G::LoadClass('spool');
$oSpool = new spoolRun();
$oSpool->resendEmails();
saveLog('resendEmails', 'action', 'Resending Emails', "c");
$aSpoolWarnings = $oSpool->getWarnings();
if( $aSpoolWarnings !== false ) {
foreach($aSpoolWarnings as $sWarning){
print('MAIL SPOOL WARNING: ' . $sWarning."\n");
saveLog('resendEmails', 'warning', 'MAIL SPOOL WARNING: ' . $sWarning);
}
try {
resendEmails();
unpauseApplications();
calculateDuration();
executePlugins();
executeEvents($sLastExecution);
executeScheduledCases();
executeUpdateAppTitle();
} catch (Exception $oError) {
saveLog("main", "error", "Error processing workspace : " . $oError->getMessage() . "\n");
}
setExecutionResultMessage('DONE');
}
catch (Exception $oError) {
setExecutionResultMessage('WITH ERRORS', 'error');
eprintln(" '-".$oError->getMessage(), 'red');
saveLog('resendEmails', 'error', 'Error Resending Emails: ' . $oError->getMessage());
}
}
function unpauseApplications() {
global $sFilter;
global $sNow;
if($sFilter!='' && strpos($sFilter, 'unpause') === false) return false;
setExecutionMessage("Unpausing applications");
function resendEmails()
{
global $sFilter;
try {
G::LoadClass('case');
$oCases = new Cases();
$oCases->ThrowUnpauseDaemon($sNow);
setExecutionResultMessage('DONE');
saveLog('unpauseApplications', 'action', 'Unpausing Applications');
}
catch (Exception $oError) {
setExecutionResultMessage('WITH ERRORS', 'error');
eprintln(" '-".$oError->getMessage(), 'red');
saveLog('unpauseApplications', 'error', 'Error Unpausing Applications: ' . $oError->getMessage());
}
}
if ($sFilter != '' && strpos($sFilter, 'emails') === false) {
return false;
}
function executePlugins(){
global $sFilter;
if($sFilter!='' && strpos($sFilter, 'plugins') === false) return false;
setExecutionMessage("Resending emails");
$pathCronPlugins = PATH_CORE.'bin'.PATH_SEP.'plugins'.PATH_SEP;
//erik: verify if the plugin dir exists
if (!is_dir($pathCronPlugins)) {
return false;
}
if ($handle = opendir( $pathCronPlugins )) {
while ( false !== ($file = readdir($handle))) {
if ( strpos($file, '.php',1) && is_file($pathCronPlugins . $file) ) {
$filename = str_replace('.php' , '', $file) ;
$className = $filename . 'ClassCron';
try {
G::LoadClass('spool');
include_once ( $pathCronPlugins . $file ); //$filename. ".php"
$oPlugin = new $className();
if (method_exists($oPlugin, 'executeCron')) {
$oPlugin->executeCron();
setExecutionMessage("Executing Plugins");
setExecutionResultMessage('DONE');
$oSpool = new spoolRun();
$oSpool->resendEmails();
saveLog('resendEmails', 'action', 'Resending Emails', "c");
$aSpoolWarnings = $oSpool->getWarnings();
if ( $aSpoolWarnings !== false ) {
foreach ($aSpoolWarnings as $sWarning) {
print('MAIL SPOOL WARNING: ' . $sWarning."\n");
saveLog('resendEmails', 'warning', 'MAIL SPOOL WARNING: ' . $sWarning);
}
}
}
setExecutionResultMessage('DONE');
} catch (Exception $oError) {
setExecutionResultMessage('WITH ERRORS', 'error');
eprintln(" '-".$oError->getMessage(), 'red');
saveLog('resendEmails', 'error', 'Error Resending Emails: ' . $oError->getMessage());
}
}
}
function calculateDuration() {
global $sFilter;
if($sFilter!='' && strpos($sFilter, 'calculate') === false) return false;
setExecutionMessage("Calculating Duration");
try {
$oAppDelegation = new AppDelegation();
$oAppDelegation->calculateDuration();
setExecutionResultMessage('DONE');
saveLog('calculateDuration', 'action', 'Calculating Duration');
}
catch (Exception $oError) {
setExecutionResultMessage('WITH ERRORS', 'error');
eprintln(" '-".$oError->getMessage(), 'red');
saveLog('calculateDuration', 'error', 'Error Calculating Duration: ' . $oError->getMessage());
}
}
function executeEvents($sLastExecution, $sNow=null) {
global $sFilter;
global $sNow;
$log = array();
if($sFilter!='' && strpos($sFilter, 'events') === false) return false;
setExecutionMessage("Executing events");
setExecutionResultMessage('PROCESSING');
try {
$oAppEvent = new AppEvent();
saveLog('executeEvents', 'action', "Executing Events $sLastExecution, $sNow ");
$n = $oAppEvent->executeEvents($sNow, false, $log);
foreach ($log as $value) {
saveLog('executeEvents', 'action', "Execute Events : $value, $sNow ");
}
setExecutionMessage("|- End Execution events");
setExecutionResultMessage("Processed $n");
//saveLog('executeEvents', 'action', $res );
}
catch (Exception $oError) {
setExecutionResultMessage('WITH ERRORS', 'error');
eprintln(" '-".$oError->getMessage(), 'red');
saveLog('calculateAlertsDueDate', 'Error', 'Error Executing Events: ' . $oError->getMessage());
}
}
function executeScheduledCases($sNow=null){
try{
function unpauseApplications()
{
global $sFilter;
global $sNow;
$log = array();
if($sFilter!='' && strpos($sFilter, 'scheduler') === false) return false;
setExecutionMessage("Executing the scheduled starting cases");
if ($sFilter != '' && strpos($sFilter, 'unpause') === false) {
return false;
}
setExecutionMessage("Unpausing applications");
try {
G::LoadClass('case');
$oCases = new Cases();
$oCases->ThrowUnpauseDaemon($sNow);
setExecutionResultMessage('DONE');
saveLog('unpauseApplications', 'action', 'Unpausing Applications');
} catch (Exception $oError) {
setExecutionResultMessage('WITH ERRORS', 'error');
eprintln(" '-".$oError->getMessage(), 'red');
saveLog('unpauseApplications', 'error', 'Error Unpausing Applications: ' . $oError->getMessage());
}
}
function executePlugins()
{
global $sFilter;
if ($sFilter!='' && strpos($sFilter, 'plugins') === false) {
return false;
}
$pathCronPlugins = PATH_CORE.'bin'.PATH_SEP.'plugins'.PATH_SEP;
//erik: verify if the plugin dir exists
if (!is_dir($pathCronPlugins)) {
return false;
}
if ($handle = opendir($pathCronPlugins)) {
while (false !== ($file = readdir($handle))) {
if (strpos($file, '.php',1) && is_file($pathCronPlugins . $file)) {
$filename = str_replace('.php' , '', $file);
$className = $filename . 'ClassCron';
include_once ( $pathCronPlugins . $file ); //$filename. ".php"
$oPlugin = new $className();
if (method_exists($oPlugin, 'executeCron')) {
$oPlugin->executeCron();
setExecutionMessage("Executing Plugins");
setExecutionResultMessage('DONE');
}
}
}
}
}
function calculateDuration()
{
global $sFilter;
if ($sFilter != '' && strpos($sFilter, 'calculate') === false) {
return false;
}
setExecutionMessage("Calculating Duration");
try {
$oAppDelegation = new AppDelegation();
$oAppDelegation->calculateDuration();
setExecutionResultMessage('DONE');
saveLog('calculateDuration', 'action', 'Calculating Duration');
} catch (Exception $oError) {
setExecutionResultMessage('WITH ERRORS', 'error');
eprintln(" '-".$oError->getMessage(), 'red');
saveLog('calculateDuration', 'error', 'Error Calculating Duration: ' . $oError->getMessage());
}
}
function executeEvents($sLastExecution, $sNow=null)
{
global $sFilter;
global $sNow;
$log = array();
if ($sFilter != '' && strpos($sFilter, 'events') === false) {
return false;
}
setExecutionMessage("Executing events");
setExecutionResultMessage('PROCESSING');
$sNow = isset($sNow)? $sNow: date('Y-m-d H:i:s');
$oCaseScheduler = new CaseScheduler;
$oCaseScheduler->caseSchedulerCron($sNow, $log);
foreach ($log as $value) {
saveLog('executeScheduledCases', 'action', "OK Case# $value");
try {
$oAppEvent = new AppEvent();
saveLog('executeEvents', 'action', "Executing Events $sLastExecution, $sNow ");
$n = $oAppEvent->executeEvents($sNow, false, $log);
foreach ($log as $value) {
saveLog('executeEvents', 'action', "Execute Events : $value, $sNow ");
}
setExecutionMessage("|- End Execution events");
setExecutionResultMessage("Processed $n");
//saveLog('executeEvents', 'action', $res );
} catch (Exception $oError) {
setExecutionResultMessage('WITH ERRORS', 'error');
eprintln(" '-".$oError->getMessage(), 'red');
saveLog('calculateAlertsDueDate', 'Error', 'Error Executing Events: ' . $oError->getMessage());
}
setExecutionResultMessage('DONE');
} catch(Exception $oError){
setExecutionResultMessage('WITH ERRORS', 'error');
eprintln(" '-".$oError->getMessage(), 'red');
}
}
function saveLog($sSource, $sType, $sDescription) {
try {
global $isDebug;
if ( $isDebug )
print date('H:i:s') ." ($sSource) $sType $sDescription <br>\n";
@fwrite($oFile, date('Y-m-d H:i:s') . '(' . $sSource . ') ' . $sDescription . "\n");
G::verifyPath(PATH_DATA . 'log' . PATH_SEP, true);
if ($sType == 'action') {
$oFile = @fopen(PATH_DATA . 'log' . PATH_SEP . 'cron.log', 'a+');
function executeScheduledCases($sNow=null)
{
try {
global $sFilter;
global $sNow;
$log = array();
if ($sFilter != '' && strpos($sFilter, 'scheduler') === false) {
return false;
}
setExecutionMessage("Executing the scheduled starting cases");
setExecutionResultMessage('PROCESSING');
$sNow = isset($sNow)? $sNow : date('Y-m-d H:i:s');
$oCaseScheduler = new CaseScheduler();
$oCaseScheduler->caseSchedulerCron($sNow, $log);
foreach ($log as $value) {
saveLog('executeScheduledCases', 'action', "OK Case# $value");
}
setExecutionResultMessage('DONE');
} catch (Exception $oError) {
setExecutionResultMessage('WITH ERRORS', 'error');
eprintln(" '-".$oError->getMessage(), 'red');
}
else {
$oFile = @fopen(PATH_DATA . 'log' . PATH_SEP . 'cronError.log', 'a+');
}
function executeUpdateAppTitle()
{
try {
$criteriaConf = new Criteria("workflow");
$criteriaConf->addSelectColumn(ConfigurationPeer::OBJ_UID);
$criteriaConf->addSelectColumn(ConfigurationPeer::CFG_VALUE);
$criteriaConf->add(ConfigurationPeer::CFG_UID, "TAS_APP_TITLE_UPDATE");
$rsCriteriaConf = ConfigurationPeer::doSelectRS($criteriaConf);
$rsCriteriaConf->setFetchmode(ResultSet::FETCHMODE_ASSOC);
setExecutionMessage("Update case labels");
saveLog("updateCaseLabels", "action", "Update case labels", "c");
while ($rsCriteriaConf->next()) {
$row = $rsCriteriaConf->getRow();
$taskUid = $row["OBJ_UID"];
$lang = $row["CFG_VALUE"];
//Update case labels
$appcv = new AppCacheView();
$appcv->appTitleByTaskCaseLabelUpdate($taskUid, $lang);
//Delete record
$criteria = new Criteria("workflow");
$criteria->add(ConfigurationPeer::CFG_UID, "TAS_APP_TITLE_UPDATE");
$criteria->add(ConfigurationPeer::OBJ_UID, $taskUid);
$criteria->add(ConfigurationPeer::CFG_VALUE, $lang);
$numRowDeleted = ConfigurationPeer::doDelete($criteria);
saveLog("updateCaseLabels", "action", "OK Task $taskUid");
}
setExecutionResultMessage("DONE");
} catch (Exception $e) {
setExecutionResultMessage("WITH ERRORS", "error");
eprintln(" '-" . $e->getMessage(), "red");
saveLog("updateCaseLabels", "error", "Error updating case labels: " . $e->getMessage());
}
@fwrite($oFile, date('Y-m-d H:i:s') . '(' . $sSource . ') ' . $sDescription . "\n");
@fclose($oFile);
}
catch (Exception $oError) {
//CONTINUE
}
}
function saveLog($sSource, $sType, $sDescription)
{
try {
global $isDebug;
function setExecutionMessage($m){
$len = strlen($m);
$linesize = 60;
$rOffset = $linesize - $len;
if ($isDebug) {
print date('H:i:s') ." ($sSource) $sType $sDescription <br />\n";
}
eprint("* $m");
for($i=0; $i<$rOffset; $i++) eprint('.');
@fwrite($oFile, date('Y-m-d H:i:s') . '(' . $sSource . ') ' . $sDescription . "\n");
G::verifyPath(PATH_DATA . 'log' . PATH_SEP, true);
if ($sType == 'action') {
$oFile = @fopen(PATH_DATA . 'log' . PATH_SEP . 'cron.log', 'a+');
} else {
$oFile = @fopen(PATH_DATA . 'log' . PATH_SEP . 'cronError.log', 'a+');
}
@fwrite($oFile, date('Y-m-d H:i:s') . '(' . $sSource . ') ' . $sDescription . "\n");
@fclose($oFile);
} catch (Exception $oError) {
//CONTINUE
}
}
function setExecutionResultMessage($m, $t=''){
$c='green';
if($t=='error') $c = 'red';
if($t=='info') $c = 'yellow';
eprintln("[$m]", $c);
function setExecutionMessage($m)
{
$len = strlen($m);
$linesize = 60;
$rOffset = $linesize - $len;
eprint("* $m");
for ($i = 0; $i < $rOffset; $i++) {
eprint('.');
}
}
function setExecutionResultMessage($m, $t='')
{
$c = 'green';
if ($t == 'error') {
$c = 'red';
}
if ($t == 'info') {
$c = 'yellow';
}
eprintln("[$m]", $c);
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -76,7 +76,7 @@ var saveDataTaskTemporal = function(iForm)
oTaskData.TAS_TYPE_DAY = getField('TAS_TYPE_DAY').value;
oTaskData.TAS_CALENDAR = getField('TAS_CALENDAR').value;
oTaskData.TAS_TRANSFER_FLY = (getField('TAS_TRANSFER_FLY').checked ? 'TRUE' : 'FALSE');
var fieldEval = new input(getField('TAS_DURATION'));
if (getField('TAS_DURATION').value.trim() == '') {
fieldEval.failed();
@@ -178,45 +178,73 @@ var saveDataTaskTemporal = function(iForm)
var saveTaskData = function(oForm, iForm, iType)
{
iLastTab = iForm;
if ( !saveDataTaskTemporal(iForm)) {
if (!saveDataTaskTemporal(iForm)) {
return false;
}
oTaskData.TAS_UID = getField('TAS_UID').value;
/* while (oTaskData.TAS_TITLE.charAt(0)==' '){
oTaskData.TAS_TITLE = oTaskData.TAS_TITLE.substring(1,oTaskData.TAS_TITLE.length) ;
} */
oTaskData.TAS_TITLE=oTaskData.TAS_TITLE.trim();
if(oTaskData.TAS_TITLE==''){
alert(G_STRINGS.ID_REQ_TITLE );
return false;
}
var sParameters = 'function=saveTaskData';
oTaskData.TAS_UID = getField("TAS_UID").value;
/*
while (oTaskData.TAS_TITLE.charAt(0)==" "){
oTaskData.TAS_TITLE = oTaskData.TAS_TITLE.substring(1,oTaskData.TAS_TITLE.length) ;
}
*/
oTaskData.TAS_TITLE = oTaskData.TAS_TITLE.trim();
if (oTaskData.TAS_TITLE == "") {
alert(G_STRINGS.ID_REQ_TITLE );
return false;
}
//Set AJAX
var sParameters = "function=saveTaskData";
var oRPC = new leimnud.module.rpc.xmlhttp({
url : '../tasks/tasks_Ajax',
async : false,
method: 'POST',
args : sParameters + '&oData=' + oTaskData.toJSONString()
url: "../tasks/tasks_Ajax",
method: "POST",
args: sParameters + "&oData=" + oTaskData.toJSONString()
});
oRPC.callback = function (rpc) {
var res = rpc.xmlhttp.responseText.parseJSON();
if (oTaskData.TAS_TITLE) {
Pm.data.db.task[getField("INDEX").value].label = Pm.data.db.task[getField("INDEX").value].object.elements.label.innerHTML = oTaskData.TAS_TITLE.replace(re2, "&amp;");
}
if (oTaskData.TAS_START) {
oTaskData.TAS_START = ((oTaskData.TAS_START == "TRUE")? true : false);
Pm.data.render.setTaskINI({task: oTaskData.TAS_UID, value: oTaskData.TAS_START});
}
try {
var option = {
label: changesSavedLabel
}
switch (res.status) {
case "CRONCL":
option = {
label: changesSavedLabel + "<br /><br />" + _("APP_TITLE_CASE_LABEL_UPDATE"),
width: 350,
height: 175
}
break;
}
new leimnud.module.app.info().make(option);
}
catch (e) {
//No show confirmation
}
Pm.tmp.propertiesPanel.remove();
}.extend(this);
oRPC.make();
if (oTaskData.TAS_TITLE)
{
Pm.data.db.task[getField('INDEX').value].label = Pm.data.db.task[getField('INDEX').value].object.elements.label.innerHTML = oTaskData.TAS_TITLE.replace(re2, "&amp;");
}
if (oTaskData.TAS_START)
{
oTaskData.TAS_START = (oTaskData.TAS_START == 'TRUE' ? true : false);
Pm.data.render.setTaskINI({task: oTaskData.TAS_UID, value: oTaskData.TAS_START});
}
try {
new leimnud.module.app.info().make( {
label: changesSavedLabel
});
}
catch (e) {
// No show confirmation
}
Pm.tmp.propertiesPanel.remove();
};
var showTriggers = function(sStep, sType)

View File

@@ -1,87 +1,81 @@
<?php
/**
* tasks_Ajax.php
*
* ProcessMaker Open Source Edition
* Copyright (C) 2004 - 2008 Colosa Inc.23
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
* Coral Gables, FL, 33134, USA, or email info@colosa.com.
*
*/
try {
global $RBAC;
switch ($RBAC->userCanAccess('PM_FACTORY')) {
case -2:
G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_SYSTEM', 'error', 'labels');
G::header('location: ../login/login');
die;
break;
case -1:
G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels');
G::header('location: ../login/login');
die;
break;
}
global $RBAC;
$oJSON = new Services_JSON();
$aData = get_object_vars($oJSON->decode($_POST['oData']));
if(isset($_POST['function']))
$sAction = $_POST['function'];
else
$sAction = $_POST['functions'];
switch ($RBAC->userCanAccess('PM_FACTORY')) {
case -2:
G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_SYSTEM', 'error', 'labels');
G::header('location: ../login/login');
die;
break;
case -1:
G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels');
G::header('location: ../login/login');
die;
break;
}
switch ($sAction) {
case 'saveTaskData':
require_once 'classes/model/Task.php';
$oTask = new Task();
/**
* routine to replace @amp@ by &
* that why the char "&" can't be passed by XmlHttpRequest directly
* @autor erik <erik@colosa.com>
*/
foreach($aData as $k=>$v) {
$aData[$k] = str_replace('@amp@', '&', $v);
}
if (isset($aData['SEND_EMAIL'])) {
$aData['TAS_SEND_LAST_EMAIL'] = $aData['SEND_EMAIL'] == 'TRUE' ? 'TRUE' : 'FALSE';
} else {
$aData['TAS_SEND_LAST_EMAIL'] = 'FALSE';
}
// Additional configuration
if (isset($aData['TAS_DEF_MESSAGE_TYPE']) && isset($aData['TAS_DEF_MESSAGE_TEMPLATE'])) {
G::loadClass('configuration');
$oConf = new Configurations;
$oConf->aConfig = Array(
'TAS_DEF_MESSAGE_TYPE' => $aData['TAS_DEF_MESSAGE_TYPE'],
'TAS_DEF_MESSAGE_TEMPLATE'=> $aData['TAS_DEF_MESSAGE_TEMPLATE']
);
$oConf->saveConfig('TAS_EXTRA_PROPERTIES', $aData['TAS_UID'], '', '');
unset($aData['TAS_DEF_MESSAGE_TYPE']);
unset($aData['TAS_DEF_MESSAGE_TEMPLATE']);
}
$oJSON = new Services_JSON();
$aData = get_object_vars($oJSON->decode($_POST['oData']));
$oTask->update($aData);
break;
}
if (isset($_POST['function'])) {
$sAction = $_POST['function'];
} else {
$sAction = $_POST['functions'];
}
switch ($sAction) {
case "saveTaskData":
require_once ("classes/model/Task.php");
$response = array();
$oTask = new Task();
/**
* routine to replace @amp@ by &
* that why the char "&" can't be passed by XmlHttpRequest directly
* @autor erik <erik@colosa.com>
*/
foreach ($aData as $k => $v) {
$aData[$k] = str_replace('@amp@', '&', $v);
}
if (isset($aData['SEND_EMAIL'])) {
$aData['TAS_SEND_LAST_EMAIL'] = $aData['SEND_EMAIL'] == 'TRUE' ? 'TRUE' : 'FALSE';
} else {
$aData['TAS_SEND_LAST_EMAIL'] = 'FALSE';
}
//Additional configuration
if (isset($aData['TAS_DEF_MESSAGE_TYPE']) && isset($aData['TAS_DEF_MESSAGE_TEMPLATE'])) {
G::LoadClass('configuration');
$oConf = new Configurations();
$oConf->aConfig = array(
'TAS_DEF_MESSAGE_TYPE' => $aData['TAS_DEF_MESSAGE_TYPE'],
'TAS_DEF_MESSAGE_TEMPLATE' => $aData['TAS_DEF_MESSAGE_TEMPLATE']
);
$oConf->saveConfig('TAS_EXTRA_PROPERTIES', $aData['TAS_UID'], '', '');
unset($aData['TAS_DEF_MESSAGE_TYPE']);
unset($aData['TAS_DEF_MESSAGE_TEMPLATE']);
}
$result = $oTask->update($aData);
$response["status"] = "OK";
if ($result == 3) {
$response["status"] = "CRONCL";
}
echo G::json_encode($response);
break;
}
} catch (Exception $oException) {
die($oException->getMessage());
}
catch (Exception $oException) {
die($oException->getMessage());
}
?>

View File

@@ -1,4 +1,5 @@
<?php
/**
* usersGroups.php
*
@@ -22,33 +23,34 @@
* Coral Gables, FL, 33134, USA, or email info@colosa.com.
*
*/
if (($RBAC_Response=$RBAC->userCanAccess("PM_LOGIN"))!=1) return $RBAC_Response;
if (($RBAC_Response = $RBAC->userCanAccess("PM_LOGIN")) != 1) {
return $RBAC_Response;
}
global $RBAC;
$access = $RBAC->userCanAccess('PM_USERS');
if( $access != 1 ){
switch ($access)
{
case -1:
G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels');
G::header('location: ../login/login');
die;
break;
case -2:
G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_SYSTEM', 'error', 'labels');
G::header('location: ../login/login');
die;
break;
default:
G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels');
G::header('location: ../login/login');
die;
break;
}
if ($access != 1) {
switch ($access) {
case -1:
G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels');
G::header('location: ../login/login');
die;
break;
case -2:
G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_SYSTEM', 'error', 'labels');
G::header('location: ../login/login');
die;
break;
default:
G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels');
G::header('location: ../login/login');
die;
break;
}
}
$G_MAIN_MENU = 'processmaker';
$G_SUB_MENU = 'users';
$G_ID_MENU_SELECTED = 'USERS';
$G_MAIN_MENU = 'processmaker';
$G_SUB_MENU = 'users';
$G_ID_MENU_SELECTED = 'USERS';
$G_ID_SUB_MENU_SELECTED = 'USERS';
$G_PUBLISH = new Publisher;
@@ -69,10 +71,16 @@ $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$oDataset->next();
$aRow = $oDataset->getRow();
switch($_REQUEST['type']){
case 'summary': $ctab = 0; break;
case 'group': $ctab = 1; break;
case 'auth': $ctab = 2; break;
switch ($_REQUEST['type']) {
case 'summary':
$ctab = 0;
break;
case 'group':
$ctab = 1;
break;
case 'auth':
$ctab = 2;
break;
}
$users = Array();
@@ -83,11 +91,12 @@ $users['USR_USERNAME'] = $aRow['USR_USERNAME'];
$users['fullNameFormat'] = $Config['fullNameFormat'];
$users['CURRENT_TAB'] = $ctab;
$oHeadPublisher =& headPublisher::getSingleton();
$oHeadPublisher = & headPublisher::getSingleton();
$oHeadPublisher->addExtJsScript('users/usersGroups', false); //adding a javascript file .js
// $oHeadPublisher->addContent('users/usersGroups'); //adding a html file .html.
$oHeadPublisher->assign('USERS', $users);
$oHeadPublisher->assign('hasAuthPerm', ($RBAC->userCanAccess('PM_SETUP_ADVANCE') == 1));
$oHeadPublisher->assign('hasAuthPerm', ($RBAC->userCanAccess('PM_SETUP_ADVANCE') == 1));
G::RenderPage('publish', 'extJs');
G::RenderPage('publish', 'extJs');

View File

@@ -1,149 +1,164 @@
<?php
/**
* triggers_CreateWizard.php
*
* ProcessMaker Open Source Edition
* Copyright (C) 2004 - 2008 Colosa Inc.23
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
* Coral Gables, FL, 33134, USA, or email info@colosa.com.
*
*/
try {
G::LoadClass ( 'triggerLibrary' );
$triggerLibrary = triggerLibrary::getSingleton ();
$libraryClassName = $_GET ['LIBRARY'];
$libraryMethod = $_GET ['NAME_FUN'];
$sProUid = $_GET ['PRO_UID'];
$libraryO = $triggerLibrary->getLibraryDefinition ( $libraryClassName );
$libraryName = $libraryO->info ['name'];
$libraryDescription = trim ( str_replace ( "*", "", implode ( " ", $libraryO->info ['description'] ) ) );
$libraryIcon = isset ( $libraryO->info ['icon'] ) && ($libraryO->info ['icon'] != "") ? $libraryO->info ['icon'] : "/images/browse.gif";
$aDataTrigger = $_GET;
$sProUid = $aDataTrigger ['PRO_UID'];
$sNameFun = $aDataTrigger ['NAME_FUN'];
$methodObject = $libraryO->methods [$sNameFun];
$methodName = $methodObject->info ['name'];
$methodLabel = $methodObject->info ['label'];
$methodDescription = trim ( str_replace ( "*", "", implode ( " ", $methodObject->info ['description'] ) ) );
$methodReturn = $methodObject->info ['return'];
$methodParameters = array_keys ( $methodObject->params );
$methodLink = isset ( $methodObject->info ['link'] ) && ($methodObject->info ['link'] != "") ? $methodObject->info ['link'] : "";
$methodreturnA = explode ( "|", $methodReturn );
$bReturnValue = true;
$displayMode = 'display:block';
$methodreturnDescription = (trim(strtoupper($methodreturnA [3])) == strtoupper(G::LoadTranslation ( 'ID_NONE')) )? G::LoadTranslation ( 'ID_NOT_REQUIRED') : $methodreturnA [3];
$methodReturnLabel = isset ( $methodreturnA [3] ) ? $methodreturnDescription : $methodReturn;
if ( (isset($methodreturnA[0]) && isset($methodreturnA[1])) && (trim(strtoupper($methodreturnA[0]) ) != strtoupper(G::LoadTranslation ( 'ID_NONE')) ) ) {
$methodReturnLabelRequired = (trim( $methodreturnA[1] ) != "" )? G::LoadTranslation ( "ID_REQUIRED_FIELD" ) : $methodreturnA[1];
$methodReturnLabel .= "<br>" . trim( $methodReturnLabelRequired ) . " | " . trim($methodreturnA[0]);
}
else {
$bReturnValue = false;
$displayMode = 'display:none';
}
$aParametersFun = $methodParameters;
$triggerWizardTemplate = PATH_TPL . 'triggers' . PATH_SEP . 'triggers_CreateWizard.html';
$template = new TemplatePower ( $triggerWizardTemplate );
$template->prepare ();
$tds = '';
$nrows = 2;
$template->assign ( 'LIBRARY_NAME', $libraryName );
$template->assign ( 'LIBRARY_DESCRIPTION', $libraryDescription );
$template->assign ( 'LIBRARY_ICON', $libraryIcon );
$template->assign ( 'LIBRARY_CLASS', $libraryClassName );
if ($methodLink != "") {
$template->newBlock ( 'methodLink' );
$template->assign ( 'LIBRARY_METHOD_LINK', $methodLink );
$template->assign ( 'MORE_INFO', G::LoadTranslation ( 'ID_MORE_INFO' ) );
$template->gotoBlock ( '_ROOT' );
}
$template->assign ( 'PMFUNTION', $sNameFun );
$template->assign ( 'PMFUNTION_LABEL', $methodLabel );
$template->assign ( 'PMFUNTION_DESCRIPTION', $methodDescription );
$template->assign ( 'TITLE', G::LoadTranslation ( 'ID_TITLE' ) );
$template->assign ( 'DESCRIPTION', G::LoadTranslation ( 'ID_DESCRIPTION' ) );
$template->assign ( 'DETAILS_LABEL', G::LoadTranslation ( 'ID_DETAILS' ) );
$template->assign ( 'RETURN_TITLE', G::LoadTranslation ( 'ID_TRIGGER_RETURN_TITLE' ) );
if ( $bReturnValue ) {
$template->assign ( 'RETURN_LABEL', G::LoadTranslation ( 'ID_TRIGGER_RETURN_LABEL' ) );
}
$template->assign ( 'METHOD_LABEL', G::LoadTranslation ( 'ID_METHOD' ) );
$template->assign ( 'ROWS', sizeof ( $aParametersFun ) + 3 );
$template->assign ( 'TRIGGER_INFORMATION', 'Trigger Information' );
$template->assign ( 'TRIGGER_ACTION', '../triggers/triggers_WizardSave' );
$template->assign ( 'PRO_UID', $sProUid );
$template->assign ( 'PAGED_TABLE_ID', $aDataTrigger ['PAGED_TABLE_ID'] );
$template->assign ( 'RETURN_DESCRIPTION', $methodReturnLabel );
$template->assign ( 'ID_SAVE', G::LoadTranslation ( 'ID_SAVE' ) );
$template->assign ( 'ID_CANCEL', G::LoadTranslation ( 'ID_CANCEL' ) );
$template->assign ( 'DISPLAY_MODE', $displayMode );
$sPMfunction = $sNameFun . " (";
$methodParametersOnlyNames = array ();
if (count ( $aParametersFun ) > 0) {
$template->newBlock ( 'paremetersTriggersGroup' );
$template->assign ( 'PARAMETERS_LABEL', G::LoadTranslation ( 'ID_PARAMETERS' ) );
foreach ( $aParametersFun as $k => $v ) {
if ($v != '') {
$aParametersFunA = explode ( "|", $v );
$paramType = $aParametersFunA [0];
$paramDefinition = $aParametersFunA [1];
$paramDefinitionA = explode ( "=", $paramDefinition );
$paramName = $paramDefinitionA [0];
$methodParametersOnlyNames [] = $paramName;
$paramDefaultValue = isset ( $paramDefinitionA [1] ) ? $paramDefinitionA [1] : "";
$paramLabel = isset ( $aParametersFunA [2] ) ? $aParametersFunA [2] : $paramName;
$paramDescription = isset ( $aParametersFunA [3] ) ? $aParametersFunA [3] : "";
$sPMfunction .= ($nrows != 2) ? ', "' . trim ( str_replace ( "$", "", $paramName ) ) . '"' : '"' . trim ( str_replace ( "$", "", $paramName ) . '"' );
$template->newBlock ( 'paremetersTriggers' );
$template->assign ( 'LABEL_PARAMETER', $paramLabel );
$template->assign ( 'OPT_PARAMETER', trim ( str_replace ( "$", "", $paramName ) ) );
$sNameTag = 'form.' . trim ( str_replace ( "$", "", $paramName ) ) . '.name';
$sNameTag = trim ( $sNameTag );
$template->assign ( 'SNAMETAG', $sNameTag );
$tri_Button = "<input type='button' name='INSERT_VARIABLE' value='@@' onclick='showDynaformsFormVars($sNameTag , \"../controls/varsAjax\" , \"$sProUid\" , \"@@\");return;' >";
$template->assign ( 'ADD_TRI_VARIABLE', $tri_Button );
$template->assign ( 'ADD_TRI_VALUE', str_replace ( "'", "", str_replace ( '"', '', $paramDefaultValue ) ) );
$fieldDescription = ($paramDescription!="")?$paramDescription . "<br>":"";
$fieldDescription .= $paramDefaultValue != "" ? $paramDefaultValue . " | " . $paramType : G::LoadTranslation ( "ID_REQUIRED_FIELD" ) . " | " . $paramType;
$template->assign ( 'ADD_TRI_DESCRIPTION', $fieldDescription );
$nrows ++;
}
}
}
$template->gotoBlock ( '_ROOT' );
$template->assign ( 'ALLFUNCTION', implode ( ",", $methodParametersOnlyNames ) );
$sPMfunction .= ");";
$content = $template->getOutputContent ();
print $content;
} catch ( Exception $oException ) {
die ( $oException->getMessage () );
}
unset ( $_SESSION ['PROCESS'] );
?>
<?php
/**
* triggers_CreateWizard.php
*
* ProcessMaker Open Source Edition
* Copyright (C) 2004 - 2008 Colosa Inc.23
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
* Coral Gables, FL, 33134, USA, or email info@colosa.com.
*
*/
try {
G::LoadClass ( 'triggerLibrary' );
$triggerLibrary = triggerLibrary::getSingleton ();
$libraryClassName = $_GET ['LIBRARY'];
$libraryMethod = $_GET ['NAME_FUN'];
$sProUid = $_GET ['PRO_UID'];
$libraryO = $triggerLibrary->getLibraryDefinition ( $libraryClassName );
$libraryName = $libraryO->info ['name'];
$libraryDescription = trim ( str_replace ( "*", "", implode ( " ", $libraryO->info ['description'] ) ) );
$libraryIcon = isset ( $libraryO->info ['icon'] ) && ($libraryO->info ['icon'] != "")
? $libraryO->info ['icon'] : "/images/browse.gif";
$aDataTrigger = $_GET;
$sProUid = $aDataTrigger ['PRO_UID'];
$sNameFun = $aDataTrigger ['NAME_FUN'];
$methodObject = $libraryO->methods [$sNameFun];
$methodName = $methodObject->info ['name'];
$methodLabel = $methodObject->info ['label'];
$methodDescription = trim ( str_replace ( "*", "", implode ( " ", $methodObject->info ['description'] ) ) );
$methodReturn = $methodObject->info ['return'];
$methodParameters = array_keys ( $methodObject->params );
$methodLink = isset ( $methodObject->info ['link'] ) && ($methodObject->info ['link'] != "")
? $methodObject->info ['link'] : "";
$methodreturnA = explode ( "|", $methodReturn );
$bReturnValue = true;
$displayMode = 'display:block';
$methodreturnDescription = (trim(strtoupper($methodreturnA [3])) == strtoupper(G::LoadTranslation ( 'ID_NONE')) )
? G::LoadTranslation ( 'ID_NOT_REQUIRED') : $methodreturnA [3];
$methodReturnLabel = isset ( $methodreturnA [3] ) ? $methodreturnDescription : $methodReturn;
if ( (isset($methodreturnA[0]) && isset($methodreturnA[1]))
&& (trim(strtoupper($methodreturnA[0]) ) != strtoupper(G::LoadTranslation ( 'ID_NONE')) ) ) {
$methodReturnLabelRequired = (trim( $methodreturnA[1] ) != "" )
? G::LoadTranslation ( "ID_REQUIRED_FIELD" ) : $methodreturnA[1];
$methodReturnLabel .= "<br>" . trim( $methodReturnLabelRequired ) . " | " . trim($methodreturnA[0]);
} else {
$bReturnValue = false;
$displayMode = 'display:none';
}
$aParametersFun = $methodParameters;
$triggerWizardTemplate = PATH_TPL . 'triggers' . PATH_SEP . 'triggers_CreateWizard.html';
$template = new TemplatePower ( $triggerWizardTemplate );
$template->prepare ();
$tds = '';
$nrows = 2;
$template->assign ( 'LIBRARY_NAME', $libraryName );
$template->assign ( 'LIBRARY_DESCRIPTION', $libraryDescription );
$template->assign ( 'LIBRARY_ICON', $libraryIcon );
$template->assign ( 'LIBRARY_CLASS', $libraryClassName );
if ($methodLink != "") {
$template->newBlock ( 'methodLink' );
$template->assign ( 'LIBRARY_METHOD_LINK', $methodLink );
$template->assign ( 'MORE_INFO', G::LoadTranslation ( 'ID_MORE_INFO' ) );
$template->gotoBlock ( '_ROOT' );
}
$template->assign ( 'PMFUNTION', $sNameFun );
$template->assign ( 'PMFUNTION_LABEL', $methodLabel );
$template->assign ( 'PMFUNTION_DESCRIPTION', $methodDescription );
$template->assign ( 'TITLE', G::LoadTranslation ( 'ID_TITLE' ) );
$template->assign ( 'DESCRIPTION', G::LoadTranslation ( 'ID_DESCRIPTION' ) );
$template->assign ( 'DETAILS_LABEL', G::LoadTranslation ( 'ID_DETAILS' ) );
$template->assign ( 'RETURN_TITLE', G::LoadTranslation ( 'ID_TRIGGER_RETURN_TITLE' ) );
if ( $bReturnValue ) {
$template->assign ( 'RETURN_LABEL', G::LoadTranslation ( 'ID_TRIGGER_RETURN_LABEL' ) );
}
$template->assign ( 'METHOD_LABEL', G::LoadTranslation ( 'ID_METHOD' ) );
$template->assign ( 'ROWS', sizeof ( $aParametersFun ) + 3 );
$template->assign ( 'TRIGGER_INFORMATION', 'Trigger Information' );
$template->assign ( 'TRIGGER_ACTION', '../triggers/triggers_WizardSave' );
$template->assign ( 'PRO_UID', $sProUid );
$template->assign ( 'PAGED_TABLE_ID', $aDataTrigger ['PAGED_TABLE_ID'] );
$template->assign ( 'RETURN_DESCRIPTION', $methodReturnLabel );
$template->assign ( 'ID_SAVE', G::LoadTranslation ( 'ID_SAVE' ) );
$template->assign ( 'ID_CANCEL', G::LoadTranslation ( 'ID_CANCEL' ) );
$template->assign ( 'DISPLAY_MODE', $displayMode );
$sPMfunction = $sNameFun . " (";
$methodParametersOnlyNames = array ();
if (count ( $aParametersFun ) > 0) {
$template->newBlock ( 'paremetersTriggersGroup' );
$template->assign ( 'PARAMETERS_LABEL', G::LoadTranslation ( 'ID_PARAMETERS' ) );
foreach ($aParametersFun as $k => $v) {
if ($v != '') {
$aParametersFunA = explode ( "|", $v );
$paramType = $aParametersFunA [0];
$paramDefinition = $aParametersFunA [1];
$paramDefinitionA = explode ( "=", $paramDefinition );
$paramName = $paramDefinitionA [0];
$methodParametersOnlyNames [] = $paramName;
$paramDefaultValue = isset ( $paramDefinitionA [1] ) ? $paramDefinitionA [1] : "";
$paramLabel = isset ( $aParametersFunA [2] ) ? $aParametersFunA [2] : $paramName;
$paramDescription = isset ( $aParametersFunA [3] ) ? $aParametersFunA [3] : "";
$sPMfunction .= ($nrows != 2)
? ', "' . trim ( str_replace ( "$", "", $paramName ) ) . '"'
: '"' . trim ( str_replace ( "$", "", $paramName ) . '"' );
$template->newBlock ( 'paremetersTriggers' );
$template->assign ( 'LABEL_PARAMETER', $paramLabel );
$template->assign ( 'OPT_PARAMETER', trim ( str_replace ( "$", "", $paramName ) ) );
$sNameTag = 'form.' . trim ( str_replace ( "$", "", $paramName ) ) . '.name';
$sNameTag = trim ( $sNameTag );
$template->assign ( 'SNAMETAG', $sNameTag );
$tri_Button = "<input type='button' name='INSERT_VARIABLE' value='@@' "
. "onclick='showDynaformsFormVars($sNameTag , \"../controls/varsAjax\" , "
. " \"$sProUid\" , \"@@\");return;' >";
$template->assign ( 'ADD_TRI_VARIABLE', $tri_Button );
$template->assign ( 'ADD_TRI_VALUE',
str_replace ( "'", "", str_replace ( '"', '', $paramDefaultValue ) ) );
$fieldDescription = ($paramDescription!="")?$paramDescription . "<br>":"";
$fieldDescription .= $paramDefaultValue != ""
? $paramDefaultValue . " | " . $paramType
: G::LoadTranslation ( "ID_REQUIRED_FIELD" ) . " | " . $paramType;
$template->assign ( 'ADD_TRI_DESCRIPTION', $fieldDescription );
$nrows ++;
}
}
}
$template->gotoBlock ( '_ROOT' );
$template->assign ( 'ALLFUNCTION', implode ( ",", $methodParametersOnlyNames ) );
$sPMfunction .= ");";
$content = $template->getOutputContent ();
print $content;
} catch ( Exception $oException ) {
die ( $oException->getMessage () );
}
unset ($_SESSION ['PROCESS']);

View File

@@ -1,154 +1,168 @@
<?php
/**
* triggers_CreateWizard.php
*
* ProcessMaker Open Source Edition
* Copyright (C) 2004 - 2008 Colosa Inc.23
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
* Coral Gables, FL, 33134, USA, or email info@colosa.com.
*
*/
try {
G::LoadClass ( 'triggerLibrary' );
$triggerLibrary = triggerLibrary::getSingleton ();
$libraryClassName = $_GET ['LIBRARY_CLASS'];
$libraryMethod = $_GET ['PMFUNTION_NAME'];
$sProUid = $_GET ['PRO_UID'];
$libraryO = $triggerLibrary->getLibraryDefinition ( $libraryClassName );
$libraryName = $libraryO->info ['name'];
$libraryDescription = trim ( str_replace ( "*", "", implode ( " ", $libraryO->info ['description'] ) ) );
$libraryIcon = isset ( $libraryO->info ['icon'] ) && ($libraryO->info ['icon'] != "") ? $libraryO->info ['icon'] : "/images/browse.gif";
$aDataTrigger = $_GET;
$sProUid = $aDataTrigger ['PRO_UID'];
$sNameFun = $aDataTrigger ['PMFUNTION_NAME'];
$methodObject = $libraryO->methods [$sNameFun];
$methodName = $methodObject->info ['name'];
$methodLabel = $methodObject->info ['label'];
$methodDescription = trim ( str_replace ( "*", "", implode ( " ", $methodObject->info ['description'] ) ) );
$methodReturn = $methodObject->info ['return'];
$methodParameters = array_keys ( $methodObject->params );
$methodLink = isset ( $methodObject->info ['link'] ) && ($methodObject->info ['link'] != "") ? $methodObject->info ['link'] : "";
$methodreturnA = explode ( "|", $methodReturn );
$bReturnValue = true;
$displayMode = 'display:block';
$methodreturnDescription = (trim(strtoupper($methodreturnA [3])) == strtoupper(G::LoadTranslation ( 'ID_NONE')) )? G::LoadTranslation ( 'ID_NOT_REQUIRED') : $methodreturnA [3];
$methodReturnLabel = isset ( $methodreturnA [3] ) ? $methodreturnDescription : $methodReturn;
if ( (isset($methodreturnA[0]) && isset($methodreturnA[1])) && (trim(strtoupper($methodreturnA[0]) ) != strtoupper(G::LoadTranslation ( 'ID_NONE')) ) ) {
$methodReturnLabelRequired = (trim( $methodreturnA[1] ) != "" )? G::LoadTranslation ( "ID_REQUIRED_FIELD" ) : $methodreturnA[1];
$methodReturnLabel .= "<br>" . trim( $methodReturnLabelRequired ) . " | " . trim($methodreturnA[0]);
}
else {
$bReturnValue = false;
$displayMode = 'display:none';
}
$aParametersFun = $methodParameters;
$triggerWizardTemplate = PATH_TPL . 'triggers' . PATH_SEP . 'triggers_EditWizard.html';
$template = new TemplatePower ( $triggerWizardTemplate );
$template->prepare ();
$tds = '';
$nrows = 2;
$template->assign ( 'LIBRARY_NAME', $libraryName );
$template->assign ( 'LIBRARY_DESCRIPTION', $libraryDescription );
$template->assign ( 'LIBRARY_ICON', $libraryIcon );
$template->assign ( 'LIBRARY_CLASS', $libraryClassName );
if ($methodLink != "") {
$template->newBlock ( 'methodLink' );
$template->assign ( 'LIBRARY_METHOD_LINK', $methodLink );
$template->gotoBlock ( '_ROOT' );
}
$template->assign ( 'PMFUNTION', $sNameFun );
$template->assign ( 'PMFUNTION_LABEL', $methodLabel );
$template->assign ( 'PMFUNTION_DESCRIPTION', $methodDescription );
$template->assign ( 'TITLE', G::LoadTranslation ( 'ID_TITLE' ) );
$template->assign ( 'TITLE_CONTENT', $_GET['TRI_TITLE'] );
$template->assign ( 'TRI_UID', $_GET['TRI_UID'] );
$template->assign ( 'SOURCE_LINK', G::LoadTranslation ( 'ID_TRIGGER_SOURCE_LINK' ) );
$template->assign ( 'DESCRIPTION', G::LoadTranslation ( 'ID_DESCRIPTION' ) );
$template->assign ( 'DESCRIPTION_CONTENT', $_GET['TRI_DESCRIPTION'] );
$template->assign ( 'DETAILS_LABEL', G::LoadTranslation ( 'ID_DETAILS' ) );
$template->assign ( 'RETURN_TITLE', G::LoadTranslation ( 'ID_TRIGGER_RETURN_TITLE' ) );
if ( $bReturnValue ) {
$template->assign ( 'RETURN_LABEL', G::LoadTranslation ( 'ID_TRIGGER_RETURN_LABEL' ) );
}
$template->assign ( 'RETURN_VALUE', $_GET['TRI_ANSWER'] );
$template->assign ( 'METHOD_LABEL', G::LoadTranslation ( 'ID_METHOD' ) );
$template->assign ( 'ROWS', sizeof ( $aParametersFun ) + 3 );
$template->assign ( 'TRIGGER_INFORMATION', 'Triggers Edit Form' );
$template->assign ( 'TRIGGER_ACTION', '../triggers/triggers_WizardUpdate' );
$template->assign ( 'PRO_UID', $sProUid );
$template->assign ( 'PAGED_TABLE_ID', $aDataTrigger ['PAGED_TABLE_ID'] );
$template->assign ( 'RETURN_DESCRIPTION', $methodReturnLabel );
$template->assign ( 'ID_SAVE', G::LoadTranslation ( 'ID_SAVE' ) );
$template->assign ( 'ID_CANCEL', G::LoadTranslation ( 'ID_CANCEL' ) );
$template->assign ( 'DISPLAY_MODE', $displayMode );
$sPMfunction = $sNameFun . " (";
$methodParametersOnlyNames = array ();
if (count ( $aParametersFun ) > 0) {
$template->newBlock ( 'paremetersTriggersGroup' );
$template->assign ( 'PARAMETERS_LABEL', G::LoadTranslation ( 'ID_PARAMETERS' ) );
foreach ( $aParametersFun as $k => $v ) {
if ($v != '') {
$aParametersFunA = explode ( "|", $v );
$paramType = $aParametersFunA [0];
$paramDefinition = $aParametersFunA [1];
$paramDefinitionA = explode ( "=", $paramDefinition );
$paramName = $paramDefinitionA [0];
$methodParametersOnlyNames [] = $paramName;
$paramDefaultValue = isset ( $paramDefinitionA [1] ) ? $paramDefinitionA [1] : "";
$paramLabel = isset ( $aParametersFunA [2] ) ? $aParametersFunA [2] : $paramName;
$paramDescription = isset ( $aParametersFunA [3] ) ? $aParametersFunA [3] : "";
$sPMfunction .= ($nrows != 2) ? ', "' . trim ( str_replace ( "$", "", $paramName ) ) . '"' : '"' . trim ( str_replace ( "$", "", $paramName ) . '"' );
$template->newBlock ( 'paremetersTriggers' );
$template->assign ( 'LABEL_PARAMETER', $paramLabel );
$template->assign ( 'OPT_PARAMETER', trim ( str_replace ( "$", "", $paramName ) ) );
$sNameTag = 'form.' . trim ( str_replace ( "$", "", $paramName ) ) . '.name';
$sNameTag = trim ( $sNameTag );
$template->assign ( 'SNAMETAG', $sNameTag );
$tri_Button = "<input type='button' name='INSERT_VARIABLE' value='@@' onclick='showDynaformsFormVars($sNameTag , \"../controls/varsAjax\" , \"$sProUid\" , \"@@\");return;' >";
$template->assign ( 'ADD_TRI_VARIABLE', $tri_Button );
// $template->assign ( 'ADD_TRI_VALUE', str_replace ( "'", "", str_replace ( '"', '', $paramDefaultValue ) ) );
$paramValue = $_GET[trim( str_replace( "$", "", $paramName ) )];
$template->assign ( 'ADD_TRI_VALUE', str_replace("\'", "&apos;", $paramValue) );
$fieldDescription = ($paramDescription!="")?$paramDescription . "<br>":"";
$fieldDescription .= $paramDefaultValue != "" ? $paramDefaultValue . " | " . $paramType : G::LoadTranslation ( "ID_REQUIRED_FIELD" ) . " | " . $paramType;
$template->assign ( 'ADD_TRI_DESCRIPTION', $fieldDescription );
$nrows ++;
}
}
}
$template->gotoBlock ( '_ROOT' );
$template->assign ( 'ALLFUNCTION', implode ( ",", $methodParametersOnlyNames ) );
$sPMfunction .= ");";
$content = $template->getOutputContent ();
print $content;
} catch ( Exception $oException ) {
die ( $oException->getMessage () );
}
unset ( $_SESSION ['PROCESS'] );
?>
<?php
/**
* triggers_CreateWizard.php
*
* ProcessMaker Open Source Edition
* Copyright (C) 2004 - 2008 Colosa Inc.23
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
* Coral Gables, FL, 33134, USA, or email info@colosa.com.
*
*/
try {
G::LoadClass ( 'triggerLibrary' );
$triggerLibrary = triggerLibrary::getSingleton ();
$libraryClassName = $_GET ['LIBRARY_CLASS'];
$libraryMethod = $_GET ['PMFUNTION_NAME'];
$sProUid = $_GET ['PRO_UID'];
$libraryO = $triggerLibrary->getLibraryDefinition ( $libraryClassName );
$libraryName = $libraryO->info ['name'];
$libraryDescription = trim ( str_replace ( "*", "", implode ( " ", $libraryO->info ['description'] ) ) );
$libraryIcon = isset ( $libraryO->info ['icon'] ) && ($libraryO->info ['icon'] != "")
? $libraryO->info ['icon'] : "/images/browse.gif";
$aDataTrigger = $_GET;
$sProUid = $aDataTrigger ['PRO_UID'];
$sNameFun = $aDataTrigger ['PMFUNTION_NAME'];
$methodObject = $libraryO->methods [$sNameFun];
$methodName = $methodObject->info ['name'];
$methodLabel = $methodObject->info ['label'];
$methodDescription = trim ( str_replace ( "*", "", implode ( " ", $methodObject->info ['description'] ) ) );
$methodReturn = $methodObject->info ['return'];
$methodParameters = array_keys ( $methodObject->params );
$methodLink = isset ( $methodObject->info ['link'] ) && ($methodObject->info ['link'] != "")
? $methodObject->info ['link'] : "";
$methodreturnA = explode ( "|", $methodReturn );
$bReturnValue = true;
$displayMode = 'display:block';
$methodreturnDescription = (trim(strtoupper($methodreturnA [3])) == strtoupper(G::LoadTranslation ( 'ID_NONE')) )
? G::LoadTranslation ( 'ID_NOT_REQUIRED') : $methodreturnA [3];
$methodReturnLabel = isset ( $methodreturnA [3] ) ? $methodreturnDescription : $methodReturn;
if ( (isset($methodreturnA[0]) && isset($methodreturnA[1]))
&& (trim(strtoupper($methodreturnA[0]) ) != strtoupper(G::LoadTranslation ( 'ID_NONE')) ) ) {
$methodReturnLabelRequired = (trim( $methodreturnA[1] ) != "" )
? G::LoadTranslation ( "ID_REQUIRED_FIELD" ) : $methodreturnA[1];
$methodReturnLabel .= "<br>" . trim( $methodReturnLabelRequired ) . " | " . trim($methodreturnA[0]);
} else {
$bReturnValue = false;
$displayMode = 'display:none';
}
$aParametersFun = $methodParameters;
$triggerWizardTemplate = PATH_TPL . 'triggers' . PATH_SEP . 'triggers_EditWizard.html';
$template = new TemplatePower ( $triggerWizardTemplate );
$template->prepare ();
$tds = '';
$nrows = 2;
$template->assign ( 'LIBRARY_NAME', $libraryName );
$template->assign ( 'LIBRARY_DESCRIPTION', $libraryDescription );
$template->assign ( 'LIBRARY_ICON', $libraryIcon );
$template->assign ( 'LIBRARY_CLASS', $libraryClassName );
if ($methodLink != "") {
$template->newBlock ( 'methodLink' );
$template->assign ( 'LIBRARY_METHOD_LINK', $methodLink );
$template->gotoBlock ( '_ROOT' );
}
$template->assign ( 'PMFUNTION', $sNameFun );
$template->assign ( 'PMFUNTION_LABEL', $methodLabel );
$template->assign ( 'PMFUNTION_DESCRIPTION', $methodDescription );
$template->assign ( 'TITLE', G::LoadTranslation ( 'ID_TITLE' ) );
$template->assign ( 'TITLE_CONTENT', $_GET['TRI_TITLE'] );
$template->assign ( 'TRI_UID', $_GET['TRI_UID'] );
$template->assign ( 'SOURCE_LINK', G::LoadTranslation ( 'ID_TRIGGER_SOURCE_LINK' ) );
$template->assign ( 'DESCRIPTION', G::LoadTranslation ( 'ID_DESCRIPTION' ) );
$template->assign ( 'DESCRIPTION_CONTENT', $_GET['TRI_DESCRIPTION'] );
$template->assign ( 'DETAILS_LABEL', G::LoadTranslation ( 'ID_DETAILS' ) );
$template->assign ( 'RETURN_TITLE', G::LoadTranslation ( 'ID_TRIGGER_RETURN_TITLE' ) );
if ( $bReturnValue ) {
$template->assign ( 'RETURN_LABEL', G::LoadTranslation ( 'ID_TRIGGER_RETURN_LABEL' ) );
}
$template->assign ( 'RETURN_VALUE', $_GET['TRI_ANSWER'] );
$template->assign ( 'METHOD_LABEL', G::LoadTranslation ( 'ID_METHOD' ) );
$template->assign ( 'ROWS', sizeof ( $aParametersFun ) + 3 );
$template->assign ( 'TRIGGER_INFORMATION', 'Triggers Edit Form' );
$template->assign ( 'TRIGGER_ACTION', '../triggers/triggers_WizardUpdate' );
$template->assign ( 'PRO_UID', $sProUid );
$template->assign ( 'PAGED_TABLE_ID', $aDataTrigger ['PAGED_TABLE_ID'] );
$template->assign ( 'RETURN_DESCRIPTION', $methodReturnLabel );
$template->assign ( 'ID_SAVE', G::LoadTranslation ( 'ID_SAVE' ) );
$template->assign ( 'ID_CANCEL', G::LoadTranslation ( 'ID_CANCEL' ) );
$template->assign ( 'DISPLAY_MODE', $displayMode );
$sPMfunction = $sNameFun . " (";
$methodParametersOnlyNames = array ();
if (count ( $aParametersFun ) > 0) {
$template->newBlock ( 'paremetersTriggersGroup' );
$template->assign ( 'PARAMETERS_LABEL', G::LoadTranslation ( 'ID_PARAMETERS' ) );
foreach ($aParametersFun as $k => $v) {
if ($v != '') {
$aParametersFunA = explode ( "|", $v );
$paramType = $aParametersFunA [0];
$paramDefinition = $aParametersFunA [1];
$paramDefinitionA = explode ( "=", $paramDefinition );
$paramName = $paramDefinitionA [0];
$methodParametersOnlyNames [] = $paramName;
$paramDefaultValue = isset ( $paramDefinitionA [1] ) ? $paramDefinitionA [1] : "";
$paramLabel = isset ( $aParametersFunA [2] ) ? $aParametersFunA [2] : $paramName;
$paramDescription = isset ( $aParametersFunA [3] ) ? $aParametersFunA [3] : "";
$sPMfunction .= ($nrows != 2)
? ', "' . trim ( str_replace ( "$", "", $paramName ) ) . '"'
: '"' . trim ( str_replace ( "$", "", $paramName ) . '"' );
$template->newBlock ( 'paremetersTriggers' );
$template->assign ( 'LABEL_PARAMETER', $paramLabel );
$template->assign ( 'OPT_PARAMETER', trim ( str_replace ( "$", "", $paramName ) ) );
$sNameTag = 'form.' . trim ( str_replace ( "$", "", $paramName ) ) . '.name';
$sNameTag = trim ( $sNameTag );
$template->assign ( 'SNAMETAG', $sNameTag );
$tri_Button = "<input type='button' name='INSERT_VARIABLE' value='@@' "
. "onclick='showDynaformsFormVars($sNameTag , \"../controls/varsAjax\" , "
. " \"$sProUid\" , \"@@\");return;' >";
$template->assign ( 'ADD_TRI_VARIABLE', $tri_Button );
// $template->assign ( 'ADD_TRI_VALUE', str_replace ( "'", "",
// str_replace ( '"', '', $paramDefaultValue ) ) );
$paramValue = $_GET[trim( str_replace( "$", "", $paramName ) )];
$template->assign ( 'ADD_TRI_VALUE', str_replace("\'", "&apos;", $paramValue) );
$fieldDescription = ($paramDescription!="")?$paramDescription . "<br>":"";
$fieldDescription .= $paramDefaultValue != ""
? $paramDefaultValue . " | " . $paramType
: G::LoadTranslation ( "ID_REQUIRED_FIELD" ) . " | " . $paramType;
$template->assign ( 'ADD_TRI_DESCRIPTION', $fieldDescription );
$nrows ++;
}
}
}
$template->gotoBlock ( '_ROOT' );
$template->assign ( 'ALLFUNCTION', implode ( ",", $methodParametersOnlyNames ) );
$sPMfunction .= ");";
$content = $template->getOutputContent ();
print $content;
} catch ( Exception $oException ) {
die ( $oException->getMessage () );
}
unset ( $_SESSION ['PROCESS'] );