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 ();