$value) { $request[utf8_decode($key)] = $value; } if(!vtlib_isModuleActive('Webforms')) throw new Exception('webforms is not active'); $webform = Webforms_Model::retrieveWithPublicId(vtlib_purify($request['publicid'])); if (empty($webform)) throw new Exception("Webform not found."); $returnURL = $webform->getReturnUrl(); // Retrieve user information $user = CRMEntity::getInstance('Users'); $user->id=$user->getActiveAdminId(); $user->retrieve_entity_info($user->id, 'Users'); // Prepare the parametets $parameters = array(); $webformFields = $webform->getFields(); foreach ($webformFields as $webformField) { if($webformField->getDefaultValue()!=null){ $parameters[$webformField->getFieldName()] = decode_html($webformField->getDefaultValue()); }else{ $webformNeutralizedField = html_entity_decode($webformField->getNeutralizedField()); if(is_array(vtlib_purify($request[$webformNeutralizedField]))){ $fieldData=implode(" |##| ",vtlib_purify($request[$webformNeutralizedField])); } else{ $fieldData=vtlib_purify($request[$webformNeutralizedField]); $fieldData = decode_html($fieldData); } $parameters[$webformField->getFieldName()] = stripslashes($fieldData); } if($webformField->getRequired()){ if(empty($parameters[$webformField->getFieldName()])) throw new Exception("Required fields not filled"); } } $parameters['assigned_user_id'] = vtws_getWebserviceEntityId('Users', $webform->getOwnerId()); // Create the record $record=vtws_create($webform->getTargetModule(), $parameters, $user); $this->sendResponse($returnURL, 'ok'); return; } catch (Exception $e) { $this->sendResponse($returnURL, false, $e->getMessage()); return; } } protected function sendResponse($url, $success=false, $failure=false) { if (empty($url)) { if ($success) $response = Zend_Json::encode(array('success' => true, 'result' => $success)); else $response = Zend_Json::encode(array('success' => false, 'error' => array('message' => $failure))); // Support JSONP if (!empty($_REQUEST['callback'])) { $callback = vtlib_purify($_REQUEST['callback']); echo sprintf("%s(%s)", $callback, $response); } else { echo $response; } } else { $pos = strpos($url, 'http'); if($pos !== false){ header(sprintf("Location: %s?%s=%s", $url, ($success? 'success' : 'error'), ($success? $success: $failure))); }else{ header(sprintf("Location: http://%s?%s=%s", $url, ($success? 'success' : 'error'), ($success? $success: $failure))); } } } } // NOTE: Take care of stripping slashes... $webformCapture = new Webform_Capture(); $webformCapture->captureNow($_REQUEST); ?>