diff --git a/workflow/engine/methods/triggers/triggers_WizardSave.php b/workflow/engine/methods/triggers/triggers_WizardSave.php index 33f0b0ee4..cd8a84228 100755 --- a/workflow/engine/methods/triggers/triggers_WizardSave.php +++ b/workflow/engine/methods/triggers/triggers_WizardSave.php @@ -34,6 +34,7 @@ $oProcessMap = new processMap( new DBConnection() ); $aDataTriggers = $_POST; $aInfoFunction = explode( ",", $aDataTriggers['ALLFUNCTION'] ); +$aInfoFunctionType = explode( ",", $aDataTriggers['ALLFUNCTION_TYPE'] ); $sPMfunction = " /*************************************************** @@ -51,6 +52,7 @@ $sPMfunction = " $methodParamsFinal = array (); //Generate params to send +$i = 0; foreach ($aInfoFunction as $k => $v) { if ($v != '') { @@ -64,8 +66,25 @@ foreach ($aInfoFunction as $k => $v) { if ((strstr( $aDataTriggers[$sOptionTrigger], "@@" ))) { $option = trim( $aDataTriggers[$sOptionTrigger] ); } else { + $aDataTriggers[$sOptionTrigger] = (strstr( $aDataTriggers[$sOptionTrigger], 'array' )) ? str_replace( "'", '"', $aDataTriggers[$sOptionTrigger] ) : str_replace( "'", "\'", $aDataTriggers[$sOptionTrigger] ); - $option = (is_numeric( $aDataTriggers[$sOptionTrigger] )) ? trim( $aDataTriggers[$sOptionTrigger] ) : (strstr( $aDataTriggers[$sOptionTrigger], "array" )) ? trim( $aDataTriggers[$sOptionTrigger] ) : "'" . trim( $aDataTriggers[$sOptionTrigger] ) . "'"; + switch(trim($aInfoFunctionType[$i])) { + case 'boolean' : + $option = $aDataTriggers[$sOptionTrigger]; + break; + case 'int' : + $option = intval($aDataTriggers[$sOptionTrigger]); + break; + case 'float' : + case 'real' : + case 'double' : + $option = floatval($aDataTriggers[$sOptionTrigger]); + break; + default: + $option = (is_numeric( $aDataTriggers[$sOptionTrigger] ) || is_bool($aDataTriggers[$sOptionTrigger]) ) ? trim( $aDataTriggers[$sOptionTrigger] ) : (strstr( $aDataTriggers[$sOptionTrigger], "array" )) ? trim( $aDataTriggers[$sOptionTrigger] ) : "'" . trim( $aDataTriggers[$sOptionTrigger] ) . "'"; + break; + } + } } else { $option = "''"; @@ -73,7 +92,7 @@ foreach ($aInfoFunction as $k => $v) { $methodParamsFinal[] = $option; } - + $i++; } //G::pr($methodParamsFinal);die; $sPMfunction .= (isset( $aDataTriggers['TRI_ANSWER'] ) && $aDataTriggers['TRI_ANSWER'] != '') ? $aDataTriggers['TRI_ANSWER'] . " = " : ""; diff --git a/workflow/engine/methods/triggers/triggers_WizardUpdate.php b/workflow/engine/methods/triggers/triggers_WizardUpdate.php index d466bf217..9eb20c0db 100755 --- a/workflow/engine/methods/triggers/triggers_WizardUpdate.php +++ b/workflow/engine/methods/triggers/triggers_WizardUpdate.php @@ -37,7 +37,7 @@ $aDataTriggers = $_POST; $triUid = $_POST['TRI_UID']; $aInfoFunction = explode( ",", $aDataTriggers['ALLFUNCTION'] ); - +$aInfoFunctionType = explode( ",", $aDataTriggers['ALLFUNCTION_TYPE'] ); $sPMfunction = " /*************************************************** * @@ -52,8 +52,10 @@ $sPMfunction = " "; + $methodParamsFinal = array (); //Generate params to send +$i = 0; foreach ($aInfoFunction as $k => $v) { if ($v != '') { @@ -69,8 +71,23 @@ foreach ($aInfoFunction as $k => $v) { } else { $aDataTriggers[$sOptionTrigger] = (strstr( $aDataTriggers[$sOptionTrigger], 'array' )) ? str_replace( "'", '"', $aDataTriggers[$sOptionTrigger] ) : str_replace( "'", "\'", $aDataTriggers[$sOptionTrigger] ); + switch(trim($aInfoFunctionType[$i])) { + case 'boolean' : + $option = $aDataTriggers[$sOptionTrigger]; + break; + case 'int' : + $option = intval($aDataTriggers[$sOptionTrigger]); + break; + case 'float' : + case 'real' : + case 'double' : + $option = floatval($aDataTriggers[$sOptionTrigger]); + break; + default: + $option = (is_numeric( $aDataTriggers[$sOptionTrigger] ) || is_bool($aDataTriggers[$sOptionTrigger]) ) ? trim( $aDataTriggers[$sOptionTrigger] ) : (strstr( $aDataTriggers[$sOptionTrigger], "array" )) ? trim( $aDataTriggers[$sOptionTrigger] ) : "'" . trim( $aDataTriggers[$sOptionTrigger] ) . "'"; + break; + } - $option = (is_numeric( $aDataTriggers[$sOptionTrigger] )) ? trim( $aDataTriggers[$sOptionTrigger] ) : (strstr( $aDataTriggers[$sOptionTrigger], "array" )) ? trim( $aDataTriggers[$sOptionTrigger] ) : "'" . trim( $aDataTriggers[$sOptionTrigger] ) . "'"; } } else { $option = "' '"; @@ -78,7 +95,7 @@ foreach ($aInfoFunction as $k => $v) { $methodParamsFinal[] = $option; } - + $i++; } $sPMfunction .= (isset( $aDataTriggers['TRI_ANSWER'] ) && $aDataTriggers['TRI_ANSWER'] != '') ? $aDataTriggers['TRI_ANSWER'] . " = " : ""; diff --git a/workflow/engine/templates/triggers/triggers_CreateWizard.html b/workflow/engine/templates/triggers/triggers_CreateWizard.html index 574135295..e29890b54 100755 --- a/workflow/engine/templates/triggers/triggers_CreateWizard.html +++ b/workflow/engine/templates/triggers/triggers_CreateWizard.html @@ -117,6 +117,7 @@ + diff --git a/workflow/engine/templates/triggers/triggers_CreateWizard.php b/workflow/engine/templates/triggers/triggers_CreateWizard.php index 29f6fc5ad..92dc6b801 100755 --- a/workflow/engine/templates/triggers/triggers_CreateWizard.php +++ b/workflow/engine/templates/triggers/triggers_CreateWizard.php @@ -75,7 +75,7 @@ try { $bReturnValue = false; $displayMode = 'display:none'; } - + $aParametersFun = $methodParameters; $triggerWizardTemplate = PATH_TPL . 'triggers' . PATH_SEP . 'triggers_CreateWizard.html'; $template = new TemplatePower ( $triggerWizardTemplate ); @@ -118,7 +118,7 @@ try { $sPMfunction = $sNameFun . " ("; $methodParametersOnlyNames = array (); - + $methodParametersNamesType = array (); if (count ( $aParametersFun ) > 0) { $template->newBlock ( 'paremetersTriggersGroup' ); $template->assign ( 'PARAMETERS_LABEL', G::LoadTranslation ( 'ID_PARAMETERS' ) ); @@ -126,11 +126,12 @@ try { if ($v != '') { $aParametersFunA = explode ( "|", $v ); $paramType = $aParametersFunA [0]; + $methodParametersNamesType[] = $paramType; $paramDefinition = $aParametersFunA [1]; $paramDefinitionA = explode ( "=", $paramDefinition ); $paramName = $paramDefinitionA [0]; $methodParametersOnlyNames [] = $paramName; - $paramDefaultValue = isset ( $paramDefinitionA [1] ) ? $paramDefinitionA [1] : ""; + $paramDefaultValue = (isset($paramDefinitionA[1]))? trim($paramDefinitionA[1]) : ""; $paramLabel = isset ( $aParametersFunA [2] ) ? $aParametersFunA [2] : $paramName; $paramDescription = isset ( $aParametersFunA [3] ) ? $aParametersFunA [3] : ""; $sPMfunction .= ($nrows != 2) @@ -147,9 +148,8 @@ try { . "onclick='showDynaformsFormVars($sNameTag , \"../controls/varsAjax\" , " . " \"$sProUid\" , \"@@\");return;' >"; - $template->assign ( 'ADD_TRI_VARIABLE', $tri_Button ); - $template->assign ( 'ADD_TRI_VALUE', - str_replace ( "'", "", str_replace ( '"', '', $paramDefaultValue ) ) ); + $template->assign("ADD_TRI_VARIABLE", $tri_Button); + $template->assign("ADD_TRI_VALUE", str_replace(array("\"", "'"), array(null, null), $paramDefaultValue)); $fieldDescription = ($paramDescription!="")?$paramDescription . "
":""; if ($paramDefaultValue != "") { @@ -166,6 +166,7 @@ try { $template->gotoBlock ( '_ROOT' ); $template->assign ('FIELDS_REQUIRED', implode ( ",", $fieldRequired )); + $template->assign ( 'ALLFUNCTION_TYPE', implode ( ",", $methodParametersNamesType ) ); $template->assign ( 'ALLFUNCTION', implode ( ",", $methodParametersOnlyNames ) ); $sPMfunction .= ");"; $content = $template->getOutputContent (); @@ -174,4 +175,6 @@ try { } catch ( Exception $oException ) { die ( $oException->getMessage () ); } + unset ($_SESSION ['PROCESS']); + diff --git a/workflow/engine/templates/triggers/triggers_EditWizard.html b/workflow/engine/templates/triggers/triggers_EditWizard.html index 0881dff7d..de1ee4321 100755 --- a/workflow/engine/templates/triggers/triggers_EditWizard.html +++ b/workflow/engine/templates/triggers/triggers_EditWizard.html @@ -124,6 +124,7 @@ + diff --git a/workflow/engine/templates/triggers/triggers_EditWizard.php b/workflow/engine/templates/triggers/triggers_EditWizard.php index e4fc2b935..8c080801a 100755 --- a/workflow/engine/templates/triggers/triggers_EditWizard.php +++ b/workflow/engine/templates/triggers/triggers_EditWizard.php @@ -120,6 +120,7 @@ try { $sPMfunction = $sNameFun . " ("; $methodParametersOnlyNames = array (); + $methodParametersNamesType = array (); if (count ( $aParametersFun ) > 0) { $template->newBlock ( 'paremetersTriggersGroup' ); $template->assign ( 'PARAMETERS_LABEL', G::LoadTranslation ( 'ID_PARAMETERS' ) ); @@ -127,6 +128,7 @@ try { if ($v != '') { $aParametersFunA = explode ( "|", $v ); $paramType = $aParametersFunA [0]; + $methodParametersNamesType[] = $paramType; $paramDefinition = $aParametersFunA [1]; $paramDefinitionA = explode ( "=", $paramDefinition ); $paramName = $paramDefinitionA [0]; @@ -172,6 +174,7 @@ try { } $template->gotoBlock ( '_ROOT' ); $template->assign ('FIELDS_REQUIRED', implode ( ",", $fieldRequired )); + $template->assign ( 'ALLFUNCTION_TYPE', implode ( ",", $methodParametersNamesType ) ); $template->assign ( 'ALLFUNCTION', implode ( ",", $methodParametersOnlyNames ) ); $sPMfunction .= ");"; $content = $template->getOutputContent ();