. * * For more information, contact Colosa Inc, 2566 Le Jeune Rd., * Coral Gables, FL, 33134, USA, or email info@colosa.com. */ if (($RBAC_Response = $RBAC->userCanAccess("PM_FACTORY")) != 1) { return $RBAC_Response; } require_once ('classes/model/Triggers.php'); $oTrigger = new Triggers(); G::LoadClass('processMap'); $oProcessMap = new processMap(new DBConnection()); $aDataTriggers = $_POST; $aInfoFunction = explode(",", $aDataTriggers['ALLFUNCTION']); $aInfoFunctionType = explode(",", $aDataTriggers['ALLFUNCTION_TYPE']); $sPMfunction = " /*************************************************** * * Generated by ProcessMaker Trigger Wizard * Library: " . $aDataTriggers['LIBRARY_NAME'] . " * Method: " . $aDataTriggers['PMFUNTION_LABEL'] . " * Date: " . date("Y-m-d H:i:s") . " * * ProcessMaker " . date("Y") . " * ****************************************************/ "; $methodParamsFinal = array(); //Generate params to send $i = 0; foreach ($aInfoFunction as $k => $v) { if ($v != '') { $sOptionTrigger = trim(str_replace("$", "", $v)); if (strstr($sOptionTrigger, "=")) { $aOptionParameters = explode("=", $sOptionTrigger); $sOptionTrigger = trim($aOptionParameters[0]); } if ($aDataTriggers[$sOptionTrigger] != '') { if ((strstr($aDataTriggers[$sOptionTrigger], "@@")) || ($aDataTriggers['PMFUNTION_NAME'] == 'evaluateFunction' && $k == 0 && strstr($aDataTriggers[$sOptionTrigger], "@="))) { $option = trim($aDataTriggers[$sOptionTrigger]); } 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; } } } else { $option = "''"; } $methodParamsFinal[] = $option; } $i++; } //G::pr($methodParamsFinal);die; $sPMfunction .= (isset($aDataTriggers['TRI_ANSWER']) && $aDataTriggers['TRI_ANSWER'] != '') ? $aDataTriggers['TRI_ANSWER'] . " = " : ""; $sPMfunction .= $aDataTriggers['PMFUNTION_NAME'] . " (" . implode(",", $methodParamsFinal) . ");"; //Create Trigger $aDataTriggers['TRI_WEBBOT'] = $sPMfunction; $aDataTriggersParams = array(); $aDataTriggersParams['hash'] = G::encryptOld($sPMfunction); $aDataTriggersParams['params'] = $aDataTriggers; $aDataTriggers['TRI_PARAM'] = serialize($aDataTriggersParams); $oTrigger->create($aDataTriggers); //Update Info $aDataTriggers['TRI_UID'] = $oTrigger->getTriUid(); $oTrigger->update($aDataTriggers); //Update Trigger Array $oProcessMap->triggersList($aDataTriggers['PRO_UID']);