0){ header("Location: $failureURL"); } if($defaultSuccessAction == 'JSON'){ Zend_Json::$useBuiltinEncoderDecoder = true; $json = new Zend_Json(); echo $json->encode(array('success'=>false,'error'=>$e)); }else{ webforms_displayTemplate(getExceptionArray($e),$moduleName,'modules/Webforms/ErrorPage.tpl'); } } function getExceptionArray($e){ if(is_array($e)){ return $e; } return array('code'=>$e->code,'message'=>$e->message); } function webforms_displayTemplate($data,$moduleName,$path){ $smarty = new vtigerCRM_Smarty; webforms_prepareSmarty($smarty,$data,$moduleName); $smarty->display($path); } function webforms_prepareSmarty($smarty,$data,$moduleName){ global $default_language,$site_URL; $moduleStrings = return_module_language($default_language,'Webforms'); $appStrings = return_application_language($default_language); $path = (strrpos($site_URL,'/') === strlen($site_URL))? $site_URL: $site_URL.'/'; $smarty->assign("PATH", $path); $smarty->assign("IMAGEPATH", 'themes/images/'); $smarty->assign("MODULE",$moduleName); $smarty->assign("MOD", $moduleStrings); $smarty->assign("DATA", $data); $smarty->assign("APP", $appStrings); } function webforms_returnSuccess($element,$moduleName){ global $successURL; if(strlen($successURL) > 0){ header("Location: $successURL"); } if($defaultSuccessAction == 'JSON'){ Zend_Json::$useBuiltinEncoderDecoder = true; $json = new Zend_Json(); echo $json->encode(array('success'=>true,'result'=>$element)); }else{ webforms_displayTemplate($elemnet,$moduleName,'modules/Webforms/SuccessPage.tpl'); } } function webforms_init(){ global $defaultUserName,$defaultUserAccessKey,$defaultOwner,$adb,$enableAppKeyValidation,$application_unique_key; try{ $active = vtlib_isModuleActive('Webforms'); if($active === false){ webforms_returnError(array('code'=>"WEBFORMS_DISABLED",'message'=>'Webforms module is disabled'),'Webforms'); } if($enableAppKeyValidation ==true){ if($application_unique_key !== $_REQUEST['appKey']){ webforms_returnError(array('code'=>"WEBFORMS_INVALID_APPKEY",'message'=>'AppKey provided is invalid'),null); return ; } } $module = $_REQUEST['moduleName']; $challengeResult = vtws_getchallenge($defaultUserName); $challengeToken = $challengeResult['token']; $user = vtws_login($defaultUserName,md5($challengeToken.$defaultUserAccessKey)); $describeResult = vtws_describe($module,$user); $fields = $describeResult['fields']; $assignedUser = new Users(); $ownerId = $assignedUser->retrieve_user_id($defaultOwner); $userData = webforms_getUserData(vtws_getId(VtigerWebserviceObject::fromName($adb,"Users")->getEntityId(),$ownerId),$fields,$_REQUEST); if($userData === null){ webforms_returnError(array('code'=>"WEBFORMS_INVALID_DATA",'message'=>'data provided is invalid'),$module); return ; } if(sizeof($userData)<1){ webforms_returnError(array('code'=>"WEBFORMS_INVALID_DATA",'message'=>'data provided is invalid'),$module); return ; } $createResult = vtws_create($module,$userData,$user); webforms_returnSuccess($createResult,$module); }catch(WebServiceException $e){ webforms_returnError($e,$module); } } webforms_init(); ?>