. * * 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'] ); $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 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], "@@" ))) { $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] ) . "'"; } } else { $option = "''"; } $methodParamsFinal[] = $option; } } //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'] = md5( $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'] );